refactor(utils): 修复密码哈希比较逻辑错误 feat(user): 新增按状态筛选优惠券接口 docs: 添加虚拟发货与任务中心相关文档 fix(wechat): 修正Code2Session上下文传递问题 test: 补充订单折扣与积分转换测试用例 build: 更新配置文件与构建脚本 style: 清理多余的空行与注释
2.2 KiB
2.2 KiB
故障排查与修复计划
针对您提出的四个问题,我制定了以下修复计划。我将使用中文进行回答和执行。
1. 虚拟发货问题 (Virtual Shipment)
- 现状: 后端代码中已存在
UploadVirtualShipping调用,但在支付回调中如果上传失败,目前是忽略错误的(_ = ...),导致无法确定是否成功。 - 修复: 修改
internal/api/pay/wechat_notify.go,增加错误日志记录。如果虚拟发货上传失败,将在后台日志中打印详细错误原因,方便排查(如transaction_id错误或配置问题)。
2. 订单管理与退款 (Refund Button)
- 现状: 您提到的“履约”可能是指发货,但对于虚拟商品,通常需要的是“退款”。目前后台订单列表缺少直观的“退款”按钮。
- 修复:
- 前端: 在
web/admin/src/views/pay/orders/index.vue中添加“退款”按钮。 - 后端: 对接现有的
CreateRefund接口。该接口已包含完整的逻辑:调用微信退款、更新订单状态、自动恢复用户积分和自动恢复优惠券。
- 前端: 在
3. 道具卡添加不生效 (Item Card Issue)
- 原因: 经查代码
internal/service/user/item_card_add.go,当道具卡模板不存在或状态为“未启用”时,代码直接返回nil(成功),但实际上没有给用户添加卡片。这就是“不生效”且无报错的原因。 - 修复: 修改服务层代码,当道具卡不可用时,明确返回错误(如
errors.New("item card not found or disabled")),让接口报错,提示您具体原因。
4. 优惠券添加不生效 (Coupon Issue)
- 原因: 同上,
internal/service/user/coupon_add.go在优惠券模板未启用时也静默返回成功。 - 修复: 修改服务层代码,当优惠券不可用时,明确返回错误,确保您能看到操作失败的提示。
执行步骤
- 后端: 修复道具卡和优惠券的“静默失败”逻辑,使其报错。
- 后端: 在支付回调中增加虚拟发货的错误日志。
- 前端: 在订单管理页面增加“退款”按钮并对接接口。
- 验证: 通过 curl 或界面操作验证修复效果。