id, user_id, username, module, operation, method, request_url,
request_method, request_params, response_data, ip_address, ip_source,
browser, os, status, error_message, execute_time, create_time
INNER JOIN tb_sys_user u ON ol.user_id = u.id AND u.deleted = 0
INNER JOIN tb_sys_user_dept_role udr ON u.id = udr.user_id AND udr.deleted = 0
INNER JOIN tb_sys_dept d ON udr.dept_id = d.dept_id AND d.deleted = 0
WHERE (
-- superadmin 可以查看所有操作日志
EXISTS (
SELECT 1 FROM (
SELECT #{currentRole.deptID} AS dept_id, #{currentRole.roleID} AS role_id
) admin_check
WHERE admin_check.dept_id = 'root_department'
AND admin_check.role_id = 'superadmin'
)
-- 普通用户按部门路径过滤(本部门及子部门)
OR EXISTS (
SELECT 1 FROM (
SELECT #{currentRole.deptPath} AS user_dept_path
) user_roles
WHERE d.dept_path LIKE CONCAT(user_roles.user_dept_path, '%')
)
)
AND ol.user_id = #{operationLog.userID}
AND ol.username LIKE CONCAT('%', #{operationLog.username}, '%')
AND ol.module LIKE CONCAT('%', #{operationLog.module}, '%')
AND ol.operation = #{operationLog.operation}
AND ol.status = #{operationLog.status}
AND ol.ip_address = #{operationLog.ipAddress}
AND ol.request_url LIKE CONCAT('%', #{operationLog.requestUrl}, '%')
INSERT INTO tb_sys_operation_log (
id, user_id, username, module, operation, method,
request_url, request_method, request_params, response_data,
ip_address, ip_source, browser, os, status,
error_message, execute_time, create_time
) VALUES (
#{id}, #{userID}, #{username}, #{module}, #{operation}, #{method},
#{requestUrl}, #{requestMethod}, #{requestParams}, #{responseData},
#{ipAddress}, #{ipSource}, #{browser}, #{os}, #{status},
#{errorMessage}, #{executeTime}, #{createTime, jdbcType=TIMESTAMP}
)