From 4ee86eb0f4984bf3ede3196ad8c5fe95e8c5a504 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期三, 15 六月 2022 19:05:02 +0800
Subject: [PATCH] 优化代码

---
 service-api/src/main/java/com/java110/api/smo/payment/adapt/wechatPay/WechatOweFeeToNotifyAdapt.java |   88 +++++++++++++++++++-------------------------
 1 files changed, 38 insertions(+), 50 deletions(-)

diff --git a/service-api/src/main/java/com/java110/api/smo/payment/adapt/wechatPay/WechatOweFeeToNotifyAdapt.java b/service-api/src/main/java/com/java110/api/smo/payment/adapt/wechatPay/WechatOweFeeToNotifyAdapt.java
index fd11b4d..db5a723 100644
--- a/service-api/src/main/java/com/java110/api/smo/payment/adapt/wechatPay/WechatOweFeeToNotifyAdapt.java
+++ b/service-api/src/main/java/com/java110/api/smo/payment/adapt/wechatPay/WechatOweFeeToNotifyAdapt.java
@@ -17,24 +17,25 @@
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.java110.api.properties.WechatAuthProperties;
+import com.java110.api.smo.DefaultAbstractComponentSMO;
+import com.java110.api.smo.payment.adapt.IOweFeeToNotifyAdapt;
 import com.java110.core.factory.WechatFactory;
+import com.java110.core.log.LoggerFactory;
 import com.java110.dto.fee.FeeDto;
 import com.java110.dto.smallWeChat.SmallWeChatDto;
-import com.java110.api.properties.WechatAuthProperties;
-import com.java110.api.smo.payment.adapt.IOweFeeToNotifyAdapt;
 import com.java110.utils.cache.CommonCache;
 import com.java110.utils.constant.CommonConstant;
-import com.java110.utils.constant.ServiceConstant;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.PayUtil;
 import com.java110.utils.util.StringUtil;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.*;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
-import org.springframework.web.client.HttpStatusCodeException;
 import org.springframework.web.client.RestTemplate;
 
 import java.util.*;
@@ -47,7 +48,7 @@
  */
 
 @Component(value = "wechatOweFeeToNotifyAdapt")
-public class WechatOweFeeToNotifyAdapt implements IOweFeeToNotifyAdapt {
+public class WechatOweFeeToNotifyAdapt extends DefaultAbstractComponentSMO implements IOweFeeToNotifyAdapt {
 
     private static final Logger logger = LoggerFactory.getLogger(WechatOweFeeToNotifyAdapt.class);
 
@@ -66,7 +67,7 @@
      * @return
      * @throws Exception
      */
-    public String confirmPayFee(String param,String wId) {
+    public String confirmPayFee(String param, String wId) {
         String resXml = "";
         try {
             Map<String, Object> map = PayUtil.getMapFromXML(param);
@@ -103,8 +104,16 @@
 
 
     public int confirmPayFee(Map<String, Object> map) {
-        String wId = map.get("wId").toString();
-        wId = wId.replace(" ", "+");
+        String appId;
+        //鍏煎 娓竵浜ゆ槗鏃� 鎴栬�呭井淇℃湁鏃朵笉浼氭帀鍙傛暟鐨勯棶棰�
+        if (map.containsKey("wId")) {
+            String wId = map.get("wId").toString();
+            wId = wId.replace(" ", "+");
+            appId = WechatFactory.getAppId(wId);
+        } else {
+            appId = map.get("appid").toString();
+        }
+
         SortedMap<String, String> paramMap = new TreeMap<String, String>();
         ResponseEntity<String> responseEntity = null;
         for (String key : map.keySet()) {
@@ -113,7 +122,7 @@
             }
             paramMap.put(key, map.get(key).toString());
         }
-        String appId = WechatFactory.getAppId(wId);
+
         SmallWeChatDto smallWeChatDto = getSmallWechat(appId);
 
         if (smallWeChatDto == null) { //浠庨厤缃枃浠朵腑鑾峰彇 灏忕▼搴忛厤缃俊鎭�
@@ -140,8 +149,8 @@
         JSONObject paramIn = JSONObject.parseObject(order);
         paramIn.put("oId", orderId);
         freshFees(paramIn);
-        String url = ServiceConstant.SERVICE_API_URL + "/api/fee.payOweFee";
-        responseEntity = this.callCenterService(restTemplate, "-1", paramIn.toJSONString(), url, HttpMethod.POST);
+        String url = "fee.payOweFee";
+        responseEntity = this.callCenterService(getHeaders("-1"), paramIn.toJSONString(), url, HttpMethod.POST);
 
         if (responseEntity.getStatusCode() != HttpStatus.OK) {
             return 0;
@@ -156,55 +165,34 @@
 
         JSONArray fees = paramIn.getJSONArray("fees");
         JSONObject fee = null;
-        for(int feeIndex = 0; feeIndex < fees.size();feeIndex ++){
+        for (int feeIndex = 0; feeIndex < fees.size(); feeIndex++) {
             fee = fees.getJSONObject(feeIndex);
-            if(fee.containsKey("deadlineTime")){
-                fee.put("startTime",fee.getString("endTime"));
-                fee.put("endTime",fee.getString("deadlineTime"));
-                fee.put("receivedAmount",fee.getString("feePrice"));
-                fee.put("state","");
+            if (fee.containsKey("deadlineTime")) {
+                fee.put("startTime", fee.getString("endTime"));
+                fee.put("endTime", fee.getString("deadlineTime"));
+                fee.put("receivedAmount", fee.getString("feePrice"));
+                fee.put("state", "");
             }
         }
     }
 
 
-    /**
-     * 璋冪敤涓績鏈嶅姟
-     *
-     * @return
-     */
-    protected ResponseEntity<String> callCenterService(RestTemplate restTemplate, String userId, String param, String url, HttpMethod httpMethod) {
-
-        ResponseEntity<String> responseEntity = null;
-        HttpHeaders header = new HttpHeaders();
-        header.add(CommonConstant.HTTP_APP_ID.toLowerCase(), APP_ID);
-        header.add(CommonConstant.HTTP_USER_ID.toLowerCase(), userId);
-        header.add(CommonConstant.HTTP_TRANSACTION_ID.toLowerCase(), UUID.randomUUID().toString());
-        header.add(CommonConstant.HTTP_REQ_TIME.toLowerCase(), DateUtil.getDefaultFormateTimeString(new Date()));
-        header.add(CommonConstant.HTTP_SIGN.toLowerCase(), "");
-        header.add("Content-Type", "application/json");
-        HttpEntity<String> httpEntity = new HttpEntity<String>(param, header);
-        //logger.debug("璇锋眰涓績鏈嶅姟淇℃伅锛寋}", httpEntity);
-        try {
-            responseEntity = restTemplate.exchange(url, httpMethod, httpEntity, String.class);
-        } catch (HttpStatusCodeException e) { //杩欓噷spring 妗嗘灦 鍦�4XX 鎴� 5XX 鏃舵姏鍑� HttpServerErrorException 寮傚父锛岄渶瑕侀噸鏂板皝瑁呬竴涓�
-            responseEntity = new ResponseEntity<String>(e.getResponseBodyAsString(), e.getStatusCode());
-        } catch (Exception e) {
-            responseEntity = new ResponseEntity<String>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
-        } finally {
-            logger.debug("璇锋眰鍦板潃涓�,{} 璇锋眰涓績鏈嶅姟淇℃伅锛寋},涓績鏈嶅姟杩斿洖淇℃伅锛寋}", url, httpEntity, responseEntity);
-        }
-
-        return responseEntity;
+    private Map<String, String> getHeaders(String userId) {
+        Map<String, String> headers = new HashMap<>();
+        headers.put(CommonConstant.HTTP_APP_ID.toLowerCase(), APP_ID);
+        headers.put(CommonConstant.HTTP_USER_ID.toLowerCase(), userId);
+        headers.put(CommonConstant.HTTP_TRANSACTION_ID.toLowerCase(), UUID.randomUUID().toString());
+        headers.put(CommonConstant.HTTP_REQ_TIME.toLowerCase(), DateUtil.getDefaultFormateTimeString(new Date()));
+        headers.put(CommonConstant.HTTP_SIGN.toLowerCase(), "");
+        return headers;
     }
-
 
     private SmallWeChatDto getSmallWechat(String appId) {
 
         ResponseEntity responseEntity = null;
 
-        responseEntity = this.callCenterService(restTemplate, "-1", "",
-                ServiceConstant.SERVICE_API_URL + "/api/smallWeChat.listSmallWeChats?appId="
+        responseEntity = this.callCenterService(getHeaders("-1"), "",
+                "smallWeChat.listSmallWeChats?appId="
                         + appId + "&page=1&row=1", HttpMethod.GET);
 
         if (responseEntity.getStatusCode() != HttpStatus.OK) {

--
Gitblit v1.8.0