feat(M08-A): 接入权益和余额下单抵扣

This commit is contained in:
Codex
2026-06-25 22:39:02 +08:00
parent 3d885852cd
commit dda2b3cbc6
20 changed files with 555 additions and 243 deletions
@@ -186,3 +186,28 @@ M08-A 仍为 `PARTIAL`。本次完成顾客端第一段工程闭环,但订单
- 工程提交:`53f5d67`
- 远端校验:待本轮 push 后执行 `HEAD == origin/main`
## 2026-06-25 续接:顾客端权益与余额下单抵扣
- `PricingRepository.reserve` 接入优惠券/套餐权益冻结:顾客预占订单时可传入优惠券发放 ID、套餐持有 ID、套餐分钟和套餐金额抵扣,后端先按服务端价格创建预占,再在同一数据库事务中冻结权益、重算价格快照和订单应付金额。
- `MarketingBenefitService``WalletLedgerService` 新增事务内复用方法,供订单预占、支付成功和取消释放共享同一事务边界。
- `PaymentRepository` 新增余额支付闭环:顾客创建 `BALANCE` 支付单时跳过外部支付配置,按门店钱包先赠送后现金扣款,支付单立即成功并推进订单;测试支付与微信支付成功回调统一确认冻结权益。
- `OrderStateRepository` 在订单取消、关闭、退款完成等释放预占/撤销权限的状态路径中释放仍处于冻结状态的优惠券和套餐。
- 微信支付通知成功路径复用统一支付成功结算,避免测试支付和微信支付两条路径对权益确认逻辑分叉。
- 小程序房间页新增优惠券 ID、套餐 ID、套餐分钟、套餐抵扣金额输入和“余额支付”按钮;预占时携带权益参数,支付后可直接进入订单详情。
- `scripts/check-miniapp-m08-a.mjs` 扩展检查权益下单字段和余额支付入口。
验收:
- `npm run build``backend/`):PASS。
- `node scripts/check-miniapp-m08-a.mjs`PASS。
- `npm test``backend/`):PASS。
状态:
- M08-A 仍为 `PARTIAL`;真机合法域名、真实微信支付、实物开门验证,以及权益选择器的可视化列表仍待继续。
提交:
- 工程提交:本轮提交
- 远端校验:待本轮 push 后执行 `HEAD == origin/main`