Files
ycc-proxy-server/deploy/sql/complaint_system_migration.sql

173 lines
10 KiB
MySQL
Raw Normal View History

2026-01-12 16:43:08 +08:00
-- ============================================
-- 投诉系统表结构 - 统一创建
-- ============================================
-- 说明:投诉系统统一使用 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. 字段说明:
-- - 主表统一存储:姓名、联系方式、投诉内容、通用状态
-- - 子表存储:特定类型的详细信息
-- - 订单关联:在主表中统一管理,方便查询
-- ============================================