Browse Source

设置可访问推送回调接口

Yangzw 10 months ago
parent
commit
3c8345ea3e

+ 2 - 0
feifan-module-infra/feifan-module-infra-biz/src/main/java/cn/newfeifan/mall/module/infra/framework/security/config/SecurityConfiguration.java

@@ -39,6 +39,8 @@ public class SecurityConfiguration {
                         .antMatchers(adminSeverContextPath + "/**").anonymous();
                 // 文件读取
                 registry.antMatchers(buildAdminApi("/infra/file/*/get/**")).permitAll();
+                //快递100回调
+                registry.antMatchers(buildAdminApi("/trade/order/callBackUrl")).permitAll();
             }
 
         };

+ 2 - 0
feifan-module-mall/feifan-module-trade-api/src/main/java/cn/newfeifan/mall/module/trade/enums/ErrorCodeConstants.java

@@ -92,5 +92,7 @@ public interface ErrorCodeConstants {
     ErrorCode BROKERAGE_WITHDRAW_STATUS_NOT_AUDITING = new ErrorCode(1_011_008_001, "佣金提现记录状态不是审核中");
     ErrorCode BROKERAGE_WITHDRAW_MIN_PRICE = new ErrorCode(1_011_008_002, "提现金额不能低于 {} 元");
     ErrorCode BROKERAGE_WITHDRAW_USER_BALANCE_NOT_ENOUGH = new ErrorCode(1_011_008_003, "您当前最多可提现 {} 元");
+    ErrorCode NOT_SUFFICIENT_FUNDS = new ErrorCode(1_011_008_004, "账号无可用单量,需要充值");
+    ErrorCode CALLBACK_PARAMETER_ERROR = new ErrorCode(1_011_008_005, "第三方回调参数为Null");
 
 }

+ 5 - 0
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/controller/admin/order/TradeOrderController.java

@@ -49,10 +49,12 @@ import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
 
+import static cn.newfeifan.mall.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.newfeifan.mall.framework.common.pojo.CommonResult.success;
 import static cn.newfeifan.mall.framework.common.util.collection.CollectionUtils.convertList;
 import static cn.newfeifan.mall.framework.common.util.collection.CollectionUtils.convertSet;
 import static cn.newfeifan.mall.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
+import static cn.newfeifan.mall.module.trade.enums.ErrorCodeConstants.CALLBACK_PARAMETER_ERROR;
 
 @Tag(name = "管理后台 - 交易订单")
 @RestController
@@ -158,6 +160,9 @@ public class TradeOrderController {
     @Operation(summary = "订单订阅回调")
     public SubscribeResp callBackUrl(HttpServletRequest request) {
         String param = request.getParameter("param");
+        if(param == null){
+            throw exception(CALLBACK_PARAMETER_ERROR);
+        }
         String sign = request.getParameter("sign");
         String orderId = request.getParameter("orderId");
 

+ 6 - 4
feifan-module-mall/feifan-module-trade-biz/src/main/java/cn/newfeifan/mall/module/trade/service/order/TradeOrderUpdateServiceImpl.java

@@ -118,7 +118,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
     @Resource
     private TradeOrderProperties tradeOrderProperties;
 
-    @Value("${feifan:trade:express:kd100:key}")
+    @Value("${feifan.trade.express.kd100.key}")
     private String key;
 
     // =================== Order ===================
@@ -412,7 +412,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
         subscribeParam.setParameters(subscribeParameters);
         subscribeParam.setCompany(deliveryExpress.getCode());
         subscribeParam.setNumber(order.getLogisticsNo());
-        subscribeParam.setKey("vAeIErtY7248");
+        subscribeParam.setKey(key);
 
         // 构建订阅请求对象,设置请求模式和参数
         SubscribeReq subscribeReq = new SubscribeReq();
@@ -429,11 +429,13 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
         String returnCode = jsonObject.get("returnCode").getAsString();
 
         if (result && returnCode.equals("200")) {
-            log.info("{}:订阅成功",order.getLogisticsNo());
+            log.info("订单号:{}:订阅成功",order.getLogisticsNo());
 
             order.setSubscriptionLogisticsInfo(TradeOrderSubscribeStatusEnum.SUBSCRIBE.getStatus());
+        } else if(returnCode.equals("600") || returnCode.equals("601")) {
+            throw exception(NOT_SUFFICIENT_FUNDS);
         } else {
-            log.info("{}:订阅失败",order.getLogisticsNo());
+            log.info("订单号:{}:订阅失败",order.getLogisticsNo());
 
             order.setSubscriptionLogisticsInfo(TradeOrderSubscribeStatusEnum.abnormal.getStatus());
         }