Files
ycc-proxy-server/deploy/sql/complaint_system_migration.sql
2026-01-25 19:07:24 +08:00

172 lines
10 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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