successful()) { }else{ Log::info("短信发送失败"); } } //根据生日 获取年龄 public static function GetAge($birthday) { $dob = new DateTime($birthday); $now = new DateTime(); // 计算两个日期之间的差值 $interval = $now->diff($dob); // 返回年龄 return $interval->y; } //生成随机字符串 public static function RandomString($length = 6) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $charactersLength = strlen($characters); $randomString = ''; for ($i = 0; $i < $length; $i++) { // 使用random_int确保随机性 $randomString .= $characters[random_int(0, $charactersLength - 1)]; } return $randomString; } //请求三方接口日志记录 public static $request; public static function Post($url,$data,$mark,$big_title) { self::RequestLog($url, $data, $mark, $big_title); $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 $res; } else { $status = $response->status(); // 获取响应体作为字符串 $body = $response->body(); self::$request->response_data = $body; self::$request->save(); 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_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', 2000); $table->timestamps(); }); } self::$request = new \App\Models\PEISLog(); self::$request->setTable($table_name); } }