-- ============================================ -- 代理佣金冻结任务表 -- 说明:用于记录需要解冻的佣金冻结任务,保证异步任务的一致性和持久化 -- ============================================ CREATE TABLE `agent_freeze_task` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', `agent_id` bigint NOT NULL COMMENT '代理ID', `order_id` bigint NOT NULL COMMENT '订单ID', `commission_id` bigint NOT NULL COMMENT '佣金记录ID', `freeze_amount` decimal(10, 2) NOT NULL COMMENT '冻结金额', `order_price` decimal(10, 2) NOT NULL COMMENT '订单单价', `freeze_ratio` decimal(5, 4) NOT NULL DEFAULT 0.1000 COMMENT '冻结比例(例如:0.1000表示10%)', `status` tinyint NOT NULL DEFAULT 1 COMMENT '状态:1=待解冻,2=已解冻,3=已取消', `freeze_time` datetime NOT NULL COMMENT '冻结时间', `unfreeze_time` datetime NOT NULL COMMENT '解冻时间(冻结时间+1个月)', `actual_unfreeze_time` datetime DEFAULT NULL COMMENT '实际解冻时间', `remark` varchar(255) DEFAULT NULL COMMENT '备注', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` datetime DEFAULT NULL COMMENT '删除时间', `del_state` tinyint NOT NULL DEFAULT 0 COMMENT '删除状态:0=未删除,1=已删除', `version` bigint NOT NULL DEFAULT 0 COMMENT '版本号(乐观锁)', PRIMARY KEY (`id`), KEY `idx_agent_id` (`agent_id`), KEY `idx_order_id` (`order_id`), KEY `idx_commission_id` (`commission_id`), KEY `idx_status` (`status`), KEY `idx_unfreeze_time` (`unfreeze_time`), KEY `idx_agent_status` (`agent_id`, `status`), KEY `idx_create_time` (`create_time`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '代理佣金冻结任务表';