-- 通用操作日志表(记录所有用户在所有模块的操作) CREATE TABLE `sys_operation_log` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志ID', `tenant_id` int(11) NOT NULL DEFAULT 0 COMMENT '租户ID(0表示平台操作,>0表示租户操作)', `user_id` int(11) NOT NULL COMMENT '操作用户ID', `username` varchar(50) NOT NULL COMMENT '操作用户名', `module` varchar(100) NOT NULL COMMENT '操作模块(user/tenant/dict/role等)', `resource_type` varchar(50) NOT NULL COMMENT '资源类型(如User/Tenant/Dict等)', `resource_id` int(11) NULL COMMENT '资源ID(如被操作的用户ID、租户ID等)', `operation` varchar(20) NOT NULL COMMENT '操作类型(CREATE/UPDATE/DELETE/LOGIN/LOGOUT/VIEW等)', `description` varchar(500) NULL COMMENT '操作描述', `old_value` longtext NULL COMMENT '修改前的值(JSON格式,用于UPDATE操作)', `new_value` longtext NULL COMMENT '修改后的值(JSON格式,用于UPDATE操作)', `ip_address` varchar(50) NULL COMMENT 'IP地址', `user_agent` varchar(500) NULL COMMENT '用户代理信息', `request_method` varchar(10) NULL COMMENT '请求方法(GET/POST/PUT/DELETE等)', `request_url` varchar(500) NULL COMMENT '请求URL', `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1-成功,0-失败', `error_message` text NULL COMMENT '错误信息', `duration` int(11) NULL COMMENT '执行时长(毫秒)', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间', PRIMARY KEY (`id`), KEY `idx_tenant_id` (`tenant_id`), KEY `idx_user_id` (`user_id`), KEY `idx_module` (`module`), KEY `idx_resource_type` (`resource_type`), KEY `idx_resource_id` (`resource_id`), KEY `idx_operation` (`operation`), KEY `idx_create_time` (`create_time`), KEY `idx_tenant_user_time` (`tenant_id`, `user_id`, `create_time`), KEY `idx_tenant_module_time` (`tenant_id`, `module`, `create_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统操作日志表';