bindbox-game/.trae/documents/称号系统字段级说明与代码绑定文档增强计划.md
邹方成 8141a47690
Some checks failed
Build docker and publish / linux (1.24.5) (push) Failing after 39s
feat(称号系统): 新增称号管理功能与抽奖效果集成
- 新增系统称号模板与效果配置表及相关CRUD接口
- 实现用户称号分配与抽奖效果应用逻辑
- 优化抽奖接口支持用户ID参数以应用称号效果
- 新增称号管理前端页面与分配功能
- 修复Windows时区错误与JSON字段初始化问题
- 移除无用管理接口代码并更新文档说明
2025-11-16 11:37:40 +08:00

4.1 KiB
Raw Blame History

目标

  • 交付一份字段级的《说明文档》增强版,逐一解释:
    1. 获得规则ObtainRulesJSON字段字典、用途、代码绑定点
    2. 使用范围ScopesJSON字段字典、用途、代码绑定点
    3. 效果数量与叠加策略(多效果、排序、封顶、组合规则);
    4. 规则助手(前端可视化配置)字段映射与校验;
  • 所有字段给出示例与“在代码块哪里起作用”的精确文件/行号。

文档结构

  • 《docs/称号系统/说明文档.md》新增章节
    • 获得规则字段详解ObtainRulesJSON
    • 使用范围字段详解ScopesJSON标题&效果)
    • 效果数量、叠加策略与封顶StackingStrategy/CapValueX1000
    • 规则助手详解UI字段 → JSON 映射 → 后端字段)
    • 代码绑定点总览(带 file_path:line_number 引用)

字段级内容(概要)

  • 获得规则ObtainRulesJSON
    • 字段:methods: string[]conditions: object(如 lottery_type, min_amount, time_range 等)
    • 用途:当前仅“存取”,未参与后端自动授予逻辑(需后续服务层接入)
    • 代码绑定:
      • 写入:internal/api/admin/titles_admin.go:88/94/125
      • 预置:internal/api/admin/titles_seed.go:54
      • DAO映射internal/repository/mysql/dao/system_titles.gen.go:34/53/77/102
    • 示例与建议:提供多场景 JSON 模板与后续接入建议(事件钩子/规则评估器)
  • 使用范围ScopesJSON
    • 标题层:SystemTitles.ScopesJSON(目前仅存取,不参与运行时判定)
    • 效果层:SystemTitleEffects.ScopesJSON(运行时生效,活动/期/分类的包含/排除)
    • 字段字典:activity_ids, issue_ids, category_ids, exclude.{...}
    • 代码绑定:
      • 解析与匹配:internal/service/title/effects_resolver.goscopeMatch
      • 抽奖应用:internal/service/activity/draw_with_effects.goissue 过滤)
      • 管理端读写:internal/api/admin/titles_admin.go、预置:titles_seed.go
    • 示例:包含与排除的组合配置(带示意流程)
  • 效果数量与叠加策略
    • 每个称号可挂载多个效果;按 sort 排序;status 控制启用;
    • StackingStrategy0最大值/1累加封顶/2首个匹配/默认累加封顶;
    • CapValueX1000:统一封顶(千分比)
    • 代码绑定:
      • 抽奖应用:internal/service/activity/draw_with_effects.goeffect_type=5/6 合并规则)
      • 模型定义:internal/repository/mysql/model/system_title_effects.gen.go
    • 示例:多效果组合的实际影响(权重调整/双倍合并概率)
  • 规则助手(前端)
    • 位置:web/admin/src/views/operations/titles/components/RuleConfigDialog.vue
    • 字段映射UI → obtain_rules_json/scopes_json
    • 校验/预览JSON 校验、示例模板、保存策略
    • 注意:当前 effect_type=5/6 的前端参数与后端不一致(计划列出对齐方案与字段映射表,不改代码,先文档说明)

代码绑定点(示例引用)

  • ObtainRulesJSON 写入:internal/api/admin/titles_admin.go:88, 94, 125
  • ScopesJSON 应用匹配:internal/service/title/effects_resolver.go:line(具体行号在交付时标注)
  • 抽奖效果应用:internal/service/activity/draw_with_effects.go:line(包含 5/6 的 switch 分支具体行号)
  • 种子数据:internal/api/admin/titles_seed.go:31-37, 54-56, 70-80

交付步骤

  1. 使用只读工具确认所有字段与代码绑定点的具体行号;
  2. 更新《说明文档.md》按上述结构补充完备的字段级说明与代码引用
  3. 提供前端与后端参数对齐表(仅文档,不改代码);
  4. 给出后续建议:自动授予逻辑接入方案(服务层/事件钩子/任务调度)。

验收标准

  • 文档包含所有字段的用途、类型、取值范围、示例;
  • 每个字段“在哪里起作用”都给出精确文件/行号;
  • 覆盖四项:获得规则、使用范围、效果数量、规则助手;
  • 补充参数对齐提醒与后续接入建议;

确认后我将开始更新文档并提交增强内容。