接口切换

This commit is contained in:
zhx 2026-05-29 13:04:44 +08:00
parent 226362c9d9
commit 6780d24893
3 changed files with 13 additions and 11 deletions

View File

@ -56,7 +56,7 @@
| 功能点 | 行为 | 代码函数实现 | 验收 |
| --- | --- | --- | --- |
| App 检查接口 | `POST /api/v1/activities/lucky-gifts/check` 只做资格检查,不扣费、不抽奖 | `activityapi.Handler.checkLuckyGift` | 已验收:接口要求 `room_id/gift_id/pool_id` 必填 |
| App 检查接口 | `POST /api/v1/activities/lucky-gifts/check` 只做资格检查,不扣费、不抽奖App 路径不随内部 v2 规则实现变化 | `activityapi.Handler.checkLuckyGift` | 已验收:接口要求 `room_id/gift_id/pool_id` 必填 |
| gRPC 检查 | gateway 或 room-service 通过 gRPC 查奖池是否启用 | `LuckyGiftServer.CheckLuckyGift``Service.Check` | 已验收:入参缺失返回 InvalidArgument |
| 规则读取 | 按 `pool_id` 查 v2 最新规则,未配置返回 disabled | `Repository.CheckLuckyGift``Repository.getLuckyGiftRuleConfig` | 已验收:不再从旧 `lucky_gift_rules` 作为运行规则来源 |
| 阶段展示 | 检查响应返回当前用户所在体验池 | `getLuckyUserState``luckyExperiencePool` | 已验收:响应包含 `experience_pool` |
@ -128,11 +128,11 @@
| 功能点 | HTTP 入口 | 代码函数实现 | 验收 |
| --- | --- | --- | --- |
| 获取单个奖池配置 | `GET /admin/activity/lucky-gifts/config?pool_id=` | `Handler.GetLuckyGiftConfig``AdminLuckyGiftServer.GetLuckyGiftConfig``Service.GetConfig` | 已验收:未配置返回 disabled 草稿 |
| 发布配置 | `PUT /admin/activity/lucky-gifts/config` | `Handler.UpsertLuckyGiftConfig``configToProto``Service.UpsertConfig``Repository.PublishLuckyGiftRuleConfig` | 已验收:百分比/倍率转换为 ppm 后发布 |
| 配置列表 | `GET /admin/activity/lucky-gifts/configs` | `Handler.ListLuckyGiftConfigs``Service.ListConfigs``Repository.ListLuckyGiftRuleConfigs` | 已验收:每个奖池只返回最新版本 |
| 抽奖明细 | `GET /admin/activity/lucky-gifts/draws` | `Handler.ListLuckyGiftDraws``Service.ListDraws``Repository.ListLuckyGiftDraws``luckyDrawWhereClause` | 已验收:分页上限由 service 控制,支持状态筛选 |
| 抽奖汇总 | `GET /admin/activity/lucky-gifts/draw-summary` | `Handler.GetLuckyGiftDrawSummary``Service.GetDrawSummary``Repository.GetLuckyGiftDrawSummary` | 已验收统计总抽数、参与用户、消耗、返奖、pending/granted/failed |
| 获取单个奖池配置 | `GET /admin/activity/lucky-gifts/v2/config?pool_id=` | `Handler.GetLuckyGiftConfig``AdminLuckyGiftServer.GetLuckyGiftConfig``Service.GetConfig` | 已验收:未配置返回 disabled 草稿 |
| 发布配置 | `PUT /admin/activity/lucky-gifts/v2/config` | `Handler.UpsertLuckyGiftConfig``configToProto``Service.UpsertConfig``Repository.PublishLuckyGiftRuleConfig` | 已验收:百分比/倍率转换为 ppm 后发布 |
| 配置列表 | `GET /admin/activity/lucky-gifts/v2/configs` | `Handler.ListLuckyGiftConfigs``Service.ListConfigs``Repository.ListLuckyGiftRuleConfigs` | 已验收:每个奖池只返回最新版本 |
| 抽奖明细 | `GET /admin/activity/lucky-gifts/v2/draws` | `Handler.ListLuckyGiftDraws``Service.ListDraws``Repository.ListLuckyGiftDraws``luckyDrawWhereClause` | 已验收:分页上限由 service 控制,支持状态筛选 |
| 抽奖汇总 | `GET /admin/activity/lucky-gifts/v2/draw-summary` | `Handler.GetLuckyGiftDrawSummary``Service.GetDrawSummary``Repository.GetLuckyGiftDrawSummary` | 已验收统计总抽数、参与用户、消耗、返奖、pending/granted/failed |
| 后台路由权限 | 所有后台入口需要 `lucky-gift:view``lucky-gift:update` | `RegisterRoutes` | 已验收:路由注册在后台模块内 |
## 七、数据表

View File

@ -11,9 +11,10 @@ func RegisterRoutes(protected *gin.RouterGroup, h *Handler) {
return
}
protected.GET("/admin/activity/lucky-gifts/config", middleware.RequirePermission("lucky-gift:view"), h.GetLuckyGiftConfig)
protected.PUT("/admin/activity/lucky-gifts/config", middleware.RequirePermission("lucky-gift:update"), h.UpsertLuckyGiftConfig)
protected.GET("/admin/activity/lucky-gifts/configs", middleware.RequirePermission("lucky-gift:view"), h.ListLuckyGiftConfigs)
protected.GET("/admin/activity/lucky-gifts/draws", middleware.RequirePermission("lucky-gift:view"), h.ListLuckyGiftDraws)
protected.GET("/admin/activity/lucky-gifts/draw-summary", middleware.RequirePermission("lucky-gift:view"), h.GetLuckyGiftDrawSummary)
// 幸运礼物当前只保留 v2 规则接口:外部路径显式带 v2避免后台或前端再误接旧 gift_id 规则模型。
protected.GET("/admin/activity/lucky-gifts/v2/config", middleware.RequirePermission("lucky-gift:view"), h.GetLuckyGiftConfig)
protected.PUT("/admin/activity/lucky-gifts/v2/config", middleware.RequirePermission("lucky-gift:update"), h.UpsertLuckyGiftConfig)
protected.GET("/admin/activity/lucky-gifts/v2/configs", middleware.RequirePermission("lucky-gift:view"), h.ListLuckyGiftConfigs)
protected.GET("/admin/activity/lucky-gifts/v2/draws", middleware.RequirePermission("lucky-gift:view"), h.ListLuckyGiftDraws)
protected.GET("/admin/activity/lucky-gifts/v2/draw-summary", middleware.RequirePermission("lucky-gift:view"), h.GetLuckyGiftDrawSummary)
}

View File

@ -349,6 +349,7 @@ func (r routes) registerTaskRoutes() {
r.profile("/activities/seven-day-checkin", http.MethodGet, h.GetSevenDayCheckInStatus)
r.profile("/activities/seven-day-checkin/sign", http.MethodPost, h.SignSevenDayCheckIn)
r.profile("/activities/user-leaderboards", http.MethodGet, h.ListUserLeaderboards)
// App 侧接口保持稳定;内部仍按 pool_id 走当前 v2 规则、抽奖和返奖实现。
r.profile("/activities/lucky-gifts/check", http.MethodPost, h.CheckLuckyGift)
r.profile("/tasks/tabs", http.MethodGet, h.ListTaskTabs)
r.profile("/tasks/claim", http.MethodPost, h.ClaimTaskReward)