refactor(utils): 修复密码哈希比较逻辑错误 feat(user): 新增按状态筛选优惠券接口 docs: 添加虚拟发货与任务中心相关文档 fix(wechat): 修正Code2Session上下文传递问题 test: 补充订单折扣与积分转换测试用例 build: 更新配置文件与构建脚本 style: 清理多余的空行与注释
28 lines
2.2 KiB
Markdown
28 lines
2.2 KiB
Markdown
# 故障排查与修复计划
|
|
|
|
针对您提出的四个问题,我制定了以下修复计划。我将使用中文进行回答和执行。
|
|
|
|
## 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` 在优惠券模板未启用时也静默返回成功。
|
|
* **修复**: 修改服务层代码,当优惠券不可用时,明确返回错误,确保您能看到操作失败的提示。
|
|
|
|
## 执行步骤
|
|
1. **后端**: 修复道具卡和优惠券的“静默失败”逻辑,使其报错。
|
|
2. **后端**: 在支付回调中增加虚拟发货的错误日志。
|
|
3. **前端**: 在订单管理页面增加“退款”按钮并对接接口。
|
|
4. **验证**: 通过 curl 或界面操作验证修复效果。
|