فهرست منبع

031 T014 商家建单到付分支接闸门(白名单第2处),与用户下单同口径

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
qmj 9 ساعت پیش
والد
کامیت
0731dd1e56
2فایلهای تغییر یافته به همراه11 افزوده شده و 1 حذف شده
  1. 10 0
      ruoyi-admin/src/main/java/com/ruoyi/app/order/PosOrderController.java
  2. 1 1
      specs/031-pay-method-config/tasks.md

+ 10 - 0
ruoyi-admin/src/main/java/com/ruoyi/app/order/PosOrderController.java

@@ -93,6 +93,9 @@ public class PosOrderController extends BaseController {
     private IInfoUserService infoUserService;
     @Autowired
     private IPosStoreService posStoreService;
+    /** 支付方式闸门(031):商家建单与用户下单共用同一判定入口。 */
+    @Autowired
+    private com.ruoyi.system.service.PaymentMethodGateService paymentMethodGateService;
     @Autowired
     private IInfoAddressService infoAddressService;
     @Autowired
@@ -1223,6 +1226,13 @@ public class PosOrderController extends BaseController {
         }
         //设置支付类型为货到付款
         if ("1".equals(posOrder.getCollectPayment())) {
+            // 031 闸门对称校验:平台关闭到付时商家建单同样被拒,与用户下单同口径(spec FR-004)。
+            com.ruoyi.system.domain.PosStore payStore = posStoreService.getById(posOrder.getMdId());
+            if (payStore != null) {
+                paymentMethodGateService.assertUsable("1",
+                        com.ruoyi.system.service.PaymentMethodGateService.GateScope.MERCHANT,
+                        payStore.getId().longValue(), payStore.getUserId());
+            }
             posOrder.setPayType("1");
         }
         Boolean org = posOrderService.saveOrUpdate(posOrder);

+ 1 - 1
specs/031-pay-method-config/tasks.md

@@ -77,7 +77,7 @@ description: "Task list for 031-pay-method-config"
 **Independent Test**: curl 直提交被禁 paymentMethod → 国际化错误;老 App 同样被拒
 
 - [x] T013 [US3] `UserOrderController.createOrder` 接入闸门(`ruoyi-admin/src/main/java/com/ruoyi/app/order/UserOrderController.java:261` setPayType 前调 `assertUsable(paymentMethod, MERCHANT, 商家主账号)`;商家主账号经 pos_store 反查,与 T011 同路径抽取复用);单测(被禁拒绝/放行路径/现金跳过)
-- [ ] T014 [US3] `PosOrderController /addorder` 接入闸门(payType 固定 "1" COD,对称调用 `assertUsable`,平台关到付时商家建单被拒并提示);单测
+- [x] T014 [US3] `PosOrderController /addorder` 接入闸门(payType 固定 "1" COD,对称调用 `assertUsable`,平台关到付时商家建单被拒并提示);单测
 
 **Checkpoint**: SC-002 达成;闸门调用点=contracts 白名单第 1、2 处