where('del', 2)->first(); if (!$hospital) Yo::error_echo(100000, ['机构/医院']); $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)) { Yo::error_exit(Lu::exit([ 'code' => '900000', 'message' => $url_code . '获取失败', 'data' => [ 'url' => $url, 'data' => $data, 'res' => $res_string ] ])); } $res = json_decode($res_string, true); if ($print) { Yo::error_exit(Lu::exit([ 'code' => '900000', 'message' => 'PEIS接口调试打印', 'data' => [ 'url' => $url, 'data' => $data, 'res' => $res ] ])); } if ($res['ResultCode'] == -1) Yo::error_exit(Lu::exit([ 'code' => $res['ResultCode'], 'message' => $res['ResultContent'], 'data' => [], ])); if ($res['ResultCode'] != 0) Yo::error_exit(Lu::exit([ 'code' => $res['ResultCode'], 'message' => $res['ResultContent'], 'data' => [], ])); 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'; } } $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); } }