From a0705c0be326a28922a30daec022e120f754fff7 Mon Sep 17 00:00:00 2001
From: 1098226878 <1098226878@qq.com>
Date: 星期四, 26 八月 2021 12:30:23 +0800
Subject: [PATCH] 优化代码

---
 service-front/src/main/java/com/java110/front/controller/wechat/WechatGatewayController.java |   73 ++++++++++++++++++++++++++++++++++++
 1 files changed, 72 insertions(+), 1 deletions(-)

diff --git a/service-front/src/main/java/com/java110/front/controller/wechat/WechatGatewayController.java b/service-front/src/main/java/com/java110/front/controller/wechat/WechatGatewayController.java
old mode 100644
new mode 100755
index 1d80f0a..908e255
--- a/service-front/src/main/java/com/java110/front/controller/wechat/WechatGatewayController.java
+++ b/service-front/src/main/java/com/java110/front/controller/wechat/WechatGatewayController.java
@@ -1,3 +1,18 @@
+/*
+ * Copyright 2017-2020 鍚村鏂� and java110 team.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 package com.java110.front.controller.wechat;
 
 
@@ -6,6 +21,9 @@
 import com.java110.core.context.IPageData;
 import com.java110.core.context.PageData;
 import com.java110.core.factory.AuthenticationFactory;
+import com.java110.core.factory.WechatFactory;
+import com.java110.dto.smallWeChat.SmallWeChatDto;
+import com.java110.dto.smallWechatAttr.SmallWechatAttrDto;
 import com.java110.front.smo.wechatGateway.IWechatGatewaySMO;
 import com.java110.utils.cache.MappingCache;
 import com.java110.utils.constant.WechatConstant;
@@ -25,6 +43,7 @@
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.Arrays;
+import java.util.List;
 
 /**
  * @ClassName WechatController
@@ -57,6 +76,13 @@
         String timestamp = request.getParameter("timestamp");
         String nonce = request.getParameter("nonce");
         String echostr = request.getParameter("echostr");
+        String wId = request.getParameter(WechatConstant.PAGE_WECHAT_APP_ID);
+        String java110AppId = request.getParameter("java110AppId");
+        logger.debug("璇锋眰鍙傛暟" + JSONObject.toJSONString(request.getParameterMap()));
+        if (!StringUtil.isEmpty(wId)) {
+            wId = wId.replace(" ", "+");
+            token = getToken(java110AppId, wId);
+        }
         String responseStr = "";
         logger.debug("token = " + token + "||||" + "signature = " + signature + "|||" + "timestamp = "
                 + timestamp + "|||" + "nonce = " + nonce + "|||" + "echostr = " + echostr);
@@ -99,6 +125,12 @@
         String openId = request.getParameter("openid");
         String java110AppId = request.getParameter("java110AppId");
         String responseStr = "";
+        String wId = request.getParameter(WechatConstant.PAGE_WECHAT_APP_ID);
+        logger.debug("璇锋眰鍙傛暟" + request.getParameterMap().toString());
+        if (!StringUtil.isEmpty(wId)) {
+            wId = wId.replace(" ", "+");
+            token = getToken(java110AppId, wId);
+        }
         ResponseEntity<String> responseEntity = null;
         logger.debug("token = " + token + "||||" + "signature = " + signature + "|||" + "timestamp = "
                 + timestamp + "|||" + "nonce = " + nonce + "|||| param = " + param + "|||| openId= " + openId);
@@ -138,7 +170,7 @@
             IPageData pd = PageData.newInstance().builder("-1", "", "", paramIn.toJSONString(),
                     "", "", "", "",
                     java110AppId);
-            responseEntity = wechatGatewaySMOImpl.gateway(pd);
+            responseEntity = wechatGatewaySMOImpl.gateway(pd,wId);
 
         } catch (Exception e) {
             // TODO Auto-generated catch block
@@ -149,4 +181,43 @@
 
         return responseEntity;
     }
+
+    private SmallWeChatDto getSmallWechat(String java110AppId, String appId) {
+        IPageData pd = PageData.newInstance().builder("-1", "", "", "",
+                "", "", "", "",
+                java110AppId);
+        SmallWeChatDto smallWeChatDto = new SmallWeChatDto();
+        smallWeChatDto.setAppId(appId);
+        smallWeChatDto = wechatGatewaySMOImpl.getSmallWechat(pd, smallWeChatDto);
+
+        return smallWeChatDto;
+
+    }
+
+    /**
+     * 鑾峰彇token
+     *
+     * @param java110AppId
+     * @return
+     */
+    private String getToken(String java110AppId, String wId) {
+        String appId = WechatFactory.getAppId(wId);
+        SmallWeChatDto smallWeChatDto = getSmallWechat(java110AppId, appId);
+        String token = MappingCache.getValue(WechatConstant.WECHAT_DOMAIN, WechatConstant.TOKEN);
+        if (smallWeChatDto == null) {
+            return token;
+        }
+        List<SmallWechatAttrDto> smallWechatAttrDtos = smallWeChatDto.getSmallWechatAttrs();
+
+        if (smallWechatAttrDtos == null) {
+            return token;
+        }
+        for (SmallWechatAttrDto smallWechatAttrDto : smallWechatAttrDtos) {
+            if (SmallWechatAttrDto.SPEC_CD_TOKEN.equals(smallWechatAttrDto.getSpecCd())) {
+                token = smallWechatAttrDto.getValue();
+            }
+        }
+
+        return token;
+    }
 }

--
Gitblit v1.8.0