get('userid');//中间件产生的参数 $info =request('info'); $s=app()->make(PersonService::class); return $s->Register(['openid'=>$openid,'info'=>$info]); } public function GetPersonRecode(Request $request){ $openid = $request->get('userid');//中间件产生的参数 $group = $request->get('role');//中间件产生的参数 $s=app()->make(PersonService::class); return $s->GetPersonRecode(['openid'=>$openid,'group'=>$group]); } //获取用户体检详情和pdf public function GetPersonReportDetail(){ $sfz =request('sfz'); //HSM加密 $HSM_sfz =\App\Lib\HSM::HsmEncrypt($sfz); if($HSM_sfz['status']!=true){ return \Yz::echoError1('调用HSM加密失败'); } $sfz=$HSM_sfz['data']; $info=DB::table('examination_records')->where(['id_card_num'=>$sfz]) ->orderBy('id', 'desc')->first(); if($info){ $info->pdfs=count(json_decode($info->pdfs, true)); $item=DB::table('report_result_item') ->where(['examination_id'=>$info->id]) ->select(['item_name','item_result','flag'])->get(); $info->items=$item; if(strlen($info->id_card_num)>30){ //HSM解密 $HSM_sfz =\App\Lib\HSM::HsmDecrypt($info->id_card_num); if($HSM_sfz['status']!=true){ return \Yz::echoError1('调用HSM加密失败'); } $info->id_card_num=$HSM_sfz['data']; } return \Yz::Return(true,'',['info'=>$info]); }else{ return \Yz::echoError1('未找到相关体检信息'); } } //修改H5获取用户pdf方式,改为根据体检提供的pdf链接地址获取pdf public function GetPersonPdfDetailByLink() { $recordid =request('recordid'); $pdf_num =request('pdf_num'); $query=DB::table('examination_records')->where(['id'=>$recordid])->first(); if(!$query) return \Yz::echoError1('未找到对应体检记录'); $pdfs=json_decode($query->pdfs, true); $pdfurl=$pdfs[$pdf_num]; // 使用 GuzzleHttp 获取第三方 PDF 地址的内容 $client = new Client(); $response = $client->get($pdfurl); return response($response->getBody()); // return response($response->getBody()->getContents(), 200) // ->header('Content-Type', 'application/pdf') // ->header('Content-Disposition', 'inline; filename="sample.pdf"'); // $date = date("Ymd"); // $filename = 'pdf_' . time() . '.pdf'; // Storage::disk('public')->put('/pdf/'.$date.'/'."a.pdf", $response->getBody()); // // return \Yz::Return(true,'获取成功',['fileurl' =>'/storage/pdf/'.$date.'/'.$filename]); } //用户扫码跳转输入身份证和电话 查询用户体检详情和pdf public function H5GetPersonReportDetail(){ $get_info =request('info'); if(!isset($get_info['sfz'])) return \Yz::echoError1('身份证不能为空'); if(!isset($get_info['tel'])) return \Yz::echoError1('电话不能为空'); //HSM加密 $HSM_sfz =\App\Lib\HSM::HsmEncrypt($get_info['sfz']); if($HSM_sfz['status']!=true){ return \Yz::echoError1('调用HSM加密失败'); } $get_info['sfz']=$HSM_sfz['data']; if(isset($get_info['tel'])){ $HSM_tel =\App\Lib\HSM::HsmEncrypt($get_info['tel']); if($HSM_tel['status']!=true){ return \Yz::echoError1('调用HSM加密失败'); } $get_info['tel']=$HSM_tel['data']; } $info=DB::table('examination_records')->where(['id_card_num'=>$get_info['sfz'],'tel'=>$get_info['tel']]) ->orderBy('id', 'desc')->first(); if($info){ $item=DB::table('report_result_item') ->where(['examination_id'=>$info->id]) ->select(['item_name','item_result','flag'])->get(); $info->items=$item; $accessTimeout = \JWT::GetGetSecretTimeOut(); $refreshTimeout = \JWT::GetRefreshTokenTimeOut(); $access_token = \JWT::BuildJWT('yz','access',$get_info['sfz'],'mH5user',$accessTimeout); $refresh_token = \JWT::BuildJWT('yz','refresh',$get_info['sfz'],'',$refreshTimeout); return \Yz::Return(true,'',['info'=>$info,'token'=>$access_token,'refresh_token'=>$refresh_token]); }else{ return \Yz::echoError1('未找到相关体检信息'); } } }