## 目标 - 交付一份字段级的《说明文档》增强版,逐一解释: 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.go`(scopeMatch) - 抽奖应用:`internal/service/activity/draw_with_effects.go`(issue 过滤) - 管理端读写:`internal/api/admin/titles_admin.go`、预置:`titles_seed.go` - 示例:包含与排除的组合配置(带示意流程) - 效果数量与叠加策略 - 每个称号可挂载多个效果;按 `sort` 排序;`status` 控制启用; - `StackingStrategy`:0最大值/1累加封顶/2首个匹配/默认累加封顶; - `CapValueX1000`:统一封顶(千分比) - 代码绑定: - 抽奖应用:`internal/service/activity/draw_with_effects.go`(effect_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. 给出后续建议:自动授予逻辑接入方案(服务层/事件钩子/任务调度)。 ## 验收标准 - 文档包含所有字段的用途、类型、取值范围、示例; - 每个字段“在哪里起作用”都给出精确文件/行号; - 覆盖四项:获得规则、使用范围、效果数量、规则助手; - 补充参数对齐提醒与后续接入建议; 确认后我将开始更新文档并提交增强内容。