From 74193c2c820ac2cd2efd7d7a020a5a5214e9ded5 Mon Sep 17 00:00:00 2001 From: yanzai Date: Thu, 18 Jul 2024 00:01:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=8E=B7=E5=8F=96=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=8A=A5=E5=91=8Aurl=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/API/mH5/PersonController.php | 72 ++++++++++++++---- Laravel/routes/api.php | 1 + mH5/src/components/Loading.vue | 2 + mH5/src/views/PersonReportLogin.vue | 45 ++++++----- mH5/src/views/ShowReport.vue | 75 ++++++++++--------- 5 files changed, 125 insertions(+), 70 deletions(-) diff --git a/Laravel/app/Http/Controllers/API/mH5/PersonController.php b/Laravel/app/Http/Controllers/API/mH5/PersonController.php index 5437b8e..5844e25 100644 --- a/Laravel/app/Http/Controllers/API/mH5/PersonController.php +++ b/Laravel/app/Http/Controllers/API/mH5/PersonController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\API\mH5; use App\Http\Controllers\Controller; +use App\Lib\HSM; use App\Services\mH5\PersonService; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; @@ -33,7 +34,7 @@ class PersonController extends Controller return \Yz::echoError1('调用HSM加密失败'); } $sfz=$HSM_sfz['data']; - $info=DB::table('examination_records')->where(['id_card_num'=>$sfz]) ->orderBy('id', 'desc')->first(); + $info=DB::table('examination_records')->where(['id_card_num'=>$sfz,'is_del'=>0]) ->orderBy('id', 'desc')->first(); if($info){ $info->pdfs=count(json_decode($info->pdfs, true)); $item=DB::table('report_result_item') @@ -85,26 +86,42 @@ class PersonController extends Controller //用户扫码跳转输入身份证和电话 查询用户体检详情和pdf public function H5GetPersonReportDetail(){ $get_info =request('info'); - if(!isset($get_info['sfz'])) return \Yz::echoError1('身份证不能为空'); - if(!isset($get_info['tel'])) return \Yz::echoError1('电话不能为空'); + $info=DB::table('examination_records'); + if(isset($get_info['tj_num'])){ + $HSM =\App\Lib\HSM::HsmDecrypt($get_info['tj_num']); + if($HSM['status']!=true){ + return \Yz::echoError1('调用HSM解密失败'); + } + $get_info['tj_num'] = $HSM['data']; + $info=$info->where(['tijian_num'=>$get_info['tj_num']]); + }else{ + 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){ + //HSM加密 + $HSM_sfz =\App\Lib\HSM::HsmEncrypt($get_info['sfz']); + if($HSM_sfz['status']!=true){ return \Yz::echoError1('调用HSM加密失败'); } - $get_info['tel']=$HSM_tel['data']; + $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=$info->where(['id_card_num'=>$get_info['sfz'],'tel'=>$get_info['tel']]); } - $info=DB::table('examination_records')->where(['id_card_num'=>$get_info['sfz'],'tel'=>$get_info['tel']]) ->orderBy('id', 'desc')->first(); + $info=$info->where(['is_del'=>0]) ->orderBy('id', 'desc')->first(); if($info){ + $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']; $item=DB::table('report_result_item') ->where(['examination_id'=>$info->id]) ->select(['item_name','item_result','flag'])->get(); @@ -112,8 +129,8 @@ class PersonController extends Controller $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); + $access_token = \JWT::BuildJWT('yz','access',$info->id_card_num,'mH5user',$accessTimeout); + $refresh_token = \JWT::BuildJWT('yz','refresh',$info->id_card_num,'',$refreshTimeout); return \Yz::Return(true,'',['info'=>$info,'token'=>$access_token,'refresh_token'=>$refresh_token]); }else{ @@ -121,4 +138,27 @@ class PersonController extends Controller } } + //给体检提供查看用户健康证报告的url 用于体检那边生成二维码 + public function GetReportUrl() + { + $tijian_num =request('tijian_num'); + //$baseUrl='http://223.71.106.251:82'; + $baseUrl=env('QIANZHI_WAIWANG'); + + $report=DB::table('examination_records')->where(['tijian_num'=>$tijian_num,'is_del'=>0])->first(); + if(!!$report){ + $HSM=\App\Lib\HSM::HsmEncrypt($tijian_num); + if($HSM['status']!=true){ + return \Yz::echoError1('调用HSM加密失败'); + } + $tijian_num=$HSM['data']; + $url=$baseUrl.'/mh5/#/personReportLogin?lg_type=ewm&tj_num='.$tijian_num; + return \Yz::Return(true,'获取成功',$url); + }else{ + return \Yz::echoError1('没有此体检号对应的记录'); + } + + + } + } diff --git a/Laravel/routes/api.php b/Laravel/routes/api.php index 0d1c999..e473ab6 100644 --- a/Laravel/routes/api.php +++ b/Laravel/routes/api.php @@ -92,6 +92,7 @@ Route::group(['middleware'=>['check.sign','log'],'prefix'=>'v1'],function () { Route::get('GetPersonCheckUpDetail','App\Http\Controllers\API\Admin\YeWu\HealthCheckupController@GetPersonCheckUpDetail');//根据体检号查询体检详情 Route::post('CreateAppointment','App\Http\Controllers\API\Admin\YeWu\AppointmentController@CreateAppointment');//创建预约记录 Route::post('CreateCheckupPdf','App\Http\Controllers\API\Admin\YeWu\HealthCheckupController@CreateCheckupPdf');//对外接口,创建体检记录 姓名、电话、身份证、体检机构编码、体检号、pdfs + Route::get('GetReportUrl','App\Http\Controllers\API\mH5\PersonController@GetReportUrl');//对外接口,获取用户体检报告url }); diff --git a/mH5/src/components/Loading.vue b/mH5/src/components/Loading.vue index a3714f9..58ea314 100644 --- a/mH5/src/components/Loading.vue +++ b/mH5/src/components/Loading.vue @@ -9,7 +9,9 @@