diff --git a/Laravel/app/Http/Controllers/API/Admin/YeWu/HealthCheckupController.php b/Laravel/app/Http/Controllers/API/Admin/YeWu/HealthCheckupController.php index 4811204..dfbab14 100644 --- a/Laravel/app/Http/Controllers/API/Admin/YeWu/HealthCheckupController.php +++ b/Laravel/app/Http/Controllers/API/Admin/YeWu/HealthCheckupController.php @@ -33,9 +33,10 @@ class HealthCheckupController extends Controller //查询能否进行免费体检 public function CheckRequirements(){ $id_card_num=request('id_card_num'); + $name=request('name'); $type=request('type');//体检类型 1,健康证2老年人 $s=app()->make(AppointmentService::class); - return $s->CheckAppointment($id_card_num,$type); + return $s->CheckAppointment($name,$id_card_num,$type); } //获取个人预约记录详情 diff --git a/Laravel/app/Http/Controllers/TestController.php b/Laravel/app/Http/Controllers/TestController.php index 2894467..311dec1 100644 --- a/Laravel/app/Http/Controllers/TestController.php +++ b/Laravel/app/Http/Controllers/TestController.php @@ -3,11 +3,21 @@ namespace App\Http\Controllers; use Illuminate\Http\Request; -use Illuminate\Support\Facades\DB; class TestController extends Controller { public function DBtest(){ - echo DB::table('users')->count(); + //echo DB::table('users')->count(); + $SendData=' + + 任普 + + 110224195806025611 + '; + + $url = config('app.globals.GongWeiBaseUrl'); + return \Yz::XmlHttp($SendData,$url); + + } } diff --git a/Laravel/app/Lib/Yz.php b/Laravel/app/Lib/Yz.php index 2bb8947..f0fab95 100644 --- a/Laravel/app/Lib/Yz.php +++ b/Laravel/app/Lib/Yz.php @@ -1,4 +1,8 @@ + + ' + .$SendData. + ' +'; + + $headers = array( + "Content-type: text/xml;charset=utf-8", + "Accept: text/xml", + "Cache-Control: no-cache", + "Pragma: no-cache", + "Content-length: ".strlen($xml_post_string), + "appCode: glMzZT", + "sign: E98BB73DE7356B1641BCA0D025D7CD11", + "apiCode: 9051ecd6-dd16-4cdb-9a38-ca159114febd", + ); + + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); + curl_setopt($ch, CURLOPT_POST, 1); + curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_post_string); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20); + + + + $resdata = curl_exec($ch); +// 记录请求结束时间 + $end_time = microtime(true); + // 计算时间差 + $request_time = $end_time - $start_time; + +// 打印请求时间 + echo "请求时间:{$request_time} 秒"; + + + + $result=""; + try { + if(curl_errno($ch)) { + $result=curl_error($ch); + // print curl_error($ch); + } else { + curl_close($ch); + + $res = explode('', $resdata)[1]; + $res = explode('', $res)[0]; + + $xmlObject = simplexml_load_string($res); + $jsonData = json_encode($xmlObject); + $result = json_decode($jsonData, true); + } + }catch (Exception $e) { + $result = $e->getMessage(); + } + + LogService::CheckTableName(); + date_default_timezone_set('PRC'); + $table_name='zz_request_log_' . date('ym'); + $formatted_date= date("Y-m-d H:i:s"); + DB::table($table_name)->insert([ + 'request_ip'=>'', + 'response_data'=>json_encode($result, JSON_UNESCAPED_UNICODE), + 'header_data'=>'', + 'post_data'=>$SendData, + 'get_data'=>'', + 'request_url'=>$url, + 'create_time' => $formatted_date, + 'update_time' => $formatted_date + + ]); + + return $result; + } + } diff --git a/Laravel/app/Services/Admin/YeWu/AppointmentService.php b/Laravel/app/Services/Admin/YeWu/AppointmentService.php index 8bae60f..fcebd21 100644 --- a/Laravel/app/Services/Admin/YeWu/AppointmentService.php +++ b/Laravel/app/Services/Admin/YeWu/AppointmentService.php @@ -48,7 +48,7 @@ class AppointmentService } //检测是否有登记预约记录 - public function CheckAppointment($id_card_num,$type){ + public function CheckAppointment($name,$id_card_num,$type){ if(strlen($id_card_num)>0){ date_default_timezone_set('PRC'); $currentYear = date('Y'); @@ -69,9 +69,19 @@ class AppointmentService $result['msg']='已体检过'; $result['info']=$c; }else{ - $result['status']=true; - $result['msg']='可以继续,本年度无免费体检记录'; - $result['info']=$c; + + $gongwei= self::CheckGongWei($name,$id_card_num); + if( $gongwei['status']===false) { + $result['status'] = false; + $result['msg'] = $gongwei['msg']; + $result['GongWeiinfo'] = $gongwei['GongWeiinfo']; + return $result; + } + $result['status']=true; + $result['msg']='可以继续,本年度无免费体检记录'; + $result['info']=$c; + + } @@ -82,6 +92,39 @@ class AppointmentService return $result; } + public function CheckGongWei($name,$id_card_num){ + date_default_timezone_set('PRC'); + $currentYear = date('Y'); + $firstDay = date('Y-01-01', strtotime($currentYear)); + $lastDay = date('Y-12-31', strtotime($currentYear)); + $SendData=' + + '.$name.' + + '.$id_card_num.' + '; + + $url = config('app.globals.GongWeiBaseUrl').'/jkdacp/webservice/DPService?wsdl'; + $res=\Yz::XmlHttp($SendData,$url); + //如果没有返回queryCheckUp节点,返回异常 + if(!isset($res['queryCheckUp'])) { + $result['status']=false; + $result['msg']='公卫接口异常'; + $result['GongWeiinfo']=$res; + return $result; + } + $result=[]; + if(isset($res['queryCheckUp']['tjrq']) and ($res['queryCheckUp']['tjrq']>=$firstDay and $res['queryCheckUp']['tjrq']<=$lastDay)){ + $result['status']=false; + $result['msg']='公卫有记录'; + $result['GongWeiinfo']=$res['queryCheckUp']; + }else{ + $result['status']=true; + $result['msg']='公卫有无记录'; + $result['GongWeiinfo']=$res['queryCheckUp']; + } + return $result; + } function isOver65($idCard) { // 从身份证号中提取出生日期 diff --git a/Laravel/config/app.php b/Laravel/config/app.php index ef6ebfa..55e9b7d 100644 --- a/Laravel/config/app.php +++ b/Laravel/config/app.php @@ -12,7 +12,7 @@ return [ 'WxReturnCodeUrl_local'=>'http://192.168.31.106:5173/#/getWxCode/', //获取code后引导返回到前端的地址 开发 'WxReturnCodeUrl_server'=>'https://www.yanzai.vip/common/mH5/#/getWxCode/', //获取code后引导返回到前端的地址 生产 - + 'GongWeiBaseUrl'=>'http://114.242.58.53:8082/jkdacp/webservice/DPService?wsdl', //公卫接口地址,外网测试地址 ], diff --git a/el-admin/src/views/AppointmentMngr/AppointmentList.vue b/el-admin/src/views/AppointmentMngr/AppointmentList.vue index fd3137b..f6ebe4b 100644 --- a/el-admin/src/views/AppointmentMngr/AppointmentList.vue +++ b/el-admin/src/views/AppointmentMngr/AppointmentList.vue @@ -49,6 +49,12 @@ 已体检 + + +