feat(1895): 暂停积分系统 ENABLE_CREDIT_SYSTEM=false(保留全部代码/表/接口) #1996

Merged
auto-approve-bot merged 1 commits from feat/1895-disable-credit-system into develop 2026-09-20 01:39:03 +08:00
Owner

产品需求

暂停积分扣减,全量功能对所有登录用户免费(含付费会员);积分体系代码、表、查询接口全部保留,未来改开关即可恢复。

实现

配置 packages/config/base.py

  • 新增 credits_enabled,主环境变量 ENABLE_CREDIT_SYSTEM=false(默认关闭)
  • POINTS_ENABLED 保留为兼容别名,两者任一 true 即启用
  • settings.points_enabled 改为 property(OR 两者)+ setter,现有所有 if settings.points_enabled 业务代码与测试赋值零改动
  • 恢复积分只需 ENABLE_CREDIT_SYSTEM=true,无需改代码

关闭时行为

  • @points_gate 装饰的所有路由(AI视频/封面/预览/数字人/AI改写/AI标题/抖音解析)直接透传,不扣分不拦截
  • lipsync、TTS、音色克隆试听、叙事模式、注册送积分等手动扣分点不实例化 PointsService
  • POST /points/check 恒返回 allowed=true, required_points=0(未知 scene 仍 400)
  • POST /points/deduct 变 no-op:不扣分、余额不变、返回 success
  • 余额/流水/规则/充值包/会员状态/每日额度等查询接口全部保留可用,数据不再变动
  • 积分表、repository、domain service、充值/退款接口均不删除

说明:配音库/标题库条数容量(tier_limits.plan_name 配额)是收藏库条数上限而非积分扣减,本次不动;如需也放开请另提。

测试

  • 新增 test_credit_system_switch.py 12 用例:配置默认 false、两环境变量名/旧 setter、check 放行+0 积分、未知 scene 仍 400、开启时计费 402、deduct no-op/开启正常、查询接口可用、业务路由不扣分
  • 修正 test_points_routes 2 个计费断言用例显式开启开关
  • 积分/配额/会员/配置相关 422 测试全绿;black/isort/ruff 通过
## 产品需求 暂停积分扣减,全量功能对所有登录用户免费(含付费会员);积分体系代码、表、查询接口全部保留,未来改开关即可恢复。 ## 实现 **配置** `packages/config/base.py` - 新增 `credits_enabled`,主环境变量 **ENABLE_CREDIT_SYSTEM=false(默认关闭)** - 旧 `POINTS_ENABLED` 保留为兼容别名,两者任一 true 即启用 - `settings.points_enabled` 改为 property(OR 两者)+ setter,现有所有 `if settings.points_enabled` 业务代码与测试赋值零改动 - 恢复积分只需 `ENABLE_CREDIT_SYSTEM=true`,无需改代码 **关闭时行为** - `@points_gate` 装饰的所有路由(AI视频/封面/预览/数字人/AI改写/AI标题/抖音解析)直接透传,不扣分不拦截 - lipsync、TTS、音色克隆试听、叙事模式、注册送积分等手动扣分点不实例化 PointsService - `POST /points/check` 恒返回 `allowed=true, required_points=0`(未知 scene 仍 400) - `POST /points/deduct` 变 no-op:不扣分、余额不变、返回 success - 余额/流水/规则/充值包/会员状态/每日额度等查询接口全部保留可用,数据不再变动 - 积分表、repository、domain service、充值/退款接口均不删除 **说明**:配音库/标题库条数容量(`tier_limits.plan_name` 配额)是收藏库条数上限而非积分扣减,本次不动;如需也放开请另提。 ## 测试 - 新增 `test_credit_system_switch.py` 12 用例:配置默认 false、两环境变量名/旧 setter、check 放行+0 积分、未知 scene 仍 400、开启时计费 402、deduct no-op/开启正常、查询接口可用、业务路由不扣分 - 修正 test_points_routes 2 个计费断言用例显式开启开关 - 积分/配额/会员/配置相关 422 测试全绿;black/isort/ruff 通过
xiaoxia added 1 commit 2026-09-20 01:29:13 +08:00
feat(1895): 暂停积分系统总开关 ENABLE_CREDIT_SYSTEM(默认 false),代码/表/接口全保留
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 1s
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 40s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m18s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m55s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 3m19s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 3m18s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 3m37s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 3m51s
AI Code Review / AI Code Review (pull_request) Successful in 6m36s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 7m54s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 8m57s
CI/CD Pipeline / CI Gate (pull_request) Successful in 1s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 6m51s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 23s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 49s
44315013bd
产品要求暂停积分扣减、全量功能对登录用户免费,但保留积分体系代码便于未来恢复。

配置(packages/config/base.py):
- 新增 credits_enabled 字段,主环境变量 ENABLE_CREDIT_SYSTEM=false(默认关闭)
- 旧 POINTS_ENABLED 保留为兼容别名(points_enabled_compat),两者任一 true 即启用
- settings.points_enabled 改为 property(credits_enabled OR compat)并保留 setter,
  现有所有业务代码/测试的 if settings.points_enabled 与赋值写法零改动
- 恢复积分只需 ENABLE_CREDIT_SYSTEM=true,无需改代码

关闭时行为:
- 所有 @points_gate 装饰的路由(AI视频/封面/预览/数字人/AI改写/AI标题/抖音解析)
  直接透传,不扣分不拦截(装饰器原已读取该开关)
- lipsync/TTS/音色克隆试听/叙事模式/注册送积分 等手动扣分点不实例化 PointsService
- POST /points/check 恒返回 allowed=True、required_points=0(未知 scene 仍 400)
- POST /points/deduct 变 no-op,不扣分、余额不变,返回 success
- 积分余额/流水/规则/充值包/会员状态/每日额度等查询接口全部保留可用,数据不再变动
- 积分表、repository、domain service、充值/退款接口均不删除

.env.example 更新为 ENABLE_CREDIT_SYSTEM=false + 旧开关说明。

测试:新增 test_credit_system_switch.py 12 用例(配置默认值/两环境变量/旧setter、
check 放行与0积分、未知scene仍400、开启时计费、deduct no-op/开启正常、查询接口
可用、业务路由不扣分);修正 test_points_routes 2 个计费用例显式打开开关。
积分/配额/会员/配置相关 422 个测试全绿。

🚀 预览环境已部署

项目 详情
PR号 #1996
预览链接 https://pr-1996.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1996 | | 预览链接 | [https://pr-1996.preview.xiaoxiajianji.com](https://pr-1996.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
auto-approve-bot merged commit d959dd874f into develop 2026-09-20 01:39:03 +08:00
auto-approve-bot deleted branch feat/1895-disable-credit-system 2026-09-20 01:39:05 +08:00

🗑️ 预览环境已清理

PR #1996 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #1996 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.