-- 02158 admin_action_log —— 管理端写操作审计(PR C 起要求) -- -- 每一条 admin CRUD/rules 更新都在同事务内插入一行审计流水,方便后续追责 -- 与合规审查。actor_user_id 是操作者的 user.id;action 是操作动作 -- (lottery.activity.create / lottery.prize.update / lottery.rules.put / ...); -- target_ids 是被操作对象的主键数组(JSON);request_hash 是请求 body 的 sha1 -- 摘要(对同一批次多次写入去重);ip/user_agent 从上下文取。 CREATE TABLE IF NOT EXISTS `admin_action_log` ( `id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, `actor_user_id` BIGINT UNSIGNED NOT NULL COMMENT '操作者 user.id', `action` VARCHAR(64) NOT NULL COMMENT '动作 code(点分层级)', `target_ids` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '被操作对象 ID 逗号分隔或 JSON 数组', `request_hash` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '请求 body sha1 摘要', `ip` VARCHAR(45) NOT NULL DEFAULT '' COMMENT '操作者 IP', `user_agent` VARCHAR(255) NOT NULL DEFAULT '' COMMENT '操作者 UA', `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间', PRIMARY KEY (`id`), KEY `idx_actor_time` (`actor_user_id`, `created_at`), KEY `idx_action_time` (`action`, `created_at`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='后台写操作审计流水';