165 lines
4.9 KiB
SQL
165 lines
4.9 KiB
SQL
-- ============================================================
|
||
-- 代理系统简化迁移脚本
|
||
-- 日期: 2025-01-XX
|
||
-- 说明: 移除代理邀请、团队关系、提现功能,简化为纯推广模式
|
||
-- ============================================================
|
||
|
||
-- 注意:执行前请备份数据库!
|
||
|
||
-- ============================================================
|
||
-- 第一部分:删除不需要的字段
|
||
-- ============================================================
|
||
|
||
-- 1. agent 表 - 删除等级、上级代理、邀请码相关字段
|
||
-- 注意:MySQL DROP COLUMN 不支持 IF EXISTS,如果字段不存在会报错
|
||
-- 请先检查字段是否存在再执行
|
||
ALTER TABLE `agent` DROP COLUMN `level`;
|
||
|
||
ALTER TABLE `agent` DROP COLUMN `team_leader_id`;
|
||
|
||
ALTER TABLE `agent` DROP COLUMN `invite_code_id`;
|
||
|
||
-- 注意:由于这是生产环境,暂时注释掉删除语句
|
||
-- 如确认执行,请取消注释以上语句
|
||
|
||
-- 2. agent_wallet 表 - 删除冻结余额、提现金额字段
|
||
ALTER TABLE `agent_wallet` DROP COLUMN `frozen_balance`;
|
||
|
||
ALTER TABLE `agent_wallet` DROP COLUMN `withdrawn_amount`;
|
||
|
||
-- 注意:由于这是生产环境,暂时注释掉删除语句
|
||
-- 如确认执行,请取消注释以上语句
|
||
|
||
-- ============================================================
|
||
-- 第二部分:简化佣金状态
|
||
-- ============================================================
|
||
|
||
-- 更新佣金状态:
|
||
-- 原状态:1=已发放,2=已冻结,3=已取消
|
||
-- 新状态:1=已发放,2=已取消
|
||
--
|
||
-- 将状态3(已取消)保持不变
|
||
-- 将状态2(原已冻结)改为状态1(已发放)
|
||
UPDATE `agent_commission` SET `status` = 1 WHERE `status` = 2;
|
||
|
||
-- 注意:由于这是生产环境,暂时注释掉更新语句
|
||
-- 如确认执行,请取消注释以上语句
|
||
|
||
-- ============================================================
|
||
-- 第三部分:清理不需要的表(谨慎操作!)
|
||
-- ============================================================
|
||
--
|
||
-- 以下表包含重要历史数据,暂时不删除
|
||
-- 如确认删除,请取消注释并仔细检查
|
||
--
|
||
-- 邀请码相关表
|
||
DROP TABLE IF EXISTS `agent_invite_code`;
|
||
|
||
DROP TABLE IF EXISTS `agent_invite_code_usage`;
|
||
|
||
-- 团队关系表
|
||
DROP TABLE IF EXISTS `agent_relation`;
|
||
|
||
-- 返佣相关表
|
||
DROP TABLE IF EXISTS `agent_rebate`;
|
||
|
||
-- 提现相关表
|
||
DROP TABLE IF EXISTS `agent_withdrawal`;
|
||
|
||
DROP TABLE IF EXISTS `agent_withdrawal_tax`;
|
||
|
||
-- 升级相关表
|
||
DROP TABLE IF EXISTS `agent_upgrade`;
|
||
|
||
-- 实名认证相关表
|
||
DROP TABLE IF EXISTS `agent_real_name`;
|
||
|
||
-- ============================================================
|
||
-- 第四部分:验证脚本(执行前先运行此脚本查看影响)
|
||
-- ============================================================
|
||
|
||
-- 查看 agent 表结构和数据量
|
||
SELECT
|
||
'agent' as table_name,
|
||
COUNT(*) as total_records,
|
||
COUNT(
|
||
CASE
|
||
WHEN level > 0 THEN 1
|
||
END
|
||
) as has_level,
|
||
COUNT(
|
||
CASE
|
||
WHEN team_leader_id IS NOT NULL
|
||
AND team_leader_id != '' THEN 1
|
||
END
|
||
) as has_team_leader,
|
||
COUNT(
|
||
CASE
|
||
WHEN invite_code_id IS NOT NULL
|
||
AND invite_code_id != '' THEN 1
|
||
END
|
||
) as has_invite_code
|
||
FROM `agent`
|
||
WHERE
|
||
`del_state` = 0;
|
||
|
||
-- 查看 agent_wallet 表结构和数据量
|
||
SELECT
|
||
'agent_wallet' as table_name,
|
||
COUNT(*) as total_records,
|
||
SUM(frozen_balance) as total_frozen_balance,
|
||
SUM(withdrawn_amount) as total_withdrawn_amount
|
||
FROM `agent_wallet`
|
||
WHERE
|
||
`del_state` = 0;
|
||
|
||
-- 查看 agent_commission 状态分布
|
||
SELECT status, COUNT(*) as count, SUM(amount) as total_amount
|
||
FROM `agent_commission`
|
||
WHERE
|
||
`del_state` = 0
|
||
GROUP BY
|
||
status;
|
||
|
||
-- 查看需要删除的表的数据量
|
||
SELECT 'agent_invite_code' as table_name, COUNT(*) as count
|
||
FROM `agent_invite_code`
|
||
WHERE
|
||
`del_state` = 0
|
||
UNION ALL
|
||
SELECT 'agent_relation' as table_name, COUNT(*) as count
|
||
FROM `agent_relation`
|
||
WHERE
|
||
`del_state` = 0
|
||
UNION ALL
|
||
SELECT 'agent_rebate' as table_name, COUNT(*) as count
|
||
FROM `agent_rebate`
|
||
WHERE
|
||
`del_state` = 0
|
||
UNION ALL
|
||
SELECT 'agent_withdrawal' as table_name, COUNT(*) as count
|
||
FROM `agent_withdrawal`
|
||
WHERE
|
||
`del_state` = 0
|
||
UNION ALL
|
||
SELECT 'agent_upgrade' as table_name, COUNT(*) as count
|
||
FROM `agent_upgrade`
|
||
WHERE
|
||
`del_state` = 0
|
||
UNION ALL
|
||
SELECT 'agent_real_name' as table_name, COUNT(*) as count
|
||
FROM `agent_real_name`
|
||
WHERE
|
||
`del_state` = 0;
|
||
|
||
-- ============================================================
|
||
-- 执行说明
|
||
-- ============================================================
|
||
--
|
||
-- 1. 首先运行验证脚本(第四部分),查看影响范围
|
||
-- 2. 确认无误后,取消注释第一部分和第二部分的SQL语句
|
||
-- 3. 逐步执行,不要一次性执行所有语句
|
||
-- 4. 每执行一部分后,验证应用程序是否正常
|
||
-- 5. 第三部分的表删除操作需要额外谨慎,建议先备份数据
|
||
--
|
||
-- ============================================================ |