From 2ce9e071ed8035853bd9d000e8326f3cdcc267c9 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期六, 19 三月 2022 11:21:30 +0800
Subject: [PATCH] 优化富友接口

---
 service-api/src/main/java/com/java110/api/smo/payment/impl/ToPayTempCarFeeSMOImpl.java |   90 +++++++++++++++++++++++++++++++++-----------
 1 files changed, 67 insertions(+), 23 deletions(-)

diff --git a/service-api/src/main/java/com/java110/api/smo/payment/impl/ToPayTempCarFeeSMOImpl.java b/service-api/src/main/java/com/java110/api/smo/payment/impl/ToPayTempCarFeeSMOImpl.java
index 3cbc81b..c5cbafb 100644
--- a/service-api/src/main/java/com/java110/api/smo/payment/impl/ToPayTempCarFeeSMOImpl.java
+++ b/service-api/src/main/java/com/java110/api/smo/payment/impl/ToPayTempCarFeeSMOImpl.java
@@ -9,20 +9,23 @@
 import com.java110.core.context.IPageData;
 import com.java110.core.context.PageData;
 import com.java110.core.factory.GenerateCodeFactory;
-import com.java110.dto.app.AppDto;
 import com.java110.dto.fee.FeeDto;
-import com.java110.dto.owner.OwnerAppUserDto;
+import com.java110.dto.ownerCarOpenUser.OwnerCarOpenUserDto;
 import com.java110.dto.smallWeChat.SmallWeChatDto;
+import com.java110.intf.user.IOwnerCarOpenUserV1InnerServiceSMO;
+import com.java110.po.ownerCarOpenUser.OwnerCarOpenUserPo;
 import com.java110.utils.cache.CommonCache;
 import com.java110.utils.cache.MappingCache;
+import com.java110.utils.constant.CommonConstant;
 import com.java110.utils.constant.WechatConstant;
 import com.java110.utils.factory.ApplicationContextFactory;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.StringUtil;
+import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import com.java110.core.log.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.HttpStatus;
@@ -30,11 +33,9 @@
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
 
-import java.math.BigDecimal;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 
-@Service("toPayOweFeeSMOImpl")
+@Service("toPayTempCarFeeSMOImpl")
 public class ToPayTempCarFeeSMOImpl extends AppAbstractComponentSMO implements IToPayTempCarFeeSMO {
     private static final Logger logger = LoggerFactory.getLogger(ToPayTempCarFeeSMOImpl.class);
 
@@ -48,6 +49,9 @@
 
     @Autowired
     private WechatAuthProperties wechatAuthProperties;
+
+    @Autowired
+    private IOwnerCarOpenUserV1InnerServiceSMO ownerCarOpenUserV1InnerServiceSMOImpl;
 
     @Override
     public ResponseEntity<String> toPay(IPageData pd) {
@@ -63,6 +67,7 @@
         Assert.jsonObjectHaveKey(paramIn, "openId", "璇锋眰鎶ユ枃涓湭鍖呭惈openId鑺傜偣");
         Assert.jsonObjectHaveKey(paramIn, "paId", "璇锋眰鎶ユ枃涓湭鍖呭惈paId鑺傜偣");
         Assert.jsonObjectHaveKey(paramIn, "inoutId", "璇锋眰鎶ユ枃涓湭鍖呭惈inoutId鑺傜偣");
+        Assert.jsonObjectHaveKey(paramIn, "couponList", "璇锋眰鎶ユ枃涓湭鍖呭惈couponList鑺傜偣");
 
     }
 
@@ -75,16 +80,21 @@
 
         if (smallWeChatDto == null) { //浠庨厤缃枃浠朵腑鑾峰彇 灏忕▼搴忛厤缃俊鎭�
             smallWeChatDto = new SmallWeChatDto();
-            smallWeChatDto.setAppId(wechatAuthProperties.getAppId());
-            smallWeChatDto.setAppSecret(wechatAuthProperties.getSecret());
+            smallWeChatDto.setAppId(wechatAuthProperties.getWechatAppId());
+            smallWeChatDto.setAppSecret(wechatAuthProperties.getWechatAppSecret());
             smallWeChatDto.setMchId(wechatAuthProperties.getMchId());
             smallWeChatDto.setPayPassword(wechatAuthProperties.getKey());
         }
-
-
+        JSONArray couponList = paramIn.getJSONArray("couponList");
+        List<String> couponIds = new ArrayList<String>();
+        if (couponList != null && couponList.size() > 0) {
+            for (int couponIndex = 0; couponIndex < couponList.size(); couponIndex++) {
+                couponIds.add(couponList.getJSONObject(couponIndex).getString("couponId"));
+            }
+        }
         //鏌ヨ鐢ㄦ埛ID
         paramIn.put("userId", pd.getUserId());
-        String url = "/tempCarFee.getTempCarFeeOrder?paId=" + paramIn.getString("paId") + "&carNum=" + paramIn.getString("carNum");
+        String url = "tempCarFee.queryTempCarFeeOrder?paId=" + paramIn.getString("paId") + "&carNum=" + paramIn.getString("carNum")+"&couponIds="+StringUtils.join(couponIds,",");
         responseEntity = super.callCenterService(restTemplate, pd, "", url, HttpMethod.GET);
 
         if (responseEntity.getStatusCode() != HttpStatus.OK) {
@@ -96,8 +106,25 @@
         }
         JSONObject fee = orderInfo.getJSONObject("data");
 
-        double money = fee.getDouble("payCharge");
-        String orderId = orderInfo.getString("oId");
+        double money = fee.getDouble("receivedAmount");
+
+        String orderId = fee.getString("oId");
+        //闇�瑕佸垽鏂噾棰濇槸鍚� == 0 绛変簬0 鐩存帴鎺夌即璐归�氱煡鎺ュ彛
+        if (money <= 0) {
+            JSONObject paramOut = new JSONObject();
+            paramOut.put("oId", orderId);
+            String urlOut = "tempCarFee.notifyTempCarFeeOrder";
+            responseEntity = this.callCenterService(getHeaders("-1", pd.getAppId()), paramOut.toJSONString(), urlOut, HttpMethod.POST);
+            JSONObject param = new JSONObject();
+            if (responseEntity.getStatusCode() != HttpStatus.OK) {
+                param.put("code", "101");
+                param.put("msg", "鎵h垂涓�0鍥炶皟澶辫触");
+                return new ResponseEntity(JSONObject.toJSONString(param), HttpStatus.OK);
+            }
+            param.put("code", "100");
+            param.put("msg", "鎵h垂涓�0鍥炶皟鎴愬姛");
+            return new ResponseEntity(JSONObject.toJSONString(param), HttpStatus.OK);
+        }
         String openId = paramIn.getString("openId");
         String payAdapt = MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.PAY_ADAPT);
         payAdapt = StringUtil.isEmpty(payAdapt) ? DEFAULT_PAY_ADAPT : payAdapt;
@@ -109,18 +136,35 @@
         if (!"0".equals(result.get("code"))) {
             return responseEntity;
         }
-        JSONObject saveFees = new JSONObject();
-        saveFees.put("orderId", paramIn.getString("inoutId"));
-        saveFees.put("carNum", paramIn.getString("carNum"));
-        saveFees.put("amount", money);
-        saveFees.put("paId", paramIn.getString("paId"));
-        saveFees.put("payTime", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
-        saveFees.put("payType", "2");
-        CommonCache.setValue(FeeDto.REDIS_PAY_TEMP_CAR_FEE + orderId, saveFees.toJSONString(), CommonCache.PAY_DEFAULT_EXPIRE_TIME);
+//        JSONObject saveFees = new JSONObject();
+//        saveFees.put("orderId", paramIn.getString("inoutId"));
+//        saveFees.put("carNum", paramIn.getString("carNum"));
+//        saveFees.put("amount", money);
+//        saveFees.put("paId", paramIn.getString("paId"));
+//        saveFees.put("payTime", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+//        saveFees.put("payType", "2");
+//        CommonCache.setValue(FeeDto.REDIS_PAY_TEMP_CAR_FEE + orderId, saveFees.toJSONString(), CommonCache.PAY_DEFAULT_EXPIRE_TIME);
+        //璁板綍openId 鍜岃溅杈嗗叧绯� 浠ュ厤姣忔 杈撳叆 杞︾墝鍙烽夯鐑�
+        OwnerCarOpenUserPo ownerCarOpenUserPo = new OwnerCarOpenUserPo();
+        ownerCarOpenUserPo.setCarNum(paramIn.getString("carNum"));
+        ownerCarOpenUserPo.setNickname("鏈幏鍙�");
+        ownerCarOpenUserPo.setHeadimgurl("涓鸿幏鍙�");
+        ownerCarOpenUserPo.setOpenId(openId);
+        ownerCarOpenUserPo.setOpenType(OwnerCarOpenUserDto.OPEN_TYPE_WECHAT);
+        ownerCarOpenUserPo.setOpenUserId(GenerateCodeFactory.getGeneratorId("10"));
+        ownerCarOpenUserV1InnerServiceSMOImpl.saveOwnerCarOpenUser(ownerCarOpenUserPo);
         return responseEntity;
     }
 
-
+    private Map<String, String> getHeaders(String userId,String APP_ID) {
+        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(IPageData pd, JSONObject paramIn) {
 
         ResponseEntity responseEntity = null;

--
Gitblit v1.8.0