| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744 | 
							- <?php
 
- namespace App\Http\Controllers\Mobile\Active;
 
- use Aix\Sms\Contracts\Smser;
 
- use App\Http\Controllers\Mobile\MobileBaseController;
 
- use App\Models\Resume;
 
- use App\Repositories\MemberRepository;
 
- use App\Services\Auth\AuthService;
 
- use App\Services\Auth\RegisterService;
 
- use App\Services\Common\CategoryService;
 
- use App\Services\Person\ResumeEducationService;
 
- use App\Services\Person\MemberInfoService;
 
- use App\Services\Person\ResumeService;
 
- use App\Validators\PersonValidatorRequest;
 
- use App\Validators\RegisterValidatorRequest;
 
- use Illuminate\Http\Request;
 
- use App\Services\Common\SmsService;
 
- use App\Services\Person\ResumeWorkService;
 
- use App\Services\Content\PolicyService;
 
- use Illuminate\Support\Facades\DB;
 
- use Illuminate\Support\Facades\Hash;
 
- use GuzzleHttp\Client;
 
- use Illuminate\Support\Facades\Cache;
 
- class RcgController extends MobileBaseController
 
- {
 
-     protected $categoryService;
 
-     private $smsService;
 
-     private $registerService;
 
-     private $authService;
 
-     protected $memberRepository;
 
-     protected $memberInfoService;
 
-     protected $educationService;
 
-     protected $resumeWorkService;
 
-     protected $articleCategoryService;
 
-     protected $httpClient;
 
-     public function __construct(ResumeWorkService $resumeWorkService,ResumeEducationService $educationService,ResumeService $resumeService,AuthService $authService,CategoryService $categoryService,SmsService $smsService,RegisterService $registerService,MemberRepository $memberRepository,MemberInfoService $memberInfoService,PolicyService $articleCategoryService)
 
-     {
 
-         $this->categoryService = $categoryService;
 
-         $this->smsService = $smsService;
 
-         $this->registerService = $registerService;
 
-         $this->authService = $authService;
 
-         $this->memberRepository = $memberRepository;
 
-         $this->memberInfoService = $memberInfoService;
 
-         $this->resumeService = $resumeService;
 
-         $this->educationService = $educationService;
 
-         $this->resumeWorkService = $resumeWorkService;
 
-         $this->articleCategoryService = $articleCategoryService;
 
-         $this->httpClient=new Client([
 
-             'http_errors' => false
 
-         ]);
 
-     }
 
-     /**
 
-      * 人才港首页
 
-      * @return array|\Illuminate\Contracts\View\Factory|\Illuminate\View\View
 
-      */
 
-     public function index()
 
-     {
 
-         return view('mobile.app.active.index');
 
-     }
 
-     public function addInfo()
 
-     {
 
-         $user = auth('web-member')->user();
 
-         if(!$user){
 
-             $is_login = 0;
 
-         }else{
 
-             $is_login = 1;
 
-         }
 
-         $district = $this->categoryService->getDefaultDistrict();
 
-         return view('mobile.app.active.resume_add', [
 
-             'is_login'=>$is_login,
 
-             'user'=>$user,
 
-             'defaultCity'=>$district->defaultCity,
 
-             'disCity'=>$district->disCity,
 
-             'disHan'=>$district->disHan,
 
-             'wap_title'=>'信息登记'
 
-         ]);
 
-     }
 
-     public function rcgCreate(PersonValidatorRequest $request)
 
-     {
 
-         //添加基础信息
 
-         $resume_res = $this->resumeService->activeResumeCreate($request->except(['add_tag','_token']), auth('web-member')->user());
 
-         if($resume_res['code'] == 1){
 
-             $data = request()->all();
 
-             $data['resume_id'] = $resume_res['info'];
 
-             $data['id'] = $resume_res['info'];
 
-             //添加教育信息
 
-             $resume_edu = $this->educationService->activeResumeEducationAdd($data, auth('web-member')->user());
 
-             //添加工作信息
 
-             $resume_work = $this->resumeWorkService->activeResumeWorkAdd($data, auth('web-member')->user());
 
-             //添加标签
 
-             $resume_tag = $this->resumeService->tagSave($data);
 
-             //添加自我描述
 
-             $resume_specialty = $this->resumeService->updateSpecialty($data, auth('web-member')->user());
 
-             if ($resume_res['code']==1) {
 
-                 $this->authService->logout();
 
-                 return $this->sendSuccessResponse(['id'=>$resume_res['info'],'tag'=>$request->add_tag]);
 
-             } else {
 
-                 return $this->sendErrorResponse('更新简历失败', '', 400);
 
-             }
 
-         }else{
 
-             return $this->sendErrorResponse($resume_res['info'], '', 400);
 
-         }
 
-     }
 
-     public function upload()
 
-     {
 
-         $res = $this->memberInfoService->updateHead(request()->pic1, auth('web-member')->user());
 
-         return response()->json($res);
 
-     }
 
-     public function quickReg(RegisterValidatorRequest $registerValidatorRequest)
 
-     {
 
-         if (!$this->smsService->checkAuthSms($registerValidatorRequest->mobile, Smser::TEMPLATE_AUTH_REGISTER, $registerValidatorRequest->mobile_vcode)) {
 
-             return $this->sendErrorResponse("短信验证码不通过,请重新输入");
 
-         }
 
-         $data = $registerValidatorRequest->all();
 
-         $member = $this->memberRepository->getMemberByAccount($data['mobile']);
 
-         if(!$member){
 
-             $member = $this->registerService->registerPerson($data);
 
-         }else{
 
-             $this->authService->login($member);
 
-         }
 
-         return $this->sendSuccessResponse(['msg'=>'注册/登录成功,请继续操作','reg_status'=>1]);
 
-     }
 
-     public function rcg()
 
-     {
 
-         return view('mobile.app.active.rcg');
 
-     }
 
-     public function serviceCode()
 
-     {
 
-         return view('mobile.app.active.service_code');
 
-     }
 
-     private function getPolicyCategory($pid){
 
-         $list = DB::table('policy_category')->where(array('parent_id'=>$pid,'deleted_at'=>null))->orderBy('category_order','desc')->orderBy('id','asc')->select("*")->get()->toArray();
 
-         if($list){
 
-             foreach ($list as $k => $v){
 
-                 $subList = DB::table('policy_category')->where(array('parent_id'=>$v->id,'deleted_at'=>null))->orderBy('category_order','desc')->orderBy('id','asc')->select("*")->get()->toArray();
 
-                 if($subList){
 
-                     $list[$k]->children = $subList;
 
-                     $this->getPolicyCategory($v->id);
 
-                 }
 
-             }
 
-         }
 
-         return $list;
 
-     }
 
-     public function chain(){
 
-         $list = $this->getPolicyCategory(30);
 
-         $res = [
 
-             'status' => 'ok',
 
-             'info'  => '获取成功',
 
-             'data'  =>  $list
 
-         ];
 
-         echo json_encode($res);
 
-     }
 
-     public function getChainList(Request $request){
 
-         $id = $request->input('id');
 
-         $keyword = $request->input('keyword');
 
-         $page = $request->input('page');
 
-         $where = [
 
-             ['type_id', '=', intval($id)]
 
-         ];
 
-         if(!empty($keyword)){
 
-             $map = ['title','like','%'.$keyword.'%'];
 
-             array_push($where,$map);
 
-         }
 
-         $count = DB::table('policy')->where($where)->count();
 
-         $list = DB::table('policy')->where($where)->offset(($page-1)*20)->limit($page*20)->select("*")->get()->toArray();
 
-         $res['status'] = 'ok';
 
-         $res['msg'] = '查询成功';
 
-         $res['data'] = $list;
 
-         $res['count'] = $count;
 
-         echo json_encode($res);
 
-     }
 
-     public function getPolicyContent(Request $request){
 
-         $id = $request->input('id');
 
-         if(intval($id)){
 
-             $info = DB::table('policy')->where(array('id'=>intval($id)))->select("*")->first();
 
-             if($info){
 
-                 $res['status'] = 'ok';
 
-                 $res['msg'] = '查询成功';
 
-                 $res['data'] = [
 
-                     'title' =>  $info->title,
 
-                     'content' => $info->content,
 
-                     'pid' => $info->type_id
 
-                 ];
 
-             }else{
 
-                 $res['status'] = 'error';
 
-                 $res['msg'] = '找不到该文章';
 
-             }
 
-         }else{
 
-             $res['status'] = 'error';
 
-             $res['msg'] = '缺少参数';
 
-         }
 
-         echo json_encode($res);
 
-     }
 
-     public function putAppointment(Request $request)
 
-     {
 
-         $res['status'] = '';
 
-         $res['msg'] = '';
 
-         $data['card'] = $request->input('card');
 
-         if(!$data['card']){
 
-             $res['status'] = 'error';
 
-             $res['msg'] = '身份证不能为空';
 
-             echo json_encode($res);die;
 
-         }
 
-         if (strlen($data['card']) == 18 && !$this->isValid($data['card'])) {
 
-             $res['status'] = 'error';
 
-             $res['msg'] = '身份证格式不正确';
 
-             echo json_encode($res);die;
 
-         }
 
-         $data['username'] = $request->input('username');
 
-         if(!$data['username']){
 
-             $res['status'] = 'error';
 
-             $res['msg'] = '真实姓名不能为空';
 
-             echo json_encode($res);die;
 
-         }
 
-         $data['phone'] = $request->input('phone');
 
-         if(!$data['phone']){
 
-             $res['status'] = 'error';
 
-             $res['msg'] = '手机号码不能为空';
 
-             echo json_encode($res);die;
 
-         }
 
-         $data['service'] = $request->input('picker');
 
-         if(!$data['service']){
 
-             $res['status'] = 'error';
 
-             $res['msg'] = '服务事项不能为空';
 
-             echo json_encode($res);die;
 
-         }
 
-         $data['value'] = $request->input('value');
 
-         if(!$data['value']){
 
-             $res['status'] = 'error';
 
-             $res['msg'] = '服务事项不能为空';
 
-             echo json_encode($res);die;
 
-         }
 
-         $info = DB::table('talent')->where('card',$data['card'])->first();
 
-         if(!$info){
 
-             $ch = curl_init ();
 
-             curl_setopt( $ch, CURLOPT_URL, "http://rc.jucai.gov.cn/api/dataInterface/findTalentArrangeByIdCard?idCard={$data['card']}" );
 
-             curl_setopt( $ch, CURLOPT_HTTPHEADER, array(
 
-                     'Content-Type: application/json; charset=utf-8'   //json版本需要填写  Content-Type: application/json;
 
-                 )
 
-             );
 
-             curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); //若果报错 name lookup timed out 报错时添加这一行代码
 
-             curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
 
-             curl_setopt( $ch, CURLOPT_TIMEOUT,60);
 
-             curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0);
 
-             curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0);
 
-             $result = curl_exec ( $ch );
 
-             curl_close ( $ch );
 
-             $ret = json_decode($result,true);
 
-             if($ret['state'] == 1){
 
-                 $data['is_talent'] = 1;
 
-                 $data['status'] = 1;
 
-             }else{
 
-                 $data['is_talent'] = 0;
 
-             }
 
-         }else{
 
-             $data['is_talent'] = 1;
 
-             $data['status'] = 1;
 
-         }
 
-         //增加全民健身季礼包领取
 
-         if($data['value'] == 44){
 
-             $libao = DB::table('lt_apppointment')->where('card',$data['card'])->where('value',44)->first();
 
-             if($libao){
 
-                 $res['status'] = 'error';
 
-                 $res['msg'] = '您已领取过礼包,谢谢您的关注';
 
-                 echo json_encode($res);die;
 
-             }
 
-         }
 
-         $data['createtime'] = date("Y-m-d H:i:s",time());
 
-         $data['number'] = $this->findAvailableNo();
 
-         $data['content'] = $request->input('content');
 
-         DB::table('lt_apppointment')->insert($data);
 
-         if($data['is_talent']){
 
-             if(empty($data['content'])){
 
-                 $content = '无';
 
-             }else{
 
-                 $content = $data['content'];
 
-             }
 
-             switch ($data['value']){
 
-                 case 1:
 
-                     $phone = '13808510338';
 
-                     break;
 
-                 case 2:
 
-                     $phone = '13960958777';
 
-                     break;
 
-                 case 3:
 
-                     $phone = '15280619456';
 
-                     break;
 
-                 case 4:
 
-                     $phone = '15375751022';
 
-                     break;
 
-                 case 5:
 
-                     $phone = '15905901858';
 
-                     break;
 
-                 case 6:
 
-                     $phone = '15985930919';//行政审批
 
-                     break;
 
-                 case 7:
 
-                     $phone = '15159851117';
 
-                     break;
 
-                 case 8:
 
-                     $phone = '';
 
-                     break;
 
-                 case 9:
 
-                     $phone = '13850726589';
 
-                     break;
 
-                 case 10:
 
-                     $phone = '13655931116';
 
-                     break;
 
-                 case 11:
 
-                     $phone = '13805919791';
 
-                     break;
 
-                 case 12:
 
-                     $phone = '13305057271';
 
-                     break;
 
-                 case 13:
 
-                     $phone = '13599248586';
 
-                     break;
 
-                 case 14:
 
-                     $phone = '15859592524';
 
-                     break;
 
-                 case 15:
 
-                     $phone = '13459587022';
 
-                     break;
 
-                 case 16:
 
-                     $phone = '13799592878';
 
-                     break;
 
-                 case 17:
 
-                     $phone = '15159778791';
 
-                     break;
 
-                 case 18:
 
-                     $phone = '15905900577';
 
-                     break;
 
-                 case 19:
 
-                     $phone = '17850958856';
 
-                     break;
 
-                 case 20:
 
-                     //$phone = '13788807070';//丁琦娜  13788807070
 
-                     $phone = [
 
-                         '13788807070',
 
-                         '13313837788',
 
-                     ];
 
-                     break;
 
-                 case 21:
 
-                     $phone = '13505986964';
 
-                     break;
 
-                 case 22:
 
-                     $phone = '15060600938';
 
-                     break;
 
-                 case 23:
 
-                     $phone = '13305073366';
 
-                     break;
 
-                 case 24:
 
-                     $phone = '15880738158';
 
-                     break;
 
-                 case 25:
 
-                     $phone = '13860706099';
 
-                     break;
 
-                 case 26:
 
-                     $phone = '17379989114';
 
-                     break;
 
-                 case 27:
 
-                     $phone = [
 
-                         '13788807070',
 
-                         '13599716573'
 
-                     ];
 
-                     break;
 
-                 case 28:
 
-                     $phone = [
 
-                         '13788807070',
 
-                         '13505023260'
 
-                     ];
 
-                     break;
 
-                 case 29:
 
-                     $phone = '18850541454';
 
-                     break;
 
-                 case 30:
 
-                     $phone = '18900399886';
 
-                     break;
 
-                 case 31:
 
-                     $phone = '13489858833';
 
-                     break;
 
-                 case 32:
 
-                     $phone = '13960457968';
 
-                     break;
 
-                 case 33:
 
-                     $phone = '18759973633';
 
-                     break;
 
-                 case 34:
 
-                     $phone = '15396576970';
 
-                     break;
 
-                 case 35:
 
-                     $phone = '15959501620';
 
-                     break;
 
-                 case 36:
 
-                     $phone = '13799858905';
 
-                     break;
 
-                 case 37:
 
-                     $phone = '13559621092';
 
-                     break;
 
-                 case 38:
 
-                     $phone = '13799592878';
 
-                     break;
 
-                 case 39:
 
-                     $phone = '13600737303';
 
-                     break;
 
-                 case 40:
 
-                     $phone = '15060910357';//姜自元
 
-                     break;
 
-                 case 41:
 
-                     $phone = '13489719977';
 
-                     break;
 
-                 case 42:
 
-                     $phone = '17750597113';
 
-                     break;
 
-                 case 43:
 
-                     $phone = '15959953335';
 
-                     break;
 
-                 case 44:
 
-                     $phone = '';
 
-                     break;
 
-                 default:
 
-                     $phone = '18060002035';
 
-                     break;
 
-             }
 
-             if(is_array($phone)){
 
-                 foreach ($phone as $v){
 
-                     $this->smsService->sendSms($v,'sms_custom',array('username'=>$data['username'],'phone'=>$data['phone'],'content'=>$content));
 
-                 }
 
-             }else{
 
-                 if(!empty($phone)){
 
-                     $this->smsService->sendSms($phone,'sms_custom',array('username'=>$data['username'],'phone'=>$data['phone'],'content'=>$content));
 
-                 }
 
-             }
 
-             $res['status'] = 'ok';
 
-             $res['msg'] = '预约登记成功';
 
-             $this->smsService->sendSms($data['phone'],'sms_order_number',array('number'=>$data['number'],'service'=>$data['service']));
 
-         }else{
 
-             $res['status'] = 'ok';
 
-             $res['msg'] = '服务咨询登记成功';
 
-         }
 
-         echo json_encode($res);die;
 
-     }
 
-     public function getAppointment(Request $request){
 
-         $page = $request->input('page');
 
-         $name = $request->input('name');
 
-         $type = $request->input('type',99);
 
-         $status = $request->input('status',99);
 
-         $number = $request->input('number');
 
-         $where = [];
 
-         if(!empty($name)){
 
-             $where[] = ['username','like',"%{$name}%"];
 
-         }
 
-         if(!empty($number)){
 
-             $where[] = ['number','like',"%{$number}%"];
 
-         }
 
-         if($type != 99 ){
 
-             $where[] = ['is_talent','=',$type];
 
-         }
 
-         if($status != 99){
 
-             $where[] = ['status','=',$status];
 
-         }else{
 
-             $where[] = ['status','<','2'];
 
-         }
 
-         $count = DB::table('lt_apppointment')->where($where)->count();
 
-         $list = DB::table('lt_apppointment')->where($where)->orderBy('id','desc')->orderBy('createtime','desc')->offset(($page-1)*20)->limit($page*20)->select("number","username",'phone','service','content','is_talent','status','evaluate')->get()->toArray();
 
-         $res['status'] = 'ok';
 
-         $res['msg'] = '查询成功';
 
-         $res['list'] = $list;
 
-         $res['total'] = $count;
 
-         echo json_encode($res);die;
 
-     }
 
-     public function putEvaluate(Request $request){
 
-         $number = $request->input('number');
 
-         $message = $request->input('message');
 
-         if(!$number || $number == '' || strlen($number) != 14){
 
-             $res['status'] = 'error';
 
-             $res['msg'] = '预约号不正确SR10-1';
 
-             echo json_encode($res);die;
 
-         }
 
-         $info = DB::table('lt_apppointment')->where('number',$number)->first();
 
-         if(!$info){
 
-             $res['status'] = 'error';
 
-             $res['msg'] = '预约号不存在SR10-2';
 
-             echo json_encode($res);die;
 
-         }
 
-         if($info->evaluate){
 
-             $res['status'] = 'error';
 
-             $res['msg'] = '此服务预约已评价HA10-1';
 
-             echo json_encode($res);die;
 
-         }
 
-         if(!$message || $message == ''){
 
-             $res['status'] = 'error';
 
-             $res['msg'] = '评价内容不能为空';
 
-             echo json_encode($res);die;
 
-         }
 
-         DB::table('lt_apppointment')->where('number',$number)->update(['evaluate'=>$message]);
 
-         $res['status'] = 'ok';
 
-         $res['msg'] = '评价成功';
 
-         echo json_encode($res);die;
 
-     }
 
-     public function putEvaluateMobile(Request $request)
 
-     {
 
-         $mobile = $request->input('mobile');
 
-         $msg = $request->input('msg');
 
-         if($mobile != '' && $msg != ''){
 
-             $info = DB::table('lt_apppointment')->where('phone',$mobile)->orderBy('id','desc')->first();
 
-             if($info){
 
-                 switch ($msg){
 
-                     case '1':
 
-                         $evaluate = "非常满意";
 
-                         break;
 
-                     case '2':
 
-                         $evaluate = "基本满意";
 
-                         break;
 
-                     case '3':
 
-                         $evaluate = "不满意";
 
-                         break;
 
-                     default:
 
-                         $evaluate = '短信回复有误,需要回访';
 
-                         break;
 
-                 }
 
-                 DB::table('lt_apppointment')->where('id',$info->id)->update(['evaluate'=>$evaluate]);
 
-             }
 
-         }
 
-         echo json_encode(['clcode'=>'000000']);
 
-     }
 
-     public function sendSms(){
 
- //        $list = DB::table('lt_apppointment')->where('value',44)->where('is_talent',1)->get();
 
- //        foreach ($list as $k => $v){
 
- //            $this->smsService->sendSms($v->phone,'sms_order_number',array('number'=>$v->number,'service'=>$v->service));
 
- //        }
 
-     }
 
-     protected function findAvailableNo()
 
-     {
 
-         $prefix = date('Ymd');
 
-         // 随机生成 6 位的数字,并创建订单号
 
-         $no = $prefix.random_int(10000, 99999).substr(microtime(true),-2);
 
-         // 判断是否已经存在
 
-         if (!DB::table('lt_apppointment')->where('number', $no)->exists()) {
 
-             return $no;
 
-         }else{
 
-             $this->findAvailableNo();
 
-         }
 
-     }
 
-     public function checkCard(Request $request){
 
-         $card = $request->input('card');
 
-         if(strlen($card) == 18 && !$this->isValid($card)){
 
-             $res['status'] = 'error';
 
-             $res['msg'] = '身份证格式不正确';
 
-             exit(json_encode($res));
 
-         }
 
-         $info = DB::table('talent')->where('card',$card)->first();
 
-         if(!$info){
 
-             $ch = curl_init ();
 
-             curl_setopt( $ch, CURLOPT_URL, "http://rc.jucai.gov.cn/api/dataInterface/findTalentArrangeByIdCard?idCard={$card}" );
 
-             curl_setopt( $ch, CURLOPT_HTTPHEADER, array(
 
-                     'Content-Type: application/json; charset=utf-8'   //json版本需要填写  Content-Type: application/json;
 
-                 )
 
-             );
 
-             curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4); //若果报错 name lookup timed out 报错时添加这一行代码
 
-             curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
 
-             curl_setopt( $ch, CURLOPT_TIMEOUT,60);
 
-             curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0);
 
-             curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0);
 
-             $result = curl_exec ( $ch );
 
-             curl_close ( $ch );
 
-             $ret = json_decode($result,true);
 
-             $res['status'] = 'ok';
 
-             $res['msg'] = '获取成功';
 
-             $res['data'] = $ret;
 
-         }else{
 
-             $res['status'] = 'ok';
 
-             $res['msg'] = '获取成功';
 
-             $res['data'] = [
 
-                 'msg'   =>  '已认定人才',
 
-                 'state' =>  1,
 
-                 'level' =>  $info->level
 
-             ];
 
-         }
 
-         echo json_encode($res);
 
-     }
 
-     /**
 
-      * 校验身份证号是否合法
 
-      * @param string $num 待校验的身份证号
 
-      * @return bool
 
-      */
 
-     protected function isValid(string $num)
 
-     {
 
-         //老身份证长度15位,新身份证长度18位
 
-         $length = strlen($num);
 
-         if ($length == 15) { //如果是15位身份证
 
-             //15位身份证没有字母
 
-             if (!is_numeric($num)) {
 
-                 return false;
 
-             }
 
-             // 省市县(6位)
 
-             $areaNum = substr($num, 0, 6);
 
-             // 出生年月(6位)
 
-             $dateNum = substr($num, 6, 6);
 
-         } else if ($length == 18) { //如果是18位身份证
 
-             //基本格式校验
 
-             if (!preg_match('/^\d{17}[0-9xX]$/', $num)) {
 
-                 return false;
 
-             }
 
-             // 省市县(6位)
 
-             $areaNum = substr($num, 0, 6);
 
-             // 出生年月日(8位)
 
-             $dateNum = substr($num, 6, 8);
 
-         } else { //假身份证
 
-             return false;
 
-         }
 
-         //验证地区
 
-         if (!$this->isAreaCodeValid($areaNum)) {
 
-             return false;
 
-         }
 
-         //验证日期
 
-         if (!$this->isDateValid($dateNum)) {
 
-             return false;
 
-         }
 
-         //验证最后一位
 
-         if (!$this->isVerifyCodeValid($num)) {
 
-             return false;
 
-         }
 
-         return true;
 
-     }
 
-     /**
 
-      * 省市自治区校验
 
-      * @param string $area 省、直辖市代码
 
-      * @return bool
 
-      */
 
-     private function isAreaCodeValid(string $area) {
 
-         $provinceCode = substr($area, 0, 2);
 
-         // 根据GB/T2260—999,省市代码11到65
 
-         if (11 <= $provinceCode && $provinceCode <= 65) {
 
-             return true;
 
-         } else {
 
-             return false;
 
-         }
 
-     }
 
-     /**
 
-      * 验证出生日期合法性
 
-      * @param string $date 日期
 
-      * @return bool
 
-      */
 
-     private function isDateValid(string $date) {
 
-         if (strlen($date) == 6) { //15位身份证号没有年份,这里拼上年份
 
-             $date = '19'.$date;
 
-         }
 
-         $year  = intval(substr($date, 0, 4));
 
-         $month = intval(substr($date, 4, 2));
 
-         $day   = intval(substr($date, 6, 2));
 
-         //日期格式正确,但是逻辑存在问题(如:年份大于当前年)
 
-         $currYear = date('Y');
 
-         if ($year > $currYear) {
 
-             return false;
 
-         }
 
-         return true;
 
-     }
 
-     /**
 
-      * 验证18位身份证最后一位
 
-      * @param string $num 待校验的身份证号
 
-      * @return bool
 
-      */
 
-     private static function isVerifyCodeValid(string $num)
 
-     {
 
-         if (strlen($num) == 18) {
 
-             $factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
 
-             $tokens = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
 
-             $checkSum = 0;
 
-             for ($i = 0; $i < 17; $i++) {
 
-                 $checkSum += intval($num{$i}) * $factor[$i];
 
-             }
 
-             $mod   = $checkSum % 11;
 
-             $token = $tokens[$mod];
 
-             $lastChar = strtoupper($num{17});
 
-             if ($lastChar != $token) {
 
-                 return false;
 
-             }
 
-         }
 
-         return true;
 
-     }
 
- }
 
 
  |