4.5 KiB
4.5 KiB
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_idLEFT JOINsystem_couponsitem_card_name: 通过orders.item_card_idLEFT JOINsystem_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(允许) - 解决方向:
- 检查一番赏活动在数据库中的
allow_coupons字段值 - 如果业务上确实不允许,则是配置问题而非代码问题
- 如果业务上应该允许,需修改活动配置
- 检查一番赏活动在数据库中的
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 |
待确认问题
- BUG 1: 任务配置时,
task_center_task_tiers.activity_id字段是否正确设置? - BUG 3: 退款时订单状态是否正确更新为4?
- BUG 5: 一番赏活动的
allow_coupons数据库字段当前值是什么?是配置问题还是需要代码修复? - BUG 6: 是否需要默认只显示在线活动(status=1)?还是只过滤软删除的活动?