refactor: 优化日志分页查询性能

This commit is contained in:
2025-06-06 10:29:53 +08:00
parent 4bb82ceaf3
commit c772d5598a

View File

@@ -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);