get('userid');//中间件产生的参数 $group = $request->get('role');//中间件产生的参数 $page =request('page'); $pageSize =request('pageSize'); $searchInfo=request('searchInfo'); $s=app()->make(AppointmentService::class); return $s->GetAppointmentList(['userid'=>$userid,'group'=>$group,'page'=>$page,'pageSize'=>$pageSize,'searchInfo'=>$searchInfo]); } //对外插入预约记录 public function CreateAppointment(){ date_default_timezone_set('PRC'); $currentYear = date('Y'); $firstDay = date('Y-01-01', strtotime($currentYear)); $lastDay = date('Y-12-31', strtotime($currentYear)); $source='接口'; $info=request('info'); //HSM加密 $HSM_sfz =\App\Lib\HSM::HsmEncrypt($info['id_card_num']); if($HSM_sfz['status']!=true){ return \Yz::echoError1('调用HSM加密失败'); } $info['id_card_num']=$HSM_sfz['data']; if(isset($info['tel'])){ $HSM_tel =\App\Lib\HSM::HsmEncrypt($info['tel']); if($HSM_tel['status']!=true){ return \Yz::echoError1('调用HSM加密失败'); } $info['tel']=$HSM_tel['data']; } $c=DB::table('appointment_record as a') ->where([['a.id_card_num','=',$info['id_card_num']],['a.is_del','=',0],['a.fee_type','=',0],['a.created_at','>=',$firstDay],['a.created_at','<=',$lastDay]])->get(); if(count($c)>0){ $result['status']=false; $result['msg']='已体检过'; $result['info']=$c; return \Yz::Return(false,'本年度已经有体检登记记录',['info'=>$c]); }else{ $result['status']=true; $result['msg']='可以继续,本年度无免费体检记录'; $result['info']=$c; } $currentDateTime = date('Y-m-d H:i:s'); $org_code=isset($info['org_code'])?$info['org_code']:''; $Hmac=\App\Lib\HSM::Hmac($info['name'].$info['id_card_num'].$info['tel'].$org_code.$currentDateTime); if($Hmac['status']!=true){ return \Yz::echoError1('HMAC摘要失败'); } $i=DB::table('appointment_record')->insert([ 'source'=>$source, 'type'=>$info['type'], 'name'=>$info['name'], 'id_card_num'=>$info['id_card_num'], 'sex'=>$info['sex'], 'tel'=>$info['tel'], 'status'=>1, 'is_del'=>0, //'content'=>json_encode($info['content']), 'content'=>isset($info['content'])?json_encode($info['content'],JSON_UNESCAPED_UNICODE):'', 'fee_type'=>$info['fee_type'], 'org_code'=>$org_code, 'org_name'=>isset($info['org_name'])?$info['org_name']:'', 'created_at'=>$currentDateTime, 'hmac'=>$Hmac['data'], ]); if($i){ return \Yz::Return(true,'保存成功',[]); }else{ return \Yz::echoError1('保存失败'); } } public function Del() { $id=request('id'); $d=DB::table('appointment_record')->where('id',$id)->update([ 'is_del'=>1 ]); if($d){ return \Yz::Return(true,'操作成功',[]); }else{ return \Yz::echoError1('操作失败'); } } //统计各个体检机构预约登记记录 public function AppointmentCount(Request $request) { $userid = $request->get('userid');//中间件产生的参数 $group = $request->get('role');//中间件产生的参数 $searchInfo=request('searchInfo'); if($group<>1){ $cha=DB::table('medical_institution')->where(['link_user_id'=>$userid])->first(); $searchInfo['sn']=$cha->sn; } $list=DB::table('appointment_record as a') ->select('a.org_code','b.org_name',DB::raw('count(*) as count')) ->leftJoin('medical_institution as b','a.org_code','=','b.sn'); if(empty($searchInfo['dateRange'])){ $searchInfo['start']=date('Y-m-d')." 00:00:00"; $searchInfo['end']= date('Y-m-d')." 23:59:59"; }else{ $searchInfo['start']=$searchInfo['dateRange'][0]." 00:00:00"; $searchInfo['end']=$searchInfo['dateRange'][1]." 23:59:59"; } if(isset($searchInfo['sn'])){ $list=$list->where('a.org_code',$searchInfo['sn']); } if(isset($searchInfo['checkType'])){ $list=$list->where('a.type',$searchInfo['checkType']); } $list=$list ->where([['a.is_del','=',0],['a.created_at','>=',$searchInfo['start']],['a.created_at','<=',$searchInfo['end']]]) ->groupBy('a.org_code','b.org_name') ->get(); return \Yz::Return(true,'查询成功',$list); } }