where(['openid'=>$openid])->get(); if(count($c)){ return true; }else{ return false; } } //注册 public function Register($arr){ $result=array(); $c= $this->checkRegister(['openid'=>$arr['openid']]); if($c){ $result['status']=false; $result['msg']='已注册过,无需进行此操作'; }else{ //HSM加密 $HSM_sfz =\App\Lib\HSM::HsmEncrypt($arr['info']['sfz']); if($HSM_sfz['status']!=true){ return \Yz::echoError1('调用HSM加密失败'); } $arr['info']['sfz']=$HSM_sfz['data']; if(isset($arr['info']['tel'])){ $HSM_tel =\App\Lib\HSM::HsmEncrypt($arr['info']['tel']); if($HSM_tel['status']!=true){ return \Yz::echoError1('调用HSM加密失败'); } $arr['info']['tel']=$HSM_tel['data']; } $i=DB::table('persons')->insert([ 'name' => $arr['info']['name'], 'sex' => $arr['info']['sex'], 'id_card_num' => $arr['info']['sfz'], 'tel' => $arr['info']['tel'], 'openid' => $arr['openid'], 'status'=>1 ]); if($i){ $result['status']=true; $result['msg']='创建成功'; }else{ $result['status']=false; $result['msg']='操作失败'; } } return $result; } //检测是否进行过免费体检 public function GetPersonRecode($arr,$type=1){ $result=array(); $id_num=''; if(isset($arr['group']) and $arr['group']=='mH5user'){ //如果是本地项目请求(非对外接口) $openid=$arr['openid']; $c=DB::table('persons')->select(['id_card_num'])->where(['openid'=>$openid,'status'=>1])->get(); if(count($c)>0){ $id_num=$c[0]->id_card_num; }else{ $result['status']=false; $result['msg']='未找到有效用户'; return $result; } }else{ //对外接口,直接获取证件IdNum $id_num=$arr['id_num']; } if(strlen($id_num)>0){ date_default_timezone_set('PRC'); $currentYear = date('Y'); $firstDay = date('Y-01-01', strtotime($currentYear)); $lastDay = date('Y-12-31', strtotime($currentYear)); //查询体检预约记录 //查询体检记录表 免费体检记录 $c=DB::table('examination_records as a') ->join('medical_institution as b', 'a.institution_id', '=', 'b.id') ->select(['a.id','a.institution_id','a.id_card_num','a.tijian_num','a.tijian_time','a.created_at as insertime','b.org_name'])->where([['a.id_card_num','=',$id_num],['a.created_at','>=',$firstDay],['a.created_at','<=',$lastDay]])->get(); if(count($c)>0){ $result['status']=false; $result['msg']='已体检过'; $result['info']=$c; }else{ $result['status']=true; $result['msg']='可以继续,本年度无免费体检记录'; $result['info']=$c; } }else{ $result['status']=false; $result['msg']='用户证件号未传'; } return $result; } //获取个人预约记录详情 public function GetAppointmentRecord($arr){ //HSM加密 $HSM_sfz =\App\Lib\HSM::HsmEncrypt($arr['id_num']); if($HSM_sfz['status']!=true){ return \Yz::echoError1('调用HSM加密失败'); } $arr['id_num']=$HSM_sfz['data']; $cha = DB::select("SELECT a.*,b.sex,b.tel,b.status,c.org_name from appointment_record as a INNER JOIN persons as b on a.person_id=b.id INNER JOIN medical_institution as c on a.org_id=c.id where a.id_card_num=? and a.status=1",[$arr['id_num']]); if(count($cha)>0){ $cha[0]->bind_check_type=null; $cha[0]->bind_unit_id=null; $cha[0]->bind_group_id=null; $cha[0]->bind_batch_id=null; $cha[0]->start_time=substr($cha[0]->time, 0,5); $cha[0]->end_time=substr($cha[0]->time,-5); $org_seting=DB::table('institution_seting')->where(['institution_id'=>$cha[0]->org_id,'small_check_type'=>$cha[0]->doc_type_name])->first(); if(!!$org_seting){ $cha[0]->bind_check_type=$org_seting->bind_check_type; $cha[0]->bind_unit_id=$org_seting->bind_unit_id; $cha[0]->bind_group_id=$org_seting->bind_group_id; $cha[0]->bind_batch_id=$org_seting->bind_batch_id; } $cha_img =DB::table('appointment_img')->where('appointment_record_id',$cha[0]->id)->get(); //env('APP_URL') foreach ($cha_img as $key=>$item){ $cha_img[$key]->imgurl=env('APP_URL').$item->imgurl; } $cha[0]->imgs=$cha_img; } if(!count($cha)>0) return \Yz::echoError1("未找到预约记录"); return \Yz::Return(true,'',$cha); } }