From bbda2ee1af4e86d76f93e00386d77efb56c60d5f Mon Sep 17 00:00:00 2001
From: puhanshu <a9236326>
Date: 星期六, 23 七月 2022 15:42:06 +0800
Subject: [PATCH] bug修改

---
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxXCXTempSend.java |   91 ++++++++++++++++++++++++++++++++-------------
 1 files changed, 65 insertions(+), 26 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxXCXTempSend.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxXCXTempSend.java
index 0c45c92..c19972e 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxXCXTempSend.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxXCXTempSend.java
@@ -7,11 +7,15 @@
 import java.util.Map;
 
 import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.user.SysAppConfigVO;
+import com.panzhihua.common.service.user.UserService;
 import org.apache.commons.fileupload.FileItem;
 import org.apache.commons.fileupload.FileItemFactory;
 import org.apache.commons.fileupload.disk.DiskFileItemFactory;
 import org.apache.http.entity.ContentType;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.data.redis.core.ValueOperations;
 import org.springframework.stereotype.Component;
@@ -24,18 +28,23 @@
 
 import lombok.extern.slf4j.Slf4j;
 
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+
 @Slf4j
 @Component
 public class WxXCXTempSend extends BaseController {
 
-    public static final String APP_ID = "wx0cef797390444b75";
-    private static final String APP_SECRET = "c7ea9aaa7e391a487e8a5b9ba61045d1";
+    public static final String APP_ID = "wx118de8a734d269f0";
+    private static final String APP_SECRET = "0264342daefde5cd70a6adada09ee5b1";
     private static String ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential";
     private static String APP_IMAGE_URL = "https://www.psciio.com//idcard/8fa82cfba258498eab2fa818220fb592.jpg";
     private static String APP_IMAGE_NAME = "5.jpg";
-    @Autowired
-    private StringRedisTemplate redisTemplate;
+    @Resource
+    private RedisTemplate redisTemplate;
+    UserService userService;
 
+    private static WxXCXTempSend wxXCXTempSend;
     /**
      * url转变为 MultipartFile对象
      *
@@ -83,34 +92,58 @@
      * @return
      */
     public String getAccessToken() throws Exception {
-        // String accessToken = ;
-        // Boolean aBoolean = redisTemplate.hasKey(SecurityConstants.APPLETS_ACCESS_TOKEN);
-        // ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
-        // if(aBoolean){
-        // Long expireTime = Long.parseLong(valueOperations.get(SecurityConstants.APPLETS_ACCESS_TOKEN_TIME));
-        // if(expireTime <= System.currentTimeMillis()){
-        // redisTemplate.delete(SecurityConstants.APPLETS_ACCESS_TOKEN);//如果过期则删除
-        // redisTemplate.delete(SecurityConstants.APPLETS_ACCESS_TOKEN_TIME);//如果过期则删除
-        //
-        // valueOperations.set(SecurityConstants.APPLETS_ACCESS_TOKEN, accessToken);
-        // valueOperations.set(SecurityConstants.APPLETS_ACCESS_TOKEN_TIME, System.currentTimeMillis() + 1100000 + "");
-        // }else{
-        // accessToken = valueOperations.get(SecurityConstants.APPLETS_ACCESS_TOKEN);
-        // }
-        // }else{
-        // accessToken = getAppAccessToken();
-        // valueOperations.set(SecurityConstants.APPLETS_ACCESS_TOKEN, accessToken);
-        // valueOperations.set(SecurityConstants.APPLETS_ACCESS_TOKEN_TIME, System.currentTimeMillis() + 1100000 + "");
-        // }
-        return getAppAccessToken();
+         String appid=this.getAppId();
+         String accessToken = "";
+         Boolean aBoolean = wxXCXTempSend.redisTemplate.hasKey(SecurityConstants.APPLETS_ACCESS_TOKEN+"_"+appid);
+         ValueOperations<String, String> valueOperations = wxXCXTempSend.redisTemplate.opsForValue();
+         if(aBoolean){
+         Long expireTime = Long.parseLong(valueOperations.get(SecurityConstants.APPLETS_ACCESS_TOKEN_TIME+"_"+appid));
+         if(expireTime <= System.currentTimeMillis()){
+             wxXCXTempSend.redisTemplate.delete(SecurityConstants.APPLETS_ACCESS_TOKEN+"_"+appid);//如果过期则删除
+             wxXCXTempSend.redisTemplate.delete(SecurityConstants.APPLETS_ACCESS_TOKEN_TIME+"_"+appid);//如果过期则删除
+
+         valueOperations.set(SecurityConstants.APPLETS_ACCESS_TOKEN+"_"+appid, getAppAccessToken(appid));
+         valueOperations.set(SecurityConstants.APPLETS_ACCESS_TOKEN_TIME+"_"+appid, System.currentTimeMillis() + 1100000 + "");
+         }else{
+         accessToken = valueOperations.get(SecurityConstants.APPLETS_ACCESS_TOKEN+"_"+appid);
+         }
+         }else{
+         accessToken = getAppAccessToken(appid);
+         valueOperations.set(SecurityConstants.APPLETS_ACCESS_TOKEN+"_"+appid, accessToken);
+         valueOperations.set(SecurityConstants.APPLETS_ACCESS_TOKEN_TIME+"_"+appid, System.currentTimeMillis() + 1100000 + "");
+         }
+        return accessToken;
     }
 
-    public String getAppAccessToken() throws Exception {
+    public String getAppAccessToken(String appid) throws Exception {
+        R<SysAppConfigVO> sysAppConfigVOR=userService.selectByAppid(appid);
+        String accessToken = "0";
+        try {
+            log.info("获取微信token参数:appid=" + APP_ID + ",appSecret=" + APP_SECRET);
+            String accessTokenUrl = ACCESS_TOKEN_URL + "&appid=" + sysAppConfigVOR.getData().getAppId() + "&secret=" + sysAppConfigVOR.getData().getSecret();
+            String result = HttpClientUtil.httpGet(accessTokenUrl, null, null);
+            Map<String, Object> resultMap = JSON.parseObject(result, Map.class);
+            if (resultMap.containsKey("access_token")) {
+                accessToken = resultMap.get("access_token").toString();
+            }
+        } catch (IOException ioe) {
+            log.error("小程序http请求异常");
+            ioe.printStackTrace();
+        }
+        return accessToken;
+    }
+
+    /**
+     * 获取西区社区通微信token
+     * @return  西区社区通微信token
+     * @throws Exception 异常
+     */
+    public String getXQAppAccessToken() throws Exception {
         String accessToken = "0";
         try {
             // 此处APP_ID APP_SECRET 在微信小程序后端可见
             // String accessTokenUrl = String.format(TEMP_URL, APP_ID, APP_SECRET);
-            String accessTokenUrl = ACCESS_TOKEN_URL + "&appid=" + getAppId() + "&secret=" + getAppSecret();
+            String accessTokenUrl = ACCESS_TOKEN_URL + "&appid=" + APP_ID + "&secret=" + APP_SECRET;
             String result = HttpClientUtil.httpGet(accessTokenUrl, null, null);
             Map<String, Object> resultMap = JSON.parseObject(result, Map.class);
             if (resultMap.containsKey("access_token")) {
@@ -240,4 +273,10 @@
         return null;
     }
 
+    @PostConstruct
+    public void init() {
+        wxXCXTempSend = this;
+        wxXCXTempSend.redisTemplate = this.redisTemplate;
+    }
+
 }

--
Gitblit v1.7.1