-- ============================================ -- 投诉系统表结构 - 统一创建 -- ============================================ -- 说明:投诉系统统一使用 complaint_ 前缀 -- 执行时间:2025-XX-XX -- ============================================ -- ============================================ -- 1. 投诉主表(complaint_main) -- ============================================ -- 作用:统一管理所有类型的投诉,包含投诉人的基本信息和通用状态 CREATE TABLE `complaint_main` ( `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 '版本号(乐观锁)', /* 业务字段 */ `type` varchar(20) NOT NULL COMMENT '投诉类型:alipay=支付宝投诉,manual=主动投诉', `order_id` CHAR(36) DEFAULT NULL COMMENT '关联订单ID(如果有相关订单)', `name` varchar(100) DEFAULT NULL COMMENT '投诉人姓名', `contact` varchar(50) DEFAULT NULL COMMENT '联系方式(手机号、邮箱等)', `content` text DEFAULT NULL COMMENT '投诉内容', `status` varchar(50) DEFAULT NULL COMMENT '投诉状态(通用状态,如:pending=待处理,processing=处理中,resolved=已解决,closed=已关闭)', `status_description` varchar(200) DEFAULT NULL COMMENT '状态描述', `remark` text DEFAULT NULL COMMENT '处理备注', `handler_id` CHAR(36) DEFAULT NULL COMMENT '处理人ID(关联管理员或其他处理人员)', `handle_time` datetime DEFAULT NULL COMMENT '处理时间', PRIMARY KEY (`id`), KEY `idx_type` (`type`) COMMENT '优化按投诉类型查询', KEY `idx_order_id` (`order_id`) COMMENT '优化按订单查询', KEY `idx_status` (`status`) COMMENT '优化按状态查询', KEY `idx_name` (`name`) COMMENT '优化按姓名查询', KEY `idx_contact` (`contact`) COMMENT '优化按联系方式查询', KEY `idx_create_time` (`create_time`) COMMENT '优化按创建时间查询', KEY `idx_handler_id` (`handler_id`) COMMENT '优化按处理人查询' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='投诉主表'; -- ============================================ -- 2. 支付宝投诉表(complaint_alipay) -- ============================================ -- 作用:存储支付宝投诉的详细信息 CREATE TABLE `complaint_alipay` ( `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 '版本号(乐观锁)', /* 业务字段 */ `complaint_id` CHAR(36) NOT NULL COMMENT '关联投诉主表ID(关联complaint_main.id)', `alipay_id` bigint NOT NULL COMMENT '支付宝投诉主表的主键id(支付宝返回的id)', `task_id` varchar(100) NOT NULL COMMENT '投诉单号id(支付宝返回的task_id,用于唯一标识)', `opposite_pid` varchar(50) DEFAULT NULL COMMENT '被投诉人pid', `opposite_name` varchar(200) DEFAULT NULL COMMENT '投诉单中被投诉方的名称', `complain_amount` decimal(10,2) DEFAULT NULL COMMENT '投诉单涉及交易总金额(单位:人民币元)', `gmt_complain` datetime DEFAULT NULL COMMENT '投诉时间', `gmt_process` datetime DEFAULT NULL COMMENT '处理时间', `gmt_overdue` datetime DEFAULT NULL COMMENT '过期时间', `complain_content` text DEFAULT NULL COMMENT '用户投诉内容', `trade_no` varchar(100) DEFAULT NULL COMMENT '投诉交易单号', `status` varchar(50) DEFAULT NULL COMMENT '投诉状态(支付宝返回的状态)', `status_description` varchar(200) DEFAULT NULL COMMENT '投诉单状态枚举值描述', `process_code` varchar(50) DEFAULT NULL COMMENT '商家处理结果码', `process_message` varchar(500) DEFAULT NULL COMMENT '商家处理结果码对应描述', `process_remark` text DEFAULT NULL COMMENT '商家处理备注', `process_img_url_list` text DEFAULT NULL COMMENT '商家处理备注图片url列表(JSON数组字符串)', `gmt_risk_finish_time` datetime DEFAULT NULL COMMENT '推送时间', `complain_url` varchar(500) DEFAULT NULL COMMENT '投诉网址', `certify_info` text DEFAULT NULL COMMENT '投诉凭证图片信息(JSON数组字符串)', PRIMARY KEY (`id`), UNIQUE KEY `uk_task_id` (`task_id`) COMMENT '投诉单号唯一索引', UNIQUE KEY `uk_alipay_id` (`alipay_id`) COMMENT '支付宝id唯一索引', KEY `idx_complaint_id` (`complaint_id`) COMMENT '优化按投诉主表查询', KEY `idx_opposite_pid` (`opposite_pid`) COMMENT '优化按被投诉人查询', KEY `idx_trade_no` (`trade_no`) COMMENT '优化按交易单号查询', KEY `idx_status` (`status`) COMMENT '优化按状态查询', KEY `idx_gmt_complain` (`gmt_complain`) COMMENT '优化按投诉时间查询(用于轮询新投诉)', KEY `idx_create_time` (`create_time`) COMMENT '优化按创建时间查询' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='支付宝投诉表'; -- ============================================ -- 3. 支付宝投诉交易信息表(complaint_alipay_trade) -- ============================================ -- 作用:存储支付宝投诉涉及的交易信息(一个投诉可能涉及多个交易) CREATE TABLE `complaint_alipay_trade` ( `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 '版本号(乐观锁)', /* 业务字段 */ `complaint_id` CHAR(36) NOT NULL COMMENT '投诉主表ID(关联complaint_alipay.id)', `alipay_trade_id` bigint DEFAULT NULL COMMENT '交易信息表主键id(支付宝返回的id)', `alipay_complaint_record_id` bigint DEFAULT NULL COMMENT '投诉主表id(支付宝返回的complaint_record_id)', `trade_no` varchar(100) DEFAULT NULL COMMENT '支付宝交易单号', `out_no` varchar(100) DEFAULT NULL COMMENT '商家订单号', `gmt_trade` datetime DEFAULT NULL COMMENT '交易时间', `gmt_refund` datetime DEFAULT NULL COMMENT '退款时间', `status` varchar(50) DEFAULT NULL COMMENT '交易投诉状态', `status_description` varchar(200) DEFAULT NULL COMMENT '交易投诉状态描述', `amount` decimal(10,2) DEFAULT NULL COMMENT '交易单金额(单位:人民币元)', PRIMARY KEY (`id`), KEY `idx_complaint_id` (`complaint_id`) COMMENT '优化按投诉主表查询', KEY `idx_trade_no` (`trade_no`) COMMENT '优化按交易单号查询', KEY `idx_out_no` (`out_no`) COMMENT '优化按商家订单号查询', KEY `idx_status` (`status`) COMMENT '优化按状态查询' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='支付宝投诉交易信息表'; -- ============================================ -- 4. 主动投诉表(complaint_manual) -- ============================================ -- 作用:存储主动投诉的详细信息 CREATE TABLE `complaint_manual` ( `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 '版本号(乐观锁)', /* 业务字段 */ `complaint_id` CHAR(36) NOT NULL COMMENT '关联投诉主表ID(关联complaint_main.id)', `user_id` CHAR(36) DEFAULT NULL COMMENT '关联用户ID(如果有相关用户)', `subject` varchar(200) DEFAULT NULL COMMENT '投诉主题', `priority` varchar(20) DEFAULT NULL COMMENT '优先级:low=低,medium=中,high=高,urgent=紧急', `source` varchar(50) DEFAULT NULL COMMENT '投诉来源:web=网站,phone=电话,email=邮件,other=其他', `attachment_urls` text DEFAULT NULL COMMENT '附件URL列表(JSON数组字符串)', PRIMARY KEY (`id`), KEY `idx_complaint_id` (`complaint_id`) COMMENT '优化按投诉主表查询', KEY `idx_user_id` (`user_id`) COMMENT '优化按用户查询', KEY `idx_priority` (`priority`) COMMENT '优化按优先级查询', KEY `idx_source` (`source`) COMMENT '优化按来源查询' ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='主动投诉表'; -- ============================================ -- 表关系说明 -- ============================================ -- 1. complaint_main (投诉主表) -- ├── 包含:投诉类型、订单ID、姓名、联系方式、投诉内容、状态等通用信息 -- │ -- ├── type: alipay -- │ └── complaint_alipay (支付宝投诉表) -- │ └── complaint_alipay_trade (支付宝投诉交易信息表) -- │ -- └── type: manual -- └── complaint_manual (主动投诉表) -- -- 2. 关联关系: -- - complaint_main.order_id -> order.id (订单关联) -- - complaint_alipay.complaint_id -> complaint_main.id -- - complaint_alipay_trade.complaint_id -> complaint_alipay.id -- - complaint_manual.complaint_id -> complaint_main.id -- - complaint_manual.user_id -> user.id (用户关联) -- -- 3. 字段说明: -- - 主表统一存储:姓名、联系方式、投诉内容、通用状态 -- - 子表存储:特定类型的详细信息 -- - 订单关联:在主表中统一管理,方便查询 -- ============================================