diff --git a/Laravel/app/Http/Controllers/API/Admin/YeWu/AppointmentController.php b/Laravel/app/Http/Controllers/API/Admin/YeWu/AppointmentController.php index c21d786..e0f3214 100644 --- a/Laravel/app/Http/Controllers/API/Admin/YeWu/AppointmentController.php +++ b/Laravel/app/Http/Controllers/API/Admin/YeWu/AppointmentController.php @@ -50,7 +50,8 @@ class AppointmentController extends Controller 'id_card_num'=>$info['id_card_num'], 'sex'=>$info['sex'], 'tel'=>$info['tel'], - 'content'=>json_encode($info['content']), + //'content'=>json_encode($info['content']), + 'content'=>isset($info['content'])?json_encode($info['content'],JSON_UNESCAPED_UNICODE):'', 'fee_type'=>$info['fee_type'] ]); diff --git a/Laravel/app/Http/Controllers/API/mH5/PersonController.php b/Laravel/app/Http/Controllers/API/mH5/PersonController.php index c9dd825..07b32d7 100644 --- a/Laravel/app/Http/Controllers/API/mH5/PersonController.php +++ b/Laravel/app/Http/Controllers/API/mH5/PersonController.php @@ -21,7 +21,7 @@ class PersonController extends Controller $s=app()->make(PersonService::class); return $s->GetPersonRecode(['openid'=>$openid,'group'=>$group]); } - //获取用户pdf + //获取用户体检详情和pdf public function GetPersonReportDetail(){ $sfz =request('sfz'); $info=DB::table('examination_records')->where(['id_card_num'=>$sfz]) ->orderBy('id', 'desc')->first(); @@ -36,4 +36,27 @@ 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')->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('未找到相关体检信息'); + } + + } } diff --git a/Laravel/app/Http/Middleware/Log.php b/Laravel/app/Http/Middleware/Log.php index 88aed36..6e515d0 100644 --- a/Laravel/app/Http/Middleware/Log.php +++ b/Laravel/app/Http/Middleware/Log.php @@ -17,20 +17,23 @@ class Log */ public function handle(Request $request, Closure $next) { + $insert_id=0; + $insert_id=self::requestLog($request,$insert_id); //记录请求时日志,不含返回信息 $response = $next($request); -//dd($response); + $content = $response->getContent(); $data = json_decode($content, true); // 解码响应内容为关联数组 // 在关联数组中添加 code 字段 - $data['code'] = 200; - + // $data['code'] = 200; + $data['code'] = $response->getStatusCode(); $modifiedContent = json_encode($data); // 编码修改后的关联数组为 JSON 字符串 $response->setContent($modifiedContent); if(env('REQUEST_LOG') and $response->getStatusCode()==200){ //如果返回状态为200进行log + $ip=self::getTrustedProxiesIp(); //真实ip $request_header=$request->header(); //请求头 - //dd($response); + // dd($response); $response_data = $response->getData(); //返回data,json格式 $post_data=$request->post(); //post请求数据 $get_data=$request->query(); //get请求 @@ -43,7 +46,7 @@ class Log 'post_data'=>$post_data, 'get_data'=>$get_data, 'request_url'=>$request_url, - ]); + ],$insert_id); } @@ -53,4 +56,23 @@ class Log \request()->setTrustedProxies(\request()->getClientIps(),Request::HEADER_X_FORWARDED_FOR); return \request()->getClientIp(); } + + public static function requestLog($request,$insert_id){ //记录请求时日志,不含返回信息 + if(env('REQUEST_LOG') ){ //如果返回状态为200进行log + $ip=self::getTrustedProxiesIp(); //真实ip + $request_header=$request->header(); //请求头 + $post_data=$request->post(); //post请求数据 + $get_data=$request->query(); //get请求 + $request_url=$request->getPathInfo();//访问的接口地址 + $log=app()->make(LogService::class); + return $log->RequestLog([ + 'ip'=>$ip, + 'request_header'=>$request_header, + 'post_data'=>$post_data, + 'get_data'=>$get_data, + 'request_url'=>$request_url, + ],$insert_id); + } + + } } diff --git a/Laravel/app/Services/Admin/YeWu/HealthCheckupService.php b/Laravel/app/Services/Admin/YeWu/HealthCheckupService.php index ac280f4..2a37449 100644 --- a/Laravel/app/Services/Admin/YeWu/HealthCheckupService.php +++ b/Laravel/app/Services/Admin/YeWu/HealthCheckupService.php @@ -27,6 +27,10 @@ class HealthCheckupService if(count($org_id)!=1) return \Yz::echoError1('机构码不存在'); $status=false; + //检查体检流水号是否存在,存在禁止再次插入。 + $check_cunzai=DB::table('examination_records')->where('tijian_num',$CheckupInfo['tijian_num'])->get(); + if(count($check_cunzai)>0) return \Yz::echoError1('此体检号已经存在,禁止创建'); + DB::beginTransaction(); // 开始事务 try { // 执行数据库操作 @@ -42,9 +46,7 @@ class HealthCheckupService // } - //检查体检流水号是否存在,存在禁止再次插入。 - $check_cunzai=DB::table('examination_records')->where('tijian_num',$CheckupInfo['tijian_num'])->get(); - if(count($check_cunzai)>0) return \Yz::echoError1('此体检号已经存在,禁止创建'); + $img_url=''; if(isset($CheckupInfo['head_img'])){ $date = date("Ymd"); diff --git a/Laravel/app/Services/LogService.php b/Laravel/app/Services/LogService.php index 3e937ab..76c197e 100644 --- a/Laravel/app/Services/LogService.php +++ b/Laravel/app/Services/LogService.php @@ -3,13 +3,15 @@ namespace App\Services; use Illuminate\Support\Facades\DB; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; +use mysql_xdevapi\Exception; + class LogService { - public function RequestLog($arr){ //记录请求日志 + public function RequestLog($arr,$id){ //记录请求日志 self::CheckTableName(); $table_name='zz_request_log_' . date('ym'); - $response_data =self::JsonEncode($arr['response_data']); + $response_data =isset($arr['response_data'])?self::JsonEncode($arr['response_data']):''; $header_data = self::JsonEncode($arr['request_header']); $post_data = self::JsonEncode($arr['post_data']); $get_data = json_encode($arr['get_data'], JSON_UNESCAPED_UNICODE); @@ -17,8 +19,28 @@ class LogService $date = date("Y-m-d H:i:s", $milliseconds / 1000); $formatted_date = sprintf("%s.%03d", $date, $milliseconds % 1000); - $i=DB::insert("insert into ".$table_name." (request_ip, response_data,header_data,post_data,get_data,request_url,create_time,update_time) - values (?,?,?,?,?,?,?,?)",[$arr['ip'],$response_data,$header_data,$post_data,$get_data,$arr['request_url'],$formatted_date,$formatted_date]); + // $i=DB::insert("insert into ".$table_name." (request_ip, response_data,header_data,post_data,get_data,request_url,create_time,update_time) + // values (?,?,?,?,?,?,?,?)",[$arr['ip'],$response_data,$header_data,$post_data,$get_data,$arr['request_url'],$formatted_date,$formatted_date]); + // var_dump($i); + if($id>0){ + return DB::table($table_name)->where('id', $id)->update([ + 'response_data' => $response_data, + + ]); + }else{ + return DB::table($table_name)->insertGetId([ + 'request_ip' => $arr['ip'], + 'response_data' => $response_data, + 'header_data' => $header_data, + 'post_data' => $post_data, + 'get_data' => $get_data, + 'request_url' => $arr['request_url'], + 'create_time' => $formatted_date, + 'update_time' => $formatted_date + ]); + } + + } public static function CheckTableName(){ // 查看日志表是否存在,每月一个表,如果没有就创建 $table_name='zz_request_log_' . date('ym'); @@ -45,7 +67,7 @@ class LogService $str_len = mb_strlen(json_encode($post_datum, JSON_UNESCAPED_UNICODE)); $str_size = $str_len / 1024; if ($str_size > 10) { - $post_data["$key"] = 'Row size too large'; + $post_data->$key= 'Row size too large'; } } $post_data = json_encode($post_data, JSON_UNESCAPED_UNICODE); diff --git a/Laravel/routes/api.php b/Laravel/routes/api.php index fd01b0d..833103f 100644 --- a/Laravel/routes/api.php +++ b/Laravel/routes/api.php @@ -54,6 +54,7 @@ Route::group(['middleware'=>['checktoken','log'],'prefix'=>'v1'],function () { Route::post('wxGetOpenid','App\Http\Controllers\API\mH5\LoginController@wxGetOpenid')->middleware('log'); //mH5手机用户获取openid Route::post('AppLogin','App\Http\Controllers\API\mH5\LoginController@AppLogin')->middleware('log'); //APP嵌套h5登录,参数APP内用户唯一id +Route::post('H5GetPersonReportDetail','App\Http\Controllers\API\mH5\PersonController@H5GetPersonReportDetail')->middleware('log');//用户扫码跳转输入身份证和电话 查询用户体检详情和pdf Route::group(['middleware'=>['checktoken','log'],'prefix'=>'v1/mH5'],function () { //手机H5路由分组 Route::post('Register','App\Http\Controllers\API\mH5\PersonController@Register'); //手机H5端用户注册 Route::post('GetPersonRecode','App\Http\Controllers\API\mH5\PersonController@GetPersonRecode'); //查询用户本年度体检记录 diff --git a/el-admin/.env.production b/el-admin/.env.production index 1a89d63..0e01be5 100644 --- a/el-admin/.env.production +++ b/el-admin/.env.production @@ -1,4 +1,4 @@ ENV = 'production' -VITE_APP_API = 'https://www.yanzai.vip/common/laravel/public/api/' -VITE_APP_FILE = 'https://www.yanzai.vip/common/laravel/public' +VITE_APP_API = 'http://223.71.106.251:33581/common/la/public/api/' +VITE_APP_FILE = 'http://223.71.106.251:33581/common/la/public' diff --git a/el-admin/src/views/AppointmentMngr/AppointmentList.vue b/el-admin/src/views/AppointmentMngr/AppointmentList.vue index 8a93fd1..fd3137b 100644 --- a/el-admin/src/views/AppointmentMngr/AppointmentList.vue +++ b/el-admin/src/views/AppointmentMngr/AppointmentList.vue @@ -51,7 +51,7 @@