4.5 KiB
Raw Blame History

BUG修复需求分析

任务概述

修复盲盒游戏系统中6个BUG问题。

BUG清单

BUG 1: 任务中心任务类型统计错误

问题描述: 设置任务是完成A活动才可以算完成但玩了一局B活动竟然也算任务成功了。

根因分析:

  • 任务中心 GetUserProgress 函数 (internal/service/task_center/service.go:290-386)
  • 该函数通过订单 remark 字段使用 LIKE 匹配来过滤活动ID
  • 匹配模式: %%activity:%d%%
  • 问题: 虽然有活动ID过滤逻辑但需要确认任务配置时是否正确设置了 activity_id
  • 相关代码位置: service.go 第306-312行

BUG 2: 任务中心把商城订单也计入了

问题描述: 任务中心统计时不应该包含商城订单,应该根据设置的类型来结算。

根因分析:

  • GetUserProgress 函数统计订单时只过滤了 status = 2(已支付)
  • 问题: 没有过滤 source_type,导致商城订单(source_type = 1)也被计入
  • 订单 source_type 定义 (model/orders.gen.go:20):
    • 1: 商城直购
    • 2: 抽奖票据
    • 3: 其他
    • 4: 次数卡支付

BUG 3: 活动盈亏仪表盘退款订单未排除

问题描述: 对用户订单进行退款了,统计不应该把这个订单累计进来。

根因分析:

  • DashboardActivityProfitLoss 函数 (internal/api/admin/dashboard_activity.go:132-139)
  • 营收统计查询条件: orders.status = 2(已支付)
  • 问题: 订单状态4表示已退款但当前只过滤了 status = 2,不会包含退款订单
  • 实际问题: 退款后订单状态应该从2变成4但如果状态未更新则会被统计。需要确认退款流程是否正确更新订单状态

BUG 4: 活动盈亏抽奖记录缺少字段

问题描述: 需要在抽奖记录中体现 优惠券 / 道具卡 / 次数卡 字段。

根因分析:

  • DashboardActivityLogs 函数 (internal/api/admin/dashboard_activity.go:222-354)
  • 当前返回字段已包含:
    • coupon_name: 通过 orders.coupon_id LEFT JOIN system_coupons
    • item_card_name: 通过 orders.item_card_id LEFT JOIN system_item_cards
  • 问题: source_type = 4 表示次数卡支付,但次数卡使用信息存储在订单 remark 字段中(格式: gp_use:ID:Count),当前未解析显示
  • 需要增加解析 remark 字段中的次数卡使用信息

BUG 5: 一番赏不能使用优惠券

问题描述: 一番赏目前不能使用优惠券。

根因分析:

  • JoinLottery 函数 (internal/api/activity/lottery_app.go:78-81)
  • 优惠券检查逻辑: if !activity.AllowCoupons && req.CouponID != nil
  • 问题: 一番赏活动的 AllowCoupons 字段可能被设置为 false
  • 数据库字段定义 (model/activities.gen.go:27): AllowCoupons bool 默认值为1允许
  • 解决方向:
    1. 检查一番赏活动在数据库中的 allow_coupons 字段值
    2. 如果业务上确实不允许,则是配置问题而非代码问题
    3. 如果业务上应该允许,需修改活动配置

BUG 6: 活动盈亏出现已下架活动数据

问题描述: 活动盈亏里面出现了以前已经下架了的数据,应该按照现在活动表存在的活动来统计。

根因分析:

  • DashboardActivityProfitLoss 函数 (internal/api/admin/dashboard_activity.go:58-75)
  • 当前查询直接从 activities 表获取活动列表
  • 支持按 status 过滤1进行中 2下线
  • 问题: 虽然支持状态过滤,但默认不过滤任何状态
  • 另外活动表使用了软删除 (deleted_at),但需确认是否正确应用了软删除条件

需求理解

BUG编号 问题类型 修复难度 涉及文件
BUG 1 业务逻辑 service/task_center/service.go
BUG 2 业务逻辑 service/task_center/service.go
BUG 3 数据过滤 api/admin/dashboard_activity.go
BUG 4 字段缺失 api/admin/dashboard_activity.go
BUG 5 配置问题 需检查数据库配置
BUG 6 数据过滤 api/admin/dashboard_activity.go

待确认问题

  1. BUG 1: 任务配置时,task_center_task_tiers.activity_id 字段是否正确设置?
  2. BUG 3: 退款时订单状态是否正确更新为4
  3. BUG 5: 一番赏活动的 allow_coupons 数据库字段当前值是什么?是配置问题还是需要代码修复?
  4. BUG 6: 是否需要默认只显示在线活动status=1还是只过滤软删除的活动