From dfdd615c4cab8c142c76caebc70bdf16f4e12b10 Mon Sep 17 00:00:00 2001
From: CZT <czt18638530771@163.com>
Date: 星期三, 13 九月 2023 10:04:21 +0800
Subject: [PATCH] 优化上海接口指令时效问题

---
 src/main/java/com/fzzy/push/whhpjl/WhjlApiRemoteService.java      |   19 +++++++--
 src/main/java/com/fzzy/api/utils/RedisConst.java                  |    5 ++
 src/main/java/com/fzzy/push/sh2023/SH2023OrderApiServiceImpl.java |    9 ++++
 src/main/java/com/fzzy/api/data/ApiParam.java                     |    3 -
 src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java    |   43 ++++++++++++++-------
 5 files changed, 56 insertions(+), 23 deletions(-)

diff --git a/src/main/java/com/fzzy/api/data/ApiParam.java b/src/main/java/com/fzzy/api/data/ApiParam.java
index cc31437..cd6a6b1 100644
--- a/src/main/java/com/fzzy/api/data/ApiParam.java
+++ b/src/main/java/com/fzzy/api/data/ApiParam.java
@@ -36,9 +36,6 @@
 
     private String bizId;
 
-    //鎸囦护ID锛岀敤浜庝笂绾у钩鍙板彂閫佹寚浠よ幏鍙栨暟鎹殑鎯呭喌
-    private String orderid;
-
 
     public ApiParam() {
         super();
diff --git a/src/main/java/com/fzzy/api/utils/RedisConst.java b/src/main/java/com/fzzy/api/utils/RedisConst.java
index 1abd9aa..5c55c4f 100644
--- a/src/main/java/com/fzzy/api/utils/RedisConst.java
+++ b/src/main/java/com/fzzy/api/utils/RedisConst.java
@@ -24,6 +24,11 @@
      */
     public static String KYE_TOKEN = "TOKEN";
 
+    /**
+     * 鎸囦护ID-ORDER
+     */
+    public static String KYE_ORDER = "ORDER";
+
 
 
 
diff --git a/src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java b/src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java
index 606d808..0dc1763 100644
--- a/src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java
+++ b/src/main/java/com/fzzy/push/sh2023/SH2023ApiRemoteService.java
@@ -106,13 +106,24 @@
                 return responseDto;
             }
 
+            //鑾峰彇鎸囦护id
+            String key = RedisConst.buildKey(RedisConst.KYE_ORDER, conf.getKqdm());
+            String orderId = (String)redisUtil.get(key);
+            if(StringUtils.isEmpty(orderId)){
+                ResponseDto responseDto = new ResponseDto(99, "鎸囦护id澶辨晥");
+                apiLog.setStatus(99);
+                apiLog.setResult("鎸囦护id澶辨晥");
+                apiLogRep.save(apiLog);
+                return responseDto;
+            }
+
             //灏佽鎺ㄩ�佹暟鎹�
             SH2023ReqDto reqData = new SH2023ReqDto();
             reqData.setId(ContextUtil.getUUID());
             //鑾峰彇韬唤ID锛屽嵆琛屾斂鍖哄垝鐮�
             reqData.setUid(conf.getUserName());
             //鎸囦护id
-            reqData.setOrderid(param.getOrderid());
+            reqData.setOrderid(orderId);
             //韬唤绛惧悕锛屼娇鐢ㄨ嚜鏈塕SA绉侀挜杩涜鍔犲瘑(鍦板尯琛屾斂鍖哄垝浠g爜_褰撳ぉ鏃ユ湡)
             reqData.setAccess_token(RSAUtils.encryptData(reqData.getUid() + "_" + DateFormatUtils.format(new Date(), "yyyy-MM-dd"), conf.getPassword()));
             //鏁版嵁鎬绘潯鏁�
@@ -182,27 +193,31 @@
                 return responseDto;
             }
 
+            //鑾峰彇鎸囦护id
+            String key = RedisConst.buildKey(RedisConst.KYE_ORDER, conf.getKqdm());
+            String orderId = (String)redisUtil.get(key);
+            if(StringUtils.isEmpty(orderId)){
+                ResponseDto responseDto = new ResponseDto(99, "鎸囦护id澶辨晥");
+                apiLog.setStatus(99);
+                apiLog.setResult("鎸囦护id澶辨晥");
+                apiLogRep.save(apiLog);
+                return responseDto;
+            }
+
             //灏佽鎺ㄩ�佹暟鎹�
             SH2023ReqDto reqData = new SH2023ReqDto();
             reqData.setId(ContextUtil.getUUID());
             //鑾峰彇韬唤ID锛屽嵆琛屾斂鍖哄垝鐮�
-            if (null == api1102List || api1102List.isEmpty()) {
-                ResponseDto responseDto = new ResponseDto(99, "娌℃湁鑾峰彇鍒拌韩浠絀D");
-                apiLog.setStatus(99);
-                apiLog.setResult("娌℃湁鑾峰彇鍒拌韩浠絀D");
-                apiLogRep.save(apiLog);
-                return responseDto;
-            }
-            reqData.setUid(api1102List.get(0).getXzqhdm());
+            reqData.setUid(conf.getUserName());
             //鎸囦护id
-            reqData.setOrderid(param.getOrderid());
-            //韬唤绛惧悕锛屽鍦板尯琛屾斂鍖哄垝浠g爜_褰撳ぉ鏃ユ湡杩涜MD5绠楁硶绛惧悕
-            reqData.setAccess_token(RSAUtils.encryptData(reqData.getUid() + "_" + DateFormatUtils.format(new Date(), "yyyy-MM-dd"), conf.getPublicKey()));
+            reqData.setOrderid(orderId);
+            //韬唤绛惧悕锛屼娇鐢ㄨ嚜鏈塕SA绉侀挜杩涜鍔犲瘑(鍦板尯琛屾斂鍖哄垝浠g爜_褰撳ぉ鏃ユ湡)
+            reqData.setAccess_token(RSAUtils.encryptData(reqData.getUid() + "_" + DateFormatUtils.format(new Date(), "yyyy-MM-dd"), conf.getPassword()));
             //鏁版嵁鎬绘潯鏁�
             List<Object> list = (List<Object>) data;
             reqData.setDatalength(list.size());
-            //鏁版嵁杩涜SM4鍔犲瘑
-            reqData.setData(jsonData);
+            //浣跨敤鍖虹骇骞冲彴鍏挜瀵规暟鎹繘琛孯SA鍔犲瘑
+            reqData.setData(RSAUtils.encrypt(jsonData, conf.getPublicKey()));
             //鎽樿锛屾暟鎹富浣撶殑MD5鍊�
             reqData.setDigst(MyMD5Util.encrypt(jsonData));
 
diff --git a/src/main/java/com/fzzy/push/sh2023/SH2023OrderApiServiceImpl.java b/src/main/java/com/fzzy/push/sh2023/SH2023OrderApiServiceImpl.java
index eea3602..5b662a5 100644
--- a/src/main/java/com/fzzy/push/sh2023/SH2023OrderApiServiceImpl.java
+++ b/src/main/java/com/fzzy/push/sh2023/SH2023OrderApiServiceImpl.java
@@ -4,6 +4,8 @@
 import com.fzzy.api.data.ApiParam;
 import com.fzzy.api.data.PushProtocol;
 import com.fzzy.api.entity.ApiConfs;
+import com.fzzy.api.utils.RedisConst;
+import com.fzzy.api.utils.RedisUtil;
 import com.fzzy.order.OrderApiService;
 import com.fzzy.order.data.OrderConstant;
 import com.fzzy.order.data.OrderData;
@@ -22,6 +24,8 @@
 @Slf4j
 public class SH2023OrderApiServiceImpl implements OrderApiService {
 
+    @Autowired
+    private RedisUtil redisUtil;
     @Autowired
     private SH2023ApiRemoteService apiRemoteService;
     @Autowired
@@ -51,13 +55,16 @@
             return;
         }
 
+        //鎸囦护瀛樺叆缂撳瓨锛屾椂鏁�24灏忔椂
+        String key = RedisConst.buildKey(RedisConst.KYE_ORDER, conf.getKqdm());
+        redisUtil.set(key, orderid, 59 * 60 * 24);
+
         ApiParam param = new ApiParam();
         param.setPushProtocol(conf.getPushProtocol());
         param.setKqdm(conf.getKqdm());
         param.setStart(DateUtils.parseDate(req.getStarttime(), new String[]{"yyyy-MM-dd HH:mm:ss"}));
         param.setEnd(DateUtils.parseDate(req.getEndtime(), new String[]{"yyyy-MM-dd HH:mm:ss"}));
         param.setDeptId(conf.getDeptId());
-        param.setOrderid(orderid);
 
         String[] interfaces = ids.split(",");
         for (String inteId : interfaces) {
diff --git a/src/main/java/com/fzzy/push/whhpjl/WhjlApiRemoteService.java b/src/main/java/com/fzzy/push/whhpjl/WhjlApiRemoteService.java
index 157f664..d5b1b13 100644
--- a/src/main/java/com/fzzy/push/whhpjl/WhjlApiRemoteService.java
+++ b/src/main/java/com/fzzy/push/whhpjl/WhjlApiRemoteService.java
@@ -8,10 +8,7 @@
 import com.fzzy.api.service.ApiCommonService;
 import com.fzzy.api.service.ApiRemoteService;
 import com.fzzy.api.service.ApiTriggerService;
-import com.fzzy.api.utils.AESUtils;
-import com.fzzy.api.utils.ContextUtil;
-import com.fzzy.api.utils.MyMD5Util;
-import com.fzzy.api.utils.RedisUtil;
+import com.fzzy.api.utils.*;
 import com.fzzy.api.view.repository.*;
 import com.fzzy.push.whhpjl.dto.WhjlReqDto;
 import com.fzzy.push.whhpjl.dto.WhjlRespDto;
@@ -88,12 +85,24 @@
                 apiLogRep.save(apiLog);
                 return responseDto;
             }
+
+            //鑾峰彇鎸囦护id
+            String key = RedisConst.buildKey(RedisConst.KYE_ORDER, conf.getKqdm());
+            String orderId = (String)redisUtil.get(key);
+            if(StringUtils.isEmpty(orderId)){
+                ResponseDto responseDto = new ResponseDto(99, "鎸囦护id澶辨晥");
+                apiLog.setStatus(99);
+                apiLog.setResult("鎸囦护id澶辨晥");
+                apiLogRep.save(apiLog);
+                return responseDto;
+            }
+
             //灏佽鎺ㄩ�佹暟鎹�
             WhjlReqDto reqData = new WhjlReqDto();
             reqData.setId(ContextUtil.getUUID());
             reqData.setUid(conf.getKqdm());
             //鎸囦护ID
-            reqData.setOrderid(param.getOrderid());
+            reqData.setOrderid(orderId);
             reqData.setAppcode(conf.getUserName());
             reqData.setTimestamp(ContextUtil.getCurTimeMillis());
             List<Object> list  = (List<Object>)data;

--
Gitblit v1.9.3