From d331c5475f0b07f36161a4464d92e32b6913b4e9 Mon Sep 17 00:00:00 2001
From: lidongdong <1459917685@qq.com>
Date: 星期五, 24 十一月 2023 14:50:43 +0800
Subject: [PATCH] 后台增加用户搜索列表
---
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxXCXTempSend.java | 114 ++++++++++++++++++++++----------------------------------
1 files changed, 45 insertions(+), 69 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 3493479..904c51c 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
@@ -1,23 +1,16 @@
package com.panzhihua.common.utlis;
-import java.io.*;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.nio.charset.StandardCharsets;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.SecurityConstants;
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.redis.RedisUtils;
-import com.panzhihua.common.service.user.UserService;
+import lombok.extern.slf4j.Slf4j;
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;
@@ -25,14 +18,18 @@
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
-import com.panzhihua.common.constants.SecurityConstants;
-
-import lombok.extern.slf4j.Slf4j;
-
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
+import java.text.MessageFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
@Slf4j
@Component
@@ -54,6 +51,7 @@
private RedisUtils redisUtils;
private static WxXCXTempSend wxXCXTempSend;
+
/**
* url转变为 MultipartFile对象
*
@@ -65,7 +63,7 @@
private static MultipartFile createFileItem(String url, String fileName) throws Exception {
FileItem item = null;
try {
- HttpURLConnection conn = (HttpURLConnection)new URL(url).openConnection();
+ HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
conn.setReadTimeout(30000);
conn.setConnectTimeout(30000);
// 设置应用程序要从网络连接读取数据
@@ -77,7 +75,7 @@
FileItemFactory factory = new DiskFileItemFactory(16, null);
String textFieldName = "uploadfile";
item =
- factory.createItem(textFieldName, ContentType.APPLICATION_OCTET_STREAM.toString(), false, fileName);
+ factory.createItem(textFieldName, ContentType.APPLICATION_OCTET_STREAM.toString(), false, fileName);
OutputStream os = item.getOutputStream();
int bytesRead = 0;
@@ -101,31 +99,24 @@
* @return
*/
public String getAccessToken() throws Exception {
- String accessToken = "";
+ String accessToken = "";
String appId = this.getAppId();
- accessToken=wxXCXTempSend.stringRedisTemplate.boundValueOps("access_token:access_token:"+ appId).get();
- if (appId.equals(APP_ID)){
- accessToken = validAccessToken(accessToken, appId,APP_SECRET);
- }
-
+ accessToken = wxXCXTempSend.stringRedisTemplate.boundValueOps("access_token:access_token:" + appId).get();
return accessToken;
}
public String getAccessToken(String appId) throws Exception {
String accessToken = "";
- accessToken=wxXCXTempSend.stringRedisTemplate.boundValueOps("access_token:access_token:"+appId).get();
- if (appId.equals(APP_ID)){
- accessToken = validAccessToken(accessToken, appId,APP_SECRET);
- }
+ accessToken = wxXCXTempSend.stringRedisTemplate.boundValueOps("access_token:access_token:" + appId).get();
return accessToken;
}
- private String validAccessToken(String accessToken, String appId,String appSecret) throws Exception {
+ private String validAccessToken(String accessToken, String appId, String appSecret) throws Exception {
if (StrUtil.isEmpty(accessToken)) {
//重新获取并设置到缓存 该方法暂时只用在花城
accessToken = getAppAccessToken(appId, appSecret);
- wxXCXTempSend.stringRedisTemplate.opsForValue().set("access_token:access_token:" + appId, accessToken, EXPIRE_TIME,TimeUnit.HOURS);
+ wxXCXTempSend.stringRedisTemplate.opsForValue().set("access_token:access_token:" + appId, accessToken, EXPIRE_TIME, TimeUnit.HOURS);
} else {
String accessTokenUrl = WX_CALL_BACK + accessToken;
String result = HttpClientUtil.httpGet(accessTokenUrl, null, null);
@@ -133,22 +124,33 @@
//如果Access_token过期也重新获取
if (resultMap.containsKey("errcode")) {
accessToken = getAppAccessToken(appId, appSecret);
- wxXCXTempSend.stringRedisTemplate.opsForValue().set("access_token:access_token:" + appId, accessToken, EXPIRE_TIME,TimeUnit.HOURS);
+ wxXCXTempSend.stringRedisTemplate.opsForValue().set("access_token:access_token:" + appId, accessToken, EXPIRE_TIME, TimeUnit.HOURS);
}
}
return accessToken;
}
- public String getAppAccessToken(String appId,String appSecret) throws Exception {
+ public String getAppAccessToken(String appId, String appSecret) throws Exception {
String accessToken = "0";
try {
log.info("获取微信token参数:appid=" + appId + ",appSecret=" + appSecret);
String accessTokenUrl = ACCESS_TOKEN_URL + "&appid=" + appId + "&secret=" + appSecret;
String result = HttpClientUtil.httpGet(accessTokenUrl, null, null);
Map<String, Object> resultMap = JSON.parseObject(result, Map.class);
+ StringRedisTemplate redisTemplate = wxXCXTempSend.stringRedisTemplate;
if (resultMap.containsKey("access_token")) {
accessToken = resultMap.get("access_token").toString();
+ redisTemplate.opsForValue().set("access_token:access_token:" + appId, accessToken);
}
+ HttpServletRequest request = ServletUtils.getRequest();
+ String requestURI = request.getRequestURI();
+ //加上时间戳
+ String datetime = new SimpleDateFormat("yyyyMMdd").format(new Date());
+ //这里是 Redis key的前缀,如: sys:tabieId:表名 如果不需要去掉表名也可以
+ String key = MessageFormat.format("{0}:{1}:{2}", "access_token_request_incr",datetime,requestURI);
+ //查询 key 是否存在, 不存在返回 1 ,存在的话则自增加1
+ redisTemplate.opsForValue().increment(key, 1);
+
} catch (IOException ioe) {
log.error("小程序http请求异常");
ioe.printStackTrace();
@@ -156,39 +158,11 @@
return accessToken;
}
- /**
- * 发布消息时重新设置access_token 防止过期
- * @param appId
- * @param appSecret
- * @throws Exception
- */
- public void setAppAccessTokenToCache(String appId,String appSecret) throws Exception{
- String accessToken = "0";
- try {
- log.info("获取微信token参数:appid=" + appId + ",appSecret=" + appSecret);
- String accessTokenUrl = ACCESS_TOKEN_URL + "&appid=" + appId + "&secret=" + appSecret;
- 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();
- wxXCXTempSend.stringRedisTemplate.opsForValue().set("access_token:access_token:" + appId, accessToken, EXPIRE_TIME,TimeUnit.HOURS);
- }
- } catch (IOException ioe) {
- log.error("小程序http请求异常");
- ioe.printStackTrace();
- }
- }
-
- public String getAccessTokenNoValid(String appId) throws Exception {
- String accessToken = "";
- accessToken=wxXCXTempSend.stringRedisTemplate.boundValueOps("access_token:access_token:"+appId).get();
- return accessToken;
- }
public String getWsAccessToken() throws Exception {
String accessToken = "0";
try {
// log.info("获取微信token参数:appid=" + APP_ID + ",appSecret=" + APP_SECRET);
- String accessTokenUrl = ACCESS_TOKEN_URL + "&appid=wx98d62711dfbd8425"+ "&secret=97a2a10b990c2774ed279724337b5337";
+ String accessTokenUrl = ACCESS_TOKEN_URL + "&appid=wx98d62711dfbd8425" + "&secret=97a2a10b990c2774ed279724337b5337";
String result = HttpClientUtil.httpGet(accessTokenUrl, null, null);
Map<String, Object> resultMap = JSON.parseObject(result, Map.class);
if (resultMap.containsKey("access_token")) {
@@ -200,9 +174,11 @@
}
return accessToken;
}
+
/**
* 获取西区社区通微信token
- * @return 西区社区通微信token
+ *
+ * @return 西区社区通微信token
* @throws Exception 异常
*/
public String getXQAppAccessToken() throws Exception {
@@ -235,7 +211,7 @@
mediaId = getAppMediaId(accessToken);
valueOperations.set(SecurityConstants.APPLETS_ACCESS_MEDIA_ID, mediaId);
valueOperations.set(SecurityConstants.APPLETS_ACCESS_MEDIA_ID_TIME,
- System.currentTimeMillis() + 259000000 + "");
+ System.currentTimeMillis() + 259000000 + "");
} else {
mediaId = valueOperations.get(SecurityConstants.APPLETS_ACCESS_MEDIA_ID);
}
@@ -243,7 +219,7 @@
mediaId = getAppMediaId(accessToken);
valueOperations.set(SecurityConstants.APPLETS_ACCESS_MEDIA_ID, mediaId);
valueOperations.set(SecurityConstants.APPLETS_ACCESS_MEDIA_ID_TIME,
- System.currentTimeMillis() + 259000000 + "");
+ System.currentTimeMillis() + 259000000 + "");
}
return mediaId;
}
@@ -264,15 +240,15 @@
*
* @param file
* @return
- * @author yixiu
* @throws Exception
+ * @author yixiu
*/
public String uploadFile(MultipartFile file, String access_token) throws Exception {
String url = "https://api.weixin.qq.com/cgi-bin/media/upload?access_token=" + access_token + "&type=image";
String result = null;
String fileName = file.getOriginalFilename();
URL urlObj = new URL(url);
- HttpURLConnection con = (HttpURLConnection)urlObj.openConnection();
+ HttpURLConnection con = (HttpURLConnection) urlObj.openConnection();
con.setRequestMethod("POST");
con.setDoInput(true);
con.setDoOutput(true);
@@ -344,8 +320,8 @@
public void init() {
wxXCXTempSend = this;
wxXCXTempSend.redisTemplate = this.redisTemplate;
- wxXCXTempSend.stringRedisTemplate=this.stringRedisTemplate;
- wxXCXTempSend.redisUtils=this.redisUtils;
+ wxXCXTempSend.stringRedisTemplate = this.stringRedisTemplate;
+ wxXCXTempSend.redisUtils = this.redisUtils;
}
--
Gitblit v1.7.1