增加日志功能

main
yanzai 7 months ago
parent b08facae9b
commit e95d01516c

@ -3,6 +3,7 @@
namespace App\Http\Controllers\API\H5;
use App\Http\Controllers\Controller;
use App\Services\SanFangLogService;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
@ -11,23 +12,26 @@ class FenZhenController extends Controller
public function GetTiJianLine(){
$url="https://ccty-ct.sixinyun.com/h5/tjline.php";
$id_number = request('id_number');
$nonce=mt_rand(1000, 9999);
$data=[
"key"=>"E0934FEF-EF49-41CF-9548-3A7BE2B5A4C7",
"id_number"=>$id_number
"id_number"=>$id_number,
"nonce"=>$nonce
];
$response = Http::post($url,$data);
if ($response->successful()) {
$res = $response->json();
//$response = Http::post($url,$data);
$service= SanFangLogService::Post($url,$data,'分诊队列'.$nonce,'分诊');
if ($service['status']===true) {
$res = $service['data'];
if($res['code']==200 and $res['data']['info']['id']<>0){
if(isset( $res['data']['info']['birthday'])){
$res['data']['info']['age']=\App\Lib\Tools::GetAge( $res['data']['info']['birthday']);
}
return \Yz::Return(true,"查成功",$res['data']);
return \Yz::Return(true,"查成功",$res['data']);
}else{
return \Yz::echoError1("未查询到该用户队列信息");
}
}else{
return \Yz::echoError1("查询失败");
return \Yz::echoError1("查询失败[".$nonce."]");
}
}
}

@ -0,0 +1,11 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class PEISLog extends Model
{
use HasFactory;
}

@ -0,0 +1,75 @@
<?php
namespace App\Services;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Http\Exceptions\HttpResponseException;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Http;
use Illuminate\Support\Facades\Schema;
class SanFangLogService
{
public static $request;
public static function Post($url,$data,$mark,$big_mark)
{
self::RequestLog($url, $data, $mark, $big_mark);
$response = Http::post($url,$data);
if ($response->successful()) {
$res = $response->json();
$res_string=json_encode($res, JSON_UNESCAPED_UNICODE);
$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();
return ['status'=>true,'data'=>$res];
} else {
$status = $response->status();
// 获取响应体作为字符串
$body = $response->body();
self::$request->response_data = $body;
self::$request->save();
return ['status'=>$status,'data'=>$body];
// throw new HttpResponseException(\Yz::echoError1("调用".$mark."接口失败:" . $status . "body:" . $body));
}
}
public static function RequestLog($url, $post_data, $mark, $code = 0)
{
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_sanfang_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', 2000);
$table->timestamps();
});
}
self::$request = new \App\Models\PEISLog();
self::$request->setTable($table_name);
}
}
Loading…
Cancel
Save