From 47e03d0aa72b6bd1c62c4ecff0c25289890f7abc Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 12 Feb 2025 10:49:17 +0800
Subject: [PATCH] refactor(mall): 根据系统配置选择不同的物流服务接口 - 在 AdminMallOrderService 和 CommonService 中添加了根据系统配置选择物流服务接口的逻辑 - 新增了 SENDER_STATE 数据字典项,用于控制使用测试环境还是生产环境的物流服务 - 根据系统配置,选择不同的 ClientParamEnum 实例来调用

---
 src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java    |    1 +
 src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java |   29 ++++++++++++++++++++++++++---
 src/main/java/cc/mrbird/febs/mall/service/impl/CommonService.java         |   14 +++++++++++++-
 3 files changed, 40 insertions(+), 4 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
index e9cf56c..201e304 100644
--- a/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
+++ b/src/main/java/cc/mrbird/febs/common/enumerates/DataDictionaryEnum.java
@@ -9,6 +9,7 @@
     SENDER_NAME("SENDER_SET", "NAME"),
     SENDER_MOBILE("SENDER_SET", "MOBILE"),
     SENDER_ADDRESS("SENDER_SET", "ADDRESS"),
+    SENDER_STATE("SENDER_SET", "STATE"),
 
     // 发票的通知回调路径
     FP_CALLBACK_URL("FP_CALLBACK_URL", "FP_CALLBACK_URL"),
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
index 2f6a777..34fa13b 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallOrderService.java
@@ -3,6 +3,7 @@
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cc.mrbird.febs.common.enumerates.*;
+import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.utils.ValidateEntityUtils;
 import cc.mrbird.febs.mall.dto.*;
 import cc.mrbird.febs.mall.entity.*;
@@ -546,8 +547,18 @@
         kdCreateWaybillOrderPdfNotifyReq.setItems(items);
 
         kdCreateWaybillOrderPdfNotifyReq.setPiece(1);
-        KdCreateWaybillOrderPdfNotifyRsp pdfOrder = ClientParamService.getInstance(ClientParamEnum.TEST.name()).createPdfOrder(kdCreateWaybillOrderPdfNotifyReq);
-
+        String state = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.SENDER_ADDRESS.getType(),
+                DataDictionaryEnum.SENDER_ADDRESS.getCode()
+        ).getValue();
+        KdCreateWaybillOrderPdfNotifyRsp pdfOrder;
+        if(state.equals("0")){
+            pdfOrder = ClientParamService.getInstance(ClientParamEnum.TEST.name()).createPdfOrder(kdCreateWaybillOrderPdfNotifyReq);
+        }else if(state.equals("1")){
+            pdfOrder = ClientParamService.getInstance(ClientParamEnum.PRD.name()).createPdfOrder(kdCreateWaybillOrderPdfNotifyReq);
+        }else{
+            throw new FebsException("一键发货失败,系统配置异常");
+        }
         ValidateEntityUtils.ensureEqual(pdfOrder.getResult(), true, "一键发货失败,创建PDF电子面单异常");
         //更新发货状态
         mallOrderInfoMapper.updateOrderStateAndDeliveryState(
@@ -575,7 +586,19 @@
         KdCancelOrderNotifyReq kdCancelOrderNotifyReq = new KdCancelOrderNotifyReq();
         kdCancelOrderNotifyReq.setTxLogisticId(mallOrderInfo.getOrderNo());
         kdCancelOrderNotifyReq.setReason("Don't want to buy");
-        KdCancelOrderNotifyRsp kdCancelOrderNotifyRsp = ClientParamService.getInstance(ClientParamEnum.TEST.name()).cancelOrder(kdCancelOrderNotifyReq);
+
+        String state = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.SENDER_ADDRESS.getType(),
+                DataDictionaryEnum.SENDER_ADDRESS.getCode()
+        ).getValue();
+        KdCancelOrderNotifyRsp kdCancelOrderNotifyRsp;
+        if(state.equals("0")){
+            kdCancelOrderNotifyRsp = ClientParamService.getInstance(ClientParamEnum.TEST.name()).cancelOrder(kdCancelOrderNotifyReq);
+        }else if(state.equals("1")){
+            kdCancelOrderNotifyRsp = ClientParamService.getInstance(ClientParamEnum.PRD.name()).cancelOrder(kdCancelOrderNotifyReq);
+        }else{
+            throw new FebsException("取消发货失败,系统配置异常");
+        }
         ValidateEntityUtils.ensureEqual(kdCancelOrderNotifyRsp.getResult(), true, "取消发货失败");
 
         //更新发货状态
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/CommonService.java b/src/main/java/cc/mrbird/febs/mall/service/impl/CommonService.java
index d70d969..6b5241e 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/CommonService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/CommonService.java
@@ -1,5 +1,7 @@
 package cc.mrbird.febs.mall.service.impl;
 
+import cc.mrbird.febs.common.enumerates.DataDictionaryEnum;
+import cc.mrbird.febs.common.exception.FebsException;
 import cc.mrbird.febs.common.utils.AppContants;
 import cc.mrbird.febs.common.utils.RedisUtils;
 import cc.mrbird.febs.mall.dto.ApiCheckTraceInfoDto;
@@ -142,6 +144,16 @@
 //    }
     @Override
     public KdTraceQueryRsp checkTraceInfo(ApiCheckTraceInfoDto checkTraceInfoDto) {
-        return ClientParamService.getInstance(ClientParamEnum.PRD.name()).checkTraceInfo(checkTraceInfoDto);
+        String state = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
+                DataDictionaryEnum.SENDER_ADDRESS.getType(),
+                DataDictionaryEnum.SENDER_ADDRESS.getCode()
+        ).getValue();
+        if(state.equals("0")){
+            return ClientParamService.getInstance(ClientParamEnum.TEST.name()).checkTraceInfo(checkTraceInfoDto);
+        }else if(state.equals("1")){
+            return ClientParamService.getInstance(ClientParamEnum.PRD.name()).checkTraceInfo(checkTraceInfoDto);
+        }else{
+            throw new FebsException("获取快递信息接口,系统配置异常");
+        }
     }
 }

--
Gitblit v1.9.1