fix
This commit is contained in:
40
deploy/sql/alipay_from_callback_migration.sql
Normal file
40
deploy/sql/alipay_from_callback_migration.sql
Normal file
@@ -0,0 +1,40 @@
|
||||
-- ============================================
|
||||
-- 支付宝from消息回调记录表 - 创建表
|
||||
-- ============================================
|
||||
-- 说明:用于记录和存储支付宝from消息回调的所有记录
|
||||
-- 执行时间:2025-XX-XX
|
||||
-- ============================================
|
||||
|
||||
CREATE TABLE `alipay_from_callback` (
|
||||
`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 '版本号(乐观锁)',
|
||||
|
||||
/* 业务字段 */
|
||||
`msg_method` varchar(100) NOT NULL COMMENT '消息类型,如:alipay.merchant.tradecomplain.changed, alipay.security.risk.complaints.merchants.notify',
|
||||
`app_id` varchar(50) NOT NULL COMMENT '应用ID',
|
||||
`notify_id` varchar(100) DEFAULT NULL COMMENT '通知ID(支付宝返回的)',
|
||||
`biz_content` text NOT NULL COMMENT '业务内容(JSON字符串,存储完整的biz_content)',
|
||||
`status` varchar(20) NOT NULL DEFAULT 'pending' COMMENT '处理状态:pending=待处理,processed=已处理,failed=处理失败',
|
||||
`error_message` text DEFAULT NULL COMMENT '错误信息(如果处理失败)',
|
||||
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_msg_method` (`msg_method`) COMMENT '优化按消息类型查询',
|
||||
KEY `idx_app_id` (`app_id`) COMMENT '优化按应用ID查询',
|
||||
KEY `idx_notify_id` (`notify_id`) COMMENT '优化按通知ID查询(用于去重)',
|
||||
KEY `idx_status` (`status`) COMMENT '优化按处理状态查询',
|
||||
KEY `idx_create_time` (`create_time`) COMMENT '优化按创建时间查询'
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='支付宝from消息回调记录表';
|
||||
|
||||
-- ============================================
|
||||
-- 说明:
|
||||
-- 1. 此表用于记录所有支付宝from消息回调的原始数据
|
||||
-- 2. biz_content 存储完整的JSON字符串,便于后续查看和调试
|
||||
-- 3. status 字段用于标记回调的处理状态
|
||||
-- 4. notify_id 可用于去重,避免重复处理同一条回调
|
||||
-- 5. 支持软删除(del_state)
|
||||
-- 6. 由于回调类型多样,不解析biz_content,统一存储JSON字符串
|
||||
-- ============================================
|
||||
173
deploy/sql/complaint_system_migration.sql
Normal file
173
deploy/sql/complaint_system_migration.sql
Normal file
@@ -0,0 +1,173 @@
|
||||
-- ============================================
|
||||
-- 投诉系统表结构 - 统一创建
|
||||
-- ============================================
|
||||
-- 说明:投诉系统统一使用 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. 字段说明:
|
||||
-- - 主表统一存储:姓名、联系方式、投诉内容、通用状态
|
||||
-- - 子表存储:特定类型的详细信息
|
||||
-- - 订单关联:在主表中统一管理,方便查询
|
||||
-- ============================================
|
||||
17
deploy/sql/feature_whitelist_price_migration.sql
Normal file
17
deploy/sql/feature_whitelist_price_migration.sql
Normal file
@@ -0,0 +1,17 @@
|
||||
-- ============================================
|
||||
-- Feature表 - 添加白名单屏蔽价格字段
|
||||
-- ============================================
|
||||
-- 说明:为 feature 表添加白名单屏蔽价格字段
|
||||
-- 执行时间:2024-XX-XX
|
||||
-- ============================================
|
||||
|
||||
-- 添加白名单屏蔽价格字段
|
||||
ALTER TABLE `feature`
|
||||
ADD COLUMN `whitelist_price` decimal(10, 2) DEFAULT 0.00 COMMENT '白名单屏蔽价格(单位:元)' AFTER `name`;
|
||||
|
||||
-- ============================================
|
||||
-- 说明:
|
||||
-- 1. whitelist_price 默认值为 0.00,表示该feature不支持白名单屏蔽
|
||||
-- 2. 如果 whitelist_price > 0,表示该feature可以加入白名单,价格为 whitelist_price
|
||||
-- 3. 后台可以在"功能管理"页面配置每个feature的屏蔽价格
|
||||
-- ============================================
|
||||
75
deploy/sql/refund_commission_cancel_migration.sql
Normal file
75
deploy/sql/refund_commission_cancel_migration.sql
Normal file
@@ -0,0 +1,75 @@
|
||||
-- 退款收回代理佣金功能 - 数据库迁移SQL
|
||||
-- 说明:此功能使用现有的 status 字段来标记撤销状态
|
||||
--
|
||||
-- 状态字段含义(根据代码和模型注释):
|
||||
-- agent_commission.status: 1=已发放,2=已冻结,3=已取消(撤销)
|
||||
-- agent_rebate.status: 1=已发放,2=已冻结,3=已取消(撤销)
|
||||
-- agent_freeze_task.status: 1=待解冻,2=已解冻,3=已取消(撤销)
|
||||
--
|
||||
-- 注意:如果数据库中这三个表的 status 字段含义不同(例如:1=待解冻,2=已解冻,3=已取消),
|
||||
-- 需要确认是否有冲突。当前实现使用 status=3 表示已撤销。
|
||||
-- 如果 status=3 与其他业务冲突,请使用方案2添加新字段。
|
||||
|
||||
-- 检查字段是否存在(可选,用于验证)
|
||||
SELECT
|
||||
COLUMN_NAME,
|
||||
COLUMN_TYPE,
|
||||
COLUMN_COMMENT
|
||||
FROM INFORMATION_SCHEMA.COLUMNS
|
||||
WHERE
|
||||
TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME IN (
|
||||
'agent_commission',
|
||||
'agent_rebate',
|
||||
'agent_freeze_task'
|
||||
)
|
||||
AND COLUMN_NAME = 'status';
|
||||
|
||||
-- ========== 方案1:使用现有 status 字段(当前实现,推荐) ==========
|
||||
-- 如果 status=3 的含义是"已取消",可以直接使用,无需修改数据库
|
||||
-- 代码中已实现:撤销时将 status 设置为 3
|
||||
-- 注意:需要确认数据库中这三个表的 status 字段实际含义是否与代码一致
|
||||
|
||||
-- ========== 方案2:添加新字段(如果 status=3 与其他业务冲突) ==========
|
||||
-- 如果 status 字段的含义不同(例如:1=待解冻,2=已解冻,3=已取消,但3不是用于撤销),
|
||||
-- 可以使用以下SQL添加新字段:
|
||||
--
|
||||
-- ALTER TABLE `agent_commission`
|
||||
-- ADD COLUMN `cancel_status` TINYINT DEFAULT 0 COMMENT '撤销状态:0=正常,1=已撤销' AFTER `status`;
|
||||
--
|
||||
-- ALTER TABLE `agent_rebate`
|
||||
-- ADD COLUMN `cancel_status` TINYINT DEFAULT 0 COMMENT '撤销状态:0=正常,1=已撤销' AFTER `status`;
|
||||
--
|
||||
-- ALTER TABLE `agent_freeze_task`
|
||||
-- ADD COLUMN `cancel_status` TINYINT DEFAULT 0 COMMENT '撤销状态:0=正常,1=已撤销' AFTER `status`;
|
||||
--
|
||||
-- 如果使用方案2,需要修改代码:
|
||||
-- 1. 在 CancelAgentCommission 方法中,使用 cancel_status 字段而不是 status 字段
|
||||
-- 2. 查询时使用 cancel_status = 1 来筛选已撤销的记录
|
||||
|
||||
-- 当前实现不需要修改数据库结构,使用现有的 status 字段即可
|
||||
-- 如果后续需要查询已撤销的记录,可以使用:
|
||||
SELECT * FROM agent_commission WHERE status = 3 AND del_state = 0;
|
||||
|
||||
SELECT * FROM agent_rebate WHERE status = 3 AND del_state = 0;
|
||||
|
||||
SELECT * FROM agent_freeze_task WHERE status = 3 AND del_state = 0;
|
||||
|
||||
-- 如果需要添加索引优化查询(可选):
|
||||
CREATE INDEX `idx_order_id_status` ON `agent_commission` (
|
||||
`order_id`,
|
||||
`status`,
|
||||
`del_state`
|
||||
);
|
||||
|
||||
CREATE INDEX `idx_order_id_status` ON `agent_rebate` (
|
||||
`order_id`,
|
||||
`status`,
|
||||
`del_state`
|
||||
);
|
||||
|
||||
CREATE INDEX `idx_order_id_status` ON `agent_freeze_task` (
|
||||
`order_id`,
|
||||
`status`,
|
||||
`del_state`
|
||||
);
|
||||
44
deploy/sql/user_feature_whitelist_migration.sql
Normal file
44
deploy/sql/user_feature_whitelist_migration.sql
Normal file
@@ -0,0 +1,44 @@
|
||||
-- ============================================
|
||||
-- 用户模块白名单表 - 创建表
|
||||
-- ============================================
|
||||
-- 说明:创建 user_feature_whitelist 表,用于记录用户身份证号对应的feature屏蔽白名单
|
||||
-- 执行时间:2024-XX-XX
|
||||
-- ============================================
|
||||
|
||||
CREATE TABLE `user_feature_whitelist` (
|
||||
`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 '版本号(乐观锁)',
|
||||
|
||||
/* 业务字段 */
|
||||
|
||||
`id_card` varchar(50) NOT NULL COMMENT '身份证号(查询对象标识)',
|
||||
`feature_id` CHAR(36) NOT NULL COMMENT 'Feature的UUID',
|
||||
`feature_api_id` varchar(100) NOT NULL COMMENT 'Feature的API标识(冗余字段,方便查询)',
|
||||
`user_id` CHAR(36) NOT NULL COMMENT '操作用户ID(代理的user_id,以后可扩展为普通用户)',
|
||||
`order_id` CHAR(36) DEFAULT NULL COMMENT '关联的查询订单ID(可选,记录来源)',
|
||||
`whitelist_order_id` CHAR(36) DEFAULT NULL COMMENT '关联的白名单订单ID(用于付费)',
|
||||
`amount` decimal(10,2) NOT NULL COMMENT '费用(单位:元)',
|
||||
`status` tinyint NOT NULL DEFAULT 1 COMMENT '状态:1=生效,2=已失效',
|
||||
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_id_card_feature_id` (`id_card`, `feature_id`, `del_state`) COMMENT '身份证号和feature_id联合唯一索引',
|
||||
UNIQUE KEY `uk_id_card_feature_api_id` (`id_card`, `feature_api_id`, `del_state`) COMMENT '身份证号和feature_api_id联合唯一索引',
|
||||
UNIQUE KEY `uk_whitelist_order_id` (`whitelist_order_id`) COMMENT '白名单订单ID唯一索引',
|
||||
KEY `idx_id_card` (`id_card`) COMMENT '优化按身份证号查询',
|
||||
KEY `idx_feature_id` (`feature_id`) COMMENT '优化按feature查询',
|
||||
KEY `idx_feature_api_id` (`feature_api_id`) COMMENT '优化按API标识查询',
|
||||
KEY `idx_user_id` (`user_id`) COMMENT '优化按用户查询',
|
||||
KEY `idx_status` (`status`) COMMENT '优化按状态查询'
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户模块白名单表';
|
||||
|
||||
-- ============================================
|
||||
-- 说明:
|
||||
-- 1. 以身份证号(id_card)+ feature_id 为单位,记录白名单屏蔽关系
|
||||
-- 2. user_id 使用操作用户的ID(代理的user_id),便于以后扩展为普通用户操作
|
||||
-- 3. status=1表示生效,status=2表示已失效(可手动失效或系统失效)
|
||||
-- 4. 一旦生效,该身份证号+feature组合永久屏蔽,除非手动失效
|
||||
-- ============================================
|
||||
70
deploy/sql/whitelist_order_migration.sql
Normal file
70
deploy/sql/whitelist_order_migration.sql
Normal file
@@ -0,0 +1,70 @@
|
||||
-- ============================================
|
||||
-- 白名单订单表 - 创建表
|
||||
-- ============================================
|
||||
-- 说明:创建 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: 支付平台的订单号(第三方平台的订单号)
|
||||
-- ============================================
|
||||
26
deploy/sql/withdrawal_alipay_quota_migration.sql
Normal file
26
deploy/sql/withdrawal_alipay_quota_migration.sql
Normal file
@@ -0,0 +1,26 @@
|
||||
-- ============================================
|
||||
-- 支付宝月度提现额度配置
|
||||
-- ============================================
|
||||
-- 说明:为代理系统增加支付宝每月提现额度配置,默认 800 元
|
||||
-- 执行时间:2026-01-06
|
||||
-- ============================================
|
||||
|
||||
INSERT INTO
|
||||
`agent_config` (
|
||||
`id`,
|
||||
`config_key`,
|
||||
`config_value`,
|
||||
`config_type`,
|
||||
`description`
|
||||
)
|
||||
VALUES (
|
||||
'f47ac10b-58cc-4372-a567-0e02b2c3d479',
|
||||
'alipay_month_quota',
|
||||
'800.00',
|
||||
'withdrawal',
|
||||
'支付宝每月提现额度(单位:元)'
|
||||
)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
`config_value` = VALUES(`config_value`),
|
||||
`config_type` = VALUES(`config_type`),
|
||||
`description` = VALUES(`description`);
|
||||
34
deploy/sql/withdrawal_bank_card_migration.sql
Normal file
34
deploy/sql/withdrawal_bank_card_migration.sql
Normal file
@@ -0,0 +1,34 @@
|
||||
-- ============================================
|
||||
-- 代理提现表 - 添加银行卡提现支持
|
||||
-- ============================================
|
||||
-- 说明:为 agent_withdrawal 表添加提现方式字段和银行卡相关字段
|
||||
-- 执行时间:2024-XX-XX
|
||||
-- ============================================
|
||||
|
||||
-- 1. 添加提现方式字段(1=支付宝,2=银行卡)
|
||||
ALTER TABLE `agent_withdrawal`
|
||||
ADD COLUMN `withdrawal_type` tinyint NOT NULL DEFAULT 1 COMMENT '提现方式:1=支付宝,2=银行卡' AFTER `agent_id`;
|
||||
|
||||
-- 2. 添加银行卡号字段(银行卡提现时使用)
|
||||
ALTER TABLE `agent_withdrawal`
|
||||
ADD COLUMN `bank_card_no` varchar(100) DEFAULT NULL COMMENT '银行卡号(银行卡提现时使用)' AFTER `payee_account`;
|
||||
|
||||
-- 3. 添加开户行名称字段(银行卡提现时使用)
|
||||
ALTER TABLE `agent_withdrawal`
|
||||
ADD COLUMN `bank_name` varchar(100) DEFAULT NULL COMMENT '开户行名称(银行卡提现时使用)' AFTER `bank_card_no`;
|
||||
|
||||
-- 4. 为提现方式字段添加索引(用于按提现方式查询)
|
||||
ALTER TABLE `agent_withdrawal`
|
||||
ADD INDEX `idx_withdrawal_type` (`withdrawal_type`);
|
||||
|
||||
-- 5. 为提现方式和状态添加复合索引(用于后台审核查询)
|
||||
ALTER TABLE `agent_withdrawal`
|
||||
ADD INDEX `idx_type_status` (`withdrawal_type`, `status`);
|
||||
|
||||
-- ============================================
|
||||
-- 说明:
|
||||
-- 1. withdrawal_type 默认值为 1(支付宝),兼容历史数据
|
||||
-- 2. bank_card_no 和 bank_name 为可选字段,支付宝提现时为空
|
||||
-- 3. 对于支付宝提现,payee_account 存储支付宝账号
|
||||
-- 4. 对于银行卡提现,payee_account 可以存储银行卡号(与 bank_card_no 保持一致),或留空
|
||||
-- ============================================
|
||||
Reference in New Issue
Block a user