-- ============================================ -- 白名单订单表 - 创建表 -- ============================================ -- 说明:创建 whitelist_order 和 whitelist_order_item 表,用于白名单订单管理 -- 执行时间:2024-XX-XX -- ============================================ -- 1. 创建白名单订单表 CREATE TABLE `whitelist_order` ( `id` CHAR(36) NOT NULL COMMENT 'UUID主键', `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 '版本号(乐观锁)', /* 业务字段 */ `order_no` varchar(50) NOT NULL COMMENT '订单号(唯一)', `user_id` CHAR(36) NOT NULL COMMENT '用户ID(代理的user_id)', `id_card` varchar(50) NOT NULL COMMENT '身份证号(查询对象标识)', `total_amount` decimal(10,2) NOT NULL COMMENT '总金额(单位:元)', `status` tinyint NOT NULL DEFAULT 1 COMMENT '订单状态:1=待支付,2=已支付,3=已取消', `payment_method` varchar(20) DEFAULT NULL COMMENT '支付方式:wechat, alipay, appleiap等', `payment_platform` varchar(20) DEFAULT NULL COMMENT '支付平台:alipay, wechat, appleiap等', `platform_order_id` varchar(100) DEFAULT NULL COMMENT '支付平台订单号(第三方平台的订单号)', `pay_time` datetime DEFAULT NULL COMMENT '支付时间', PRIMARY KEY (`id`), UNIQUE KEY `uk_order_no` (`order_no`) COMMENT '订单号唯一索引', KEY `idx_user_id` (`user_id`) COMMENT '优化按用户查询', KEY `idx_id_card` (`id_card`) COMMENT '优化按身份证号查询', KEY `idx_status` (`status`) COMMENT '优化按状态查询', KEY `idx_create_time` (`create_time`) COMMENT '优化按创建时间查询', KEY `idx_platform_order_id` (`platform_order_id`) COMMENT '优化按支付平台订单号查询' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='白名单订单表'; -- 2. 创建白名单订单明细表 CREATE TABLE `whitelist_order_item` ( `id` CHAR(36) NOT NULL COMMENT 'UUID主键', `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 '版本号(乐观锁)', /* 业务字段 */ `order_id` CHAR(36) NOT NULL COMMENT '订单ID(关联whitelist_order.id)', `feature_id` CHAR(36) NOT NULL COMMENT 'Feature的UUID', `feature_api_id` varchar(100) NOT NULL COMMENT 'Feature的API标识(冗余)', `feature_name` varchar(200) NOT NULL COMMENT 'Feature的名称(冗余)', `price` decimal(10,2) NOT NULL COMMENT '单价(单位:元)', PRIMARY KEY (`id`), KEY `idx_order_id` (`order_id`) COMMENT '优化按订单查询', KEY `idx_feature_id` (`feature_id`) COMMENT '优化按feature查询' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='白名单订单明细表'; -- ============================================ -- 说明: -- 1. whitelist_order 记录白名单订单主信息 -- 2. whitelist_order_item 记录订单明细(每个feature一条记录) -- - 如果订单只包含一个feature,可以考虑去掉明细表,将feature信息直接放在主表 -- - 如果订单可能包含多个feature,建议保留明细表,便于记录每个feature的单价和名称 -- 3. 订单状态:1=待支付,2=已支付,3=已取消 -- 4. 支付成功后,会创建对应的 user_feature_whitelist 记录 -- 5. payment_method: 支付方式(wechat, alipay, appleiap等) -- 6. payment_platform: 支付平台(alipay, wechat, appleiap等) -- 7. platform_order_id: 支付平台的订单号(第三方平台的订单号) -- ============================================