refactor: 优化日志分页查询性能
This commit is contained in:
@@ -4,6 +4,7 @@ declare (strict_types = 1);
|
|||||||
namespace app\admin\controller\v1;
|
namespace app\admin\controller\v1;
|
||||||
|
|
||||||
use app\admin\model\v1\SysOperateLog;
|
use app\admin\model\v1\SysOperateLog;
|
||||||
|
use app\admin\model\v1\SysUserModel;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 操作日志控制器
|
* 操作日志控制器
|
||||||
@@ -21,11 +22,15 @@ class OperateLog
|
|||||||
'size/d'
|
'size/d'
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$logs = SysOperateLog::hasWhere('user', function($query) use($param) {
|
$logs = SysOperateLog::field([
|
||||||
|
'SysOperateLog.*',
|
||||||
|
'SysUserModel.username'
|
||||||
|
])
|
||||||
|
->hasWhere('user', function($query) use($param) {
|
||||||
if (!empty($param['operator'])) {
|
if (!empty($param['operator'])) {
|
||||||
$query->where('username', 'like', "{$param['operator']}");
|
$query->where('username', 'like', "%{$param['operator']}%");
|
||||||
}
|
}
|
||||||
$query->field(['id', 'username']);
|
$query->withTrashed()->field(['id', 'username']);
|
||||||
})
|
})
|
||||||
->withSearch(['title', 'created_at'], [
|
->withSearch(['title', 'created_at'], [
|
||||||
'title' => $param['title'] ?? null,
|
'title' => $param['title'] ?? null,
|
||||||
@@ -36,7 +41,6 @@ class OperateLog
|
|||||||
'list_rows' => $param['size'] ?? 10,
|
'list_rows' => $param['size'] ?? 10,
|
||||||
'page' => $param['page'] ?? 1,
|
'page' => $param['page'] ?? 1,
|
||||||
])
|
])
|
||||||
->bindAttr('user', ['username'])
|
|
||||||
->hidden(['user_id', 'user']);
|
->hidden(['user_id', 'user']);
|
||||||
|
|
||||||
return success('获取成功', $logs);
|
return success('获取成功', $logs);
|
||||||
|
|||||||
Reference in New Issue
Block a user