-- 待办事项中心任务表 -- 说明:active_idempotent_key 仅在非终态任务中保留,终态时置空, -- 用于同时满足“有效任务唯一”和“终态后允许重新创建”的要求。 CREATE TABLE `sys_todo_task` ( `todo_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '待办任务主键', `task_type` varchar(64) NOT NULL COMMENT '待办类型编码', `title` varchar(200) NOT NULL COMMENT '待办标题', `summary` varchar(500) DEFAULT NULL COMMENT '待办摘要', `content` text COMMENT '待办详细内容(纯文本)', `business_type` varchar(64) NOT NULL COMMENT '业务类型编码', `business_id` varchar(64) NOT NULL COMMENT '业务主键或单号', `route_name` varchar(100) NOT NULL COMMENT '前端白名单路由名称', `route_params` varchar(1000) DEFAULT NULL COMMENT '前端路由参数 JSON', `assignee_user_id` bigint(20) NOT NULL COMMENT '接收用户 ID', `assignee_merchant_id` varchar(64) DEFAULT NULL COMMENT '接收运营商 ID', `priority` tinyint(3) NOT NULL DEFAULT '1' COMMENT '优先级(1普通 2重要 3紧急)', `task_status` varchar(20) NOT NULL DEFAULT 'PENDING' COMMENT '任务状态(PENDING PROCESSING COMPLETED CANCELLED EXPIRED)', `read_status` char(1) NOT NULL DEFAULT '0' COMMENT '阅读状态(0未读 1已读)', `read_time` datetime DEFAULT NULL COMMENT '阅读时间', `due_time` datetime DEFAULT NULL COMMENT '截止时间', `completed_time` datetime DEFAULT NULL COMMENT '完成时间', `completed_by` bigint(20) DEFAULT NULL COMMENT '完成人用户 ID', `cancel_reason` varchar(500) DEFAULT NULL COMMENT '取消原因', `idempotent_key` varchar(200) NOT NULL COMMENT '业务原始幂等键', `active_idempotent_key` varchar(200) DEFAULT NULL COMMENT '有效任务幂等键,终态置空', `create_by` varchar(64) DEFAULT NULL COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_by` varchar(64) DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `del_flag` char(1) NOT NULL DEFAULT '0' COMMENT '逻辑删除(0正常 2删除)', PRIMARY KEY (`todo_id`) USING BTREE, UNIQUE KEY `uk_todo_active_idempotent` (`active_idempotent_key`) USING BTREE, KEY `idx_todo_user_status` (`assignee_user_id`, `task_status`, `read_status`, `priority`, `create_time`) USING BTREE, KEY `idx_todo_merchant_status` (`assignee_merchant_id`, `task_status`, `create_time`) USING BTREE, KEY `idx_todo_business` (`business_type`, `business_id`) USING BTREE, KEY `idx_todo_history_cleanup` (`del_flag`, `task_status`, `completed_time`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='用户待办任务表';