172 lines
10 KiB
SQL
172 lines
10 KiB
SQL
-- ============================================
|
||
-- 投诉系统表结构 - 统一创建
|
||
-- ============================================
|
||
-- 说明:投诉系统统一使用 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 '处理时间',
|
||
`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. 字段说明:
|
||
-- - 主表统一存储:姓名、联系方式、投诉内容、通用状态
|
||
-- - 子表存储:特定类型的详细信息
|
||
-- - 订单关联:在主表中统一管理,方便查询
|
||
-- ============================================ |