From d3696b5c6540d7038677623924935e4242c2d5f9 Mon Sep 17 00:00:00 2001 From: yanzai Date: Wed, 28 Aug 2024 19:10:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=80=9D=E4=BF=A1=E4=BA=A4=E4=BA=92=E8=AE=B0?= =?UTF-8?q?=E5=BD=95=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../API/Admin/YeWu/PEISApiController.php | 137 ++++++++++++------ .../Controllers/API/H5/HomeController.php | 2 +- Laravel/app/Models/PEISLog.php | 11 ++ 3 files changed, 106 insertions(+), 44 deletions(-) create mode 100644 Laravel/app/Models/PEISLog.php diff --git a/Laravel/app/Http/Controllers/API/Admin/YeWu/PEISApiController.php b/Laravel/app/Http/Controllers/API/Admin/YeWu/PEISApiController.php index 0190840..4779391 100644 --- a/Laravel/app/Http/Controllers/API/Admin/YeWu/PEISApiController.php +++ b/Laravel/app/Http/Controllers/API/Admin/YeWu/PEISApiController.php @@ -5,52 +5,103 @@ namespace App\Http\Controllers\API\Admin\YeWu; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Schema; +use Illuminate\Database\Schema\Blueprint; class PEISApiController extends Controller { - public static function Api($url_code, $code) - { - $url = 'https://dqgatjzx-wx.sixinyun.com'; - $api['套餐详情查询'] = "{$url}/PEISCommon/QueryComboDetail/{$code}"; - $api['自选项目查询'] = "{$url}/PEISCommon/QueryGroups/{$code}"; - $api['套餐查询'] = "{$url}/PEISCommon/QueryCombos/{$code}"; - return $api["{$url_code}"] ?? $url_code; + public static $request; + + public static function Api($url_code, $code) + { + $url = 'https://dqgatjzx-wx.sixinyun.com'; + $api['套餐详情查询'] = "{$url}/PEISCommon/QueryComboDetail/{$code}"; + $api['自选项目查询'] = "{$url}/PEISCommon/QueryGroups/{$code}"; + $api['套餐查询'] = "{$url}/PEISCommon/QueryCombos/{$code}"; + return $api["{$url_code}"] ?? $url_code; + } + + public static function Post($url_code, $hospital_id, $data, $print = false) + { + + $hospital = DB::table('hospitals')->where(['id' => $hospital_id, 'status' => 1, 'is_del' => 0])->first(); + if (!$hospital) return \Yz::echoError1('医院不存在或不可用'); + $code = $hospital->code; + $url = self::Api($url_code, $code); + self::RequestLog($url, $data, $code, $url_code); + $data_string = json_encode($data, JSON_UNESCAPED_UNICODE); + $ch = curl_init(); + curl_setopt($ch, CURLOPT_URL, $url); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($ch, CURLOPT_HTTPHEADER, [ + 'Content-Type: application/json; charset=utf-8', + 'Content-Length: ' . strlen($data_string) + ]); + curl_setopt($ch, CURLOPT_POST, 1); + curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); + $res_string = curl_exec($ch); + curl_close($ch); + + $str_len = mb_strlen($res_string, 'utf-8'); + $str_size = $str_len / 1024; + $save_res = $res_string; + if ($str_size > 10) $save_res = '{"data":"Row size too large"}'; + self::$request->response_data = $save_res; + self::$request->save(); + + + + if (!json_decode($res_string, true)) { + return \Yz::Return(false, '获取失败', [ + 'url' => $url, + 'data' => $data, + 'res' => $res_string + ]); + } + $res = json_decode($res_string, true); + + + return [ + 'code' => $res['ResultCode'], + 'message' => $res['ResultContent'], + 'data' => $res['Records'] + ]; + } + + public static function RequestLog($url, $post_data, $code, $mark) + { + self::CheckTableName(); + foreach ($post_data as $key => $post_datum) { + $str_len = mb_strlen(json_encode($post_datum, JSON_UNESCAPED_UNICODE), 'utf-8'); + $str_size = $str_len / 1024; + if ($str_size > 10) { + $post_data["$key"] = 'Row size too large'; + } } - public static function Post($url_code, $hospital_id, $data, $print = false) - { - - $hospital = DB::table('hospitals')->where(['id'=>$hospital_id,'status'=>1,'is_del'=>0])->first(); - if (!$hospital) return \Yz::echoError1('医院不存在或不可用'); - $code = $hospital->code; - $url = self::Api($url_code, $code); -// self::RequestLog($url, $data, $code, $url_code); - $data_string = json_encode($data, JSON_UNESCAPED_UNICODE); - $ch = curl_init(); - curl_setopt($ch, CURLOPT_URL, $url); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($ch, CURLOPT_HTTPHEADER, [ - 'Content-Type: application/json; charset=utf-8', - 'Content-Length: ' . strlen($data_string) - ]); - curl_setopt($ch, CURLOPT_POST, 1); - curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); - $res_string = curl_exec($ch); - curl_close($ch); - - if (!json_decode($res_string, true)) { - return \Yz::Return(false,'获取失败', [ - 'url' => $url, - 'data' => $data, - 'res' => $res_string - ]); - } - $res = json_decode($res_string, true); - - - return [ - 'code' => $res['ResultCode'], - 'message' => $res['ResultContent'], - 'data' => $res['Records'] - ]; + $post_data = json_encode($post_data, JSON_UNESCAPED_UNICODE); + self::$request->code = $code; + self::$request->mark = $mark; + self::$request->post_data = $post_data == '[]' ? '{}' : $post_data; + self::$request->request_url = $url; + self::$request->save(); + } + + public static function CheckTableName() + { + $table_name = 'zz_peis_log_' . date('ym'); + $table_count = DB::select('select count(1) as c from information_schema.TABLES where table_schema = ? and table_name = ?', [env('DB_DATABASE'), $table_name])[0]; + if ($table_count->c === 0) { + Schema::create($table_name, function (Blueprint $table) { + $table->id(); + $table->string('code', 50)->index(); + $table->string('mark', 50)->index(); + $table->text('post_data'); + $table->text('response_data')->nullable(); + $table->string('request_url', 300); + $table->timestamps(); + }); } + self::$request = new \App\Models\PEISLog(); + self::$request->setTable($table_name); + } } diff --git a/Laravel/app/Http/Controllers/API/H5/HomeController.php b/Laravel/app/Http/Controllers/API/H5/HomeController.php index 813ddf9..3ec7437 100644 --- a/Laravel/app/Http/Controllers/API/H5/HomeController.php +++ b/Laravel/app/Http/Controllers/API/H5/HomeController.php @@ -12,7 +12,7 @@ class HomeController extends Controller // 获取配置更新时间 public function config_version() { - $version = '2024-08-14 18:00:02'; + $version = '2024-08-28 18:00:02'; return \Yz::Return(true, '获取成功', [ 'version' => $version ]); diff --git a/Laravel/app/Models/PEISLog.php b/Laravel/app/Models/PEISLog.php new file mode 100644 index 0000000..2e5bef7 --- /dev/null +++ b/Laravel/app/Models/PEISLog.php @@ -0,0 +1,11 @@ +