<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/3/26
 * Time: 11:11
 */

namespace App\Http\Controllers\Web\Hardware\Pad;

use App\Http\Controllers\Web\WebBaseController;
use App\Services\Person\MemberInfoService;
use App\Services\Person\ResumeService;
use App\Repositories\ResumeRepository;
use Illuminate\Http\Request;
use App\Services\Common\SmsService;
use App\Services\Person\MemberService;
use App\Services\Auth\AuthService;
use Aix\Sms\Contracts\Smser;
use App\Validators\PersonValidatorRequest;
use App\Services\Common\CategoryService;
use App\Repositories\MemberInfoRepository;
use App\Repositories\CompanyRepository;
class PadResumeController extends WebBaseController
{
    private $memberInfoService;
    private $resumeService;
    protected $smsService;
    protected $memberService;
    protected $authService;
    protected $CategoryService;
    protected $resumeRepository;
    protected $memberInfoRepository;
    protected $companyRepository;
    /**
     * PadResumeController constructor.
     * @param MemberInfoService $memberInfoService
     * @param ResumeService $resumeService
     * @param CategoryService $CategoryService
     * @param ViewJobRepository $memberInfoRepository
     * @param CompanyRepository $companyRepository
     */
    public function __construct(MemberInfoService $memberInfoService,ResumeService $resumeService,SmsService $smsService,AuthService $authService, MemberService $memberService,CategoryService $CategoryService,ResumeRepository $resumeRepository, MemberInfoRepository $memberInfoRepository,CompanyRepository $companyRepository)
    {
        $this->memberInfoService = $memberInfoService;
        $this->resumeService = $resumeService;
        $this->smsService = $smsService;
        $this->authService = $authService;
        $this->memberService = $memberService;
        $this->CategoryService = $CategoryService;
        $this->resumeRepository = $resumeRepository;
        $this->memberInfoRepository = $memberInfoRepository;
        $this->companyRepository = $companyRepository;
    }

    public function index(){
        return view('app.hardware.pad.resume');
    }

    public function cardId(Request $request){
        $id_card = $request->cardId;
        $info = $this->memberInfoService->getInfo( ['id_card' => $id_card]);
        if(!$info){
            return response()->json(['status'=>0, 'msg'=>'暂无简历,请新建...']);
        }
        $resumes = $this->resumeRepository->getSuccessResume($info['uid'],getResumeStatus());
        if($resumes->isEmpty()){
            return response()->json(['status'=>0, 'msg'=>'暂无简历,请新建...']);
        }
        $html = '';
        $html .= '<ul id="jobsList">';
        foreach ($resumes as $value) {
            $html .= '<li class="circle_info color1">
                            <p class="resume_name">' . $value['title'] . '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' . $value['intention_jobs'] .'</p>
                            <p class="resume_info">性别:' . $value['sex_cn'] . '&nbsp;&nbsp;&nbsp;&nbsp;经验:' . $value['experience_cn'] . '&nbsp;&nbsp;&nbsp;&nbsp;学历:' . $value['education_cn'] . '&nbsp;&nbsp;&nbsp;&nbsp;期望地区:' . $value['district_cn'] . '&nbsp;&nbsp;&nbsp;&nbsp;更新时间:' . $value['updated_at'] . '</p>
                            <div class="right_box">
                                 <a href="'.route('hardware.pad.search.resume.show',['id'=>$value['id'],'type'=>5]).'" class="show-resume btn">查看简历</a>
                            </div>
                       </li>';
        }
        $html .= '</ul>';
        return response()->json(['status'=>1, 'msg'=>'成功','data'=>$resumes,'html'=>$html]);
    }

    public function add(Request $request){
        $idcard = $request->all();
        foreach ($idcard as &$value){
            if($value == 'undefined'){
                $value = '';
            }
        }
        if(isset($idcard['androidIdNo'])){
            $IdNo = $idcard['androidIdNo'];
            $idcard['year'] = substr($IdNo, 6, 4);
            $idcard['age'] = date('Y',time()) - $idcard['year'];
            $info = $this->memberInfoService->getInfo(['id_card' => $IdNo]);
            if($info){
                $idcard['phone'] = $info['phone'];
                $idcard['uid'] = $info['uid'];
            }else{
                $idcard['phone'] = '';
                $idcard['uid'] = '';
            }
        }elseif(isset($idcard['uid'])){
            $idcard['year'] = '';
            $idcard['age'] = '';
        }
        $idcard['min_wage'] = config('aix.companyset.comset.com_set.wage_min');
        $categorys = $this->CategoryService->getCategories(array('AIX_card_type'=>10));
        $idcard['card_t_cn']  = array_pop($categorys['AIX_card_type'])['id'];
        $district = config('aix.system.site_other.site_other.district');
        if($district && substr_count($district,'.') == 1){
            $district .= '.0';
        }elseif ($district && substr_count($district,'.') == 0){
            $district .= '.0.0';
        }
        return view('app.hardware.pad.resume_add',['idcard'=>$idcard,'district'=>$district]);
    }

    public function resumeCreate(Request $request){
        $data = $request->all();
        if(empty($data['uid']) && $this->memberInfoRepository->findMemberInfo(['email'=>$data['email']])){
            return response()->json(['status' => 0, 'msg' =>'该邮箱已存在!']);
        }
        if($this->companyRepository->getCompanyInfo(['email'=>$data['email']])){
            return response()->json(['status' => 0, 'msg' =>'该邮箱已存在!']);
        }
        if(empty($data['uid']) && $this->registerMobile($data) == false){
            return response()->json(['status' => 0, 'msg' =>'验证码错误']);
        }
        if(!$this->resumeService->addPadResume($data)){
            return response()->json(['status' => 0, 'msg' =>'新增失败']);
        }
        return response()->json(['status' => 1, 'msg' =>'新增成功']);
    }

    public function registerMobile($data)
    {
        $mobile_code =$data['mobile_code'];
        $mobile = $data['telephone'];
        $checkAuthSms = $this->smsService->checkAuthSms($mobile, Smser::TEMPLATE_AUTH_LOGIN, $mobile_code);
        if (!$checkAuthSms) {
            return false;
        }
        return true;
    }

    public function qrCode(Request $request){
        $res =  hashid_decode($request->hashid);
        if(!$res){
            return response()->json(['status'=>-1, 'msg'=>'二维码出错,请刷新重试...']);
        }
        $info = $this->memberInfoService->getInfo(['uid' => $res['id']]);
        if(!$info){
            return response()->json(['status'=>-1, 'msg'=>'二维码出错,请刷新重试...']);
        }
        $resumes = $this->resumeRepository->getSuccessResume($info['uid'],getResumeStatus());
        if($resumes->isEmpty()){
            return response()->json(['status'=>0, 'msg'=>'暂无简历,请新建...','uid'=>$info['uid']]);
        }
        $html = '';
        $html .= '<ul id="jobsList">';
        foreach ($resumes as $value) {
            $html .= '<li class="circle_info color1">
                            <p class="resume_name">' . $value['title'] . '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' . $value['intention_jobs'] .'</p>
                            <p class="resume_info">性别:' . $value['sex_cn'] . '&nbsp;&nbsp;&nbsp;&nbsp;经验:' . $value['experience_cn'] . '&nbsp;&nbsp;&nbsp;&nbsp;学历:' . $value['education_cn'] . '&nbsp;&nbsp;&nbsp;&nbsp;所在地区:' . $value['district_cn'] . '&nbsp;&nbsp;&nbsp;&nbsp;更新时间:' . $value['updated_at'] . '</p>
                            <div class="right_box">
                                 <a href="'.route('hardware.pad.search.resume.show',['id'=>$value['id'],'type'=>5]).'" class="show-resume btn">查看简历</a>
                            </div>
                       </li>';
        }
        $html .= '</ul>';
        return response()->json(['status'=>1, 'msg'=>'成功','data'=>$resumes,'html'=>$html]);
    }
}