CallApiLog.php
2.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
namespace app\api\behavior;
use think\Db;
use think\Request;
class CallApiLog
{
public function run(&$params)
{
// 行为逻辑
$reqUri = trim(request()->path(), '/');
$res = preg_match('/^(api\/cloudapi\/)/', $reqUri);
if ($res){
$apiModel = new \app\admin\model\cloudapi\Api();
$api = $apiModel->where(['api_uri' => ['LIKE',"%" . trim($reqUri,'/')]])->find();
if (!empty($api)){
$responseData = $params->getData();
if ($responseData['code'] == 1){
$status = 1;
}else{// todo 可根据具体需求决定哪些日志需要记录
$status = 2;
}
$reqParams = Request::instance()->param();
if (isset($reqParams['device_code']) && !empty($reqParams['device_code'])){
$device_code = $reqParams['device_code'];
}elseif(isset($reqParams['equipment_id']) && !empty($reqParams['equipment_id'])){
$device_code = $reqParams['equipment_id'];
}elseif(isset($reqParams['number']) && !empty($reqParams['number'])){
$device_code = $reqParams['number'];
}
if (!empty($device_code)){
$device = Db::name('reservoir_equipment')->field('deviceId,type,reservoir_id')->where(['deviceId' => $device_code])->find();
if (!empty($device)){
$logData = [
'api_uri' => '/' . $reqUri,
'api_type' => $api['api_type'],
'reservoir_id' => $device['reservoir_id'],
'device_code' => $device['deviceId'],
'device_type' => $device['type'],
'createtime' => time(),
'status' => $status,
'error_code' => $responseData['code'],
'error_msg' => $responseData['msg']
];
Db::name('cloudapi_log')->insert($logData);
}
}
}
}
}
}