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 @@