refactor(referral): drop admin referral-code ops page, self-serve codes
- 移除「用户 → 推广码运营」页面(trait、子菜单、admin SPA 跳转路由) - 移除管理端 REST:/revenue/codes 列表与 generate/disable/regenerate 变更接口, 清理 rest_codes/rest_mutate_code/can_manage_codes/list_codes 死代码 - 推广码改为注册即得:bind_registered_user 内生成唯一推广码,无需后台管理 - 推广配置统一收敛到「支付&付费 → 推广返佣」设置段(现状保留,无改动) - 契约测试固化:无管理路由/页面残留 + 注册即得码
This commit is contained in:
@@ -75,3 +75,21 @@ test('lazy settlement backstop guards the earnings entry points', () => {
|
||||
// 收益总览与我的推广两个入口都接入了兜底。
|
||||
assert.match(attribution, /CommissionLedger::get_instance\(\)->lazy_settle_due\(\)/)
|
||||
})
|
||||
|
||||
test('referral codes are self-serve: no admin ops page, granted at registration', () => {
|
||||
const service = read('src', 'Payment', 'ReferralAttribution.php')
|
||||
// 管理端代码已清理:无 /revenue/codes 路由、无后台增删改接口、无管理列表。
|
||||
assert.doesNotMatch(service, /revenue\/codes/)
|
||||
assert.doesNotMatch(service, /rest_mutate_code|rest_codes|can_manage_codes|private function list_codes/)
|
||||
// 注册即得唯一推广码:bind_registered_user 内调用 generate_code,不依赖归因开关。
|
||||
assert.match(service, /public function bind_registered_user\(int \$invitee_id\): void \{\s*\n\s*\/\/ 每个新用户注册即拥有唯一推广码[\s\S]*?\$this->generate_code\(\$invitee_id, false\)/)
|
||||
|
||||
// 用户菜单不再挂"推广码运营"页,trait 文件已删除。
|
||||
const menus = read('src', 'Admin', 'Native', 'UsersMenus.php')
|
||||
assert.doesNotMatch(menus, /UsersMenusReferral|aksrt_referral_codes|render_referral_codes_page/)
|
||||
assert.equal(fs.existsSync(path.join(root, 'src', 'Admin', 'Native', 'UsersMenusReferral.php')), false)
|
||||
|
||||
// admin SPA 不再保留跳转路由。
|
||||
const router = read('assets', 'admin', 'src', 'router', 'index.js')
|
||||
assert.doesNotMatch(router, /referral-codes/)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user