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