|
|
|
|
@ -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('没有此体检号对应的记录');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|