From b9d70438b1d63b91e5b9e71a4a2430df6fc32945 Mon Sep 17 00:00:00 2001 From: danaisuiyuan Date: Sun, 10 May 2026 10:30:51 +0800 Subject: [PATCH] feat(syj): seed agent levels per prd-require.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Re-init eb_agent_level (4 tiers: 普通会员/业务主管/业务经理/业务总监) and eb_agent_level_task (3 upgrade tasks: 直推 3 / 团队 30 单 / 团队 100 单) based on docs/project-shaoyaoju/prd-require.md §7.2. TRUNCATE-based; orphan cleanup of eb_agent_level_task_record left commented for the operator to opt in. Co-Authored-By: Claude Opus 4.7 (1M context) --- pro_v3.5.1/database/syj_agent_level_seed.sql | 68 ++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 pro_v3.5.1/database/syj_agent_level_seed.sql diff --git a/pro_v3.5.1/database/syj_agent_level_seed.sql b/pro_v3.5.1/database/syj_agent_level_seed.sql new file mode 100644 index 00000000..1310dd90 --- /dev/null +++ b/pro_v3.5.1/database/syj_agent_level_seed.sql @@ -0,0 +1,68 @@ +-- 芍药居(syj-shop)分销等级 + 等级任务 baseline +-- 数据来源:docs/project-shaoyaoju/prd-require.md 7.2 节 +-- 用法:mysql ... syj-shop < pro_v3.5.1/database/syj_agent_level_seed.sql +-- 重新初始化:清空两张表并按 PRD 写入 4 级 + 3 个升级任务(普通会员为基础级,无任务) +-- +-- 关联代码: +-- app/services/agent/AgentLevelTaskServices.php $TaskType +-- type=7 伞下报单业绩 / type=8 最低直推人数 +-- +-- ⚠️ 说明(与 PRD 的差异): +-- 1. eb_agent_level 仅有 direct_reward_points / umbrella_reward_points 两列, +-- 业务总监原文"业务经理差补 200 + 业务主管差补 500"无法用两列完整表达; +-- 本 seed 把 200(最近一级差补)写入 umbrella_reward_points, +-- "业务主管差补 500" 需要业务层另行实现(建议放到 system_config 或代码常量)。 +-- 2. 业务主管原文"团队每新增 1 单 500 积分": +-- 团队=直推+伞下,但只有一列存储,本 seed 写入 direct_reward_points=500。 +-- 3. 一级/二级佣金比例 (one_brokerage / two_brokerage) 全部置 0: +-- SYJ 主线奖励走"推四免一"任务结算(10/20/30/40 阶梯,扣 7%),不走百分比直接分佣。 +-- +-- ⚠️ 副作用: +-- - eb_agent_level_task_record 中可能存在引用旧 task_id 的用户记录, +-- re-init 后这些记录会变成孤儿数据。下方提供了可选的清理语句(默认注释掉)。 + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- 分销等级 eb_agent_level +-- ---------------------------- +TRUNCATE TABLE `eb_agent_level`; +INSERT INTO `eb_agent_level` + (`id`, `name`, `image`, `color`, `one_brokerage`, `two_brokerage`, `grade`, `status`, `is_del`, `add_time`, `direct_reward_points`, `umbrella_reward_points`) +VALUES + (1, '普通会员', '/uploads/system/agent_level_1.png', '#999999', 0, 0, 1, 1, 0, UNIX_TIMESTAMP(), 0, 0), + (2, '业务主管', '/uploads/system/agent_level_2.png', '#5D7DAC', 0, 0, 2, 1, 0, UNIX_TIMESTAMP(), 500, 0), + (3, '业务经理', '/uploads/system/agent_level_3.png', '#5856D6', 0, 0, 3, 1, 0, UNIX_TIMESTAMP(), 800, 300), + (4, '业务总监', '/uploads/system/agent_level_4.png', '#1DB0FC', 0, 0, 4, 1, 0, UNIX_TIMESTAMP(), 1000, 200); + +-- ---------------------------- +-- 分销等级任务 eb_agent_level_task +-- 普通会员 (level_id=1) 为基础级,注册并完成首单即拥有,无升级任务 +-- 升业务主管 (level_id=2) :直推 3 位有效会员 +-- 升业务经理 (level_id=3) :团队累计 30 单 +-- 升业务总监 (level_id=4) :团队累计 100 单 +-- ---------------------------- +TRUNCATE TABLE `eb_agent_level_task`; +INSERT INTO `eb_agent_level_task` + (`id`, `level_id`, `name`, `type`, `number`, `desc`, `is_must`, `sort`, `status`, `is_del`, `add_time`) +VALUES + (1, 2, '直推有效会员', 8, 3, '直推 3 位有效会员', 0, 0, 1, 0, UNIX_TIMESTAMP()), + (2, 3, '团队累计单数', 7, 30, '团队累计 30 单', 0, 0, 1, 0, UNIX_TIMESTAMP()), + (3, 4, '团队累计单数', 7, 100, '团队累计 100 单', 0, 0, 1, 0, UNIX_TIMESTAMP()); + +-- ---------------------------- +-- 可选:清理旧 task_id 留下的用户记录(默认注释;执行将丢失用户进度) +-- ---------------------------- +-- TRUNCATE TABLE `eb_agent_level_task_record`; + +SET FOREIGN_KEY_CHECKS = 1; + +-- ---------------------------- +-- 校验 +-- ---------------------------- +-- SELECT id, name, grade, direct_reward_points AS direct_pts, umbrella_reward_points AS umbrella_pts, status +-- FROM eb_agent_level WHERE is_del=0 ORDER BY grade; +-- SELECT t.id, t.level_id, l.name AS level_name, t.name, t.type, t.number, t.desc +-- FROM eb_agent_level_task t LEFT JOIN eb_agent_level l ON t.level_id=l.id +-- WHERE t.is_del=0 ORDER BY t.level_id, t.id;