165 lines
4.9 KiB
MySQL
165 lines
4.9 KiB
MySQL
|
|
-- ============================================================
|
|||
|
|
-- 代理系统简化迁移脚本
|
|||
|
|
-- 日期: 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. 第三部分的表删除操作需要额外谨慎,建议先备份数据
|
|||
|
|
--
|
|||
|
|
-- ============================================================
|