提交 59dc6a0c authored 作者: 吕本才's avatar 吕本才

fix(promotion-service):修复活动状态处理逻辑并优化微信token获取

上级 0c8b4392
......@@ -2,8 +2,10 @@ package com.wangxiaolu.promotion.utils;
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.config.WxMaConfig;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson2.JSONObject;
import com.wangxiaolu.promotion.common.redis.service.RedisCache;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
......@@ -13,11 +15,12 @@ import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
@Component
@Slf4j
public class WechatAccessTokenUtil {
// @Value("${wx.miniapp.appid}")
// private String appid;
// @Value("${wx.miniapp.secret}")
// private String secret;
@Value("${wx.cx_miniapp.app_id}")
private String appid;
@Value("${wx.cx_miniapp.app_secret}")
private String secret;
private static final String TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s";
// 缓存access_token,避免频繁调用
......@@ -41,12 +44,13 @@ public class WechatAccessTokenUtil {
if (System.currentTimeMillis() < expireTime && StringUtils.hasText(accessToken)) {
return accessToken;
}
WxMaConfig wxMaConfig = wxMaService.getWxMaConfig();
String appid = wxMaConfig.getAppid();
String secret = wxMaConfig.getSecret();
// WxMaConfig wxMaConfig = wxMaService.getWxMaConfig();
// String appid = wxMaConfig.getAppid();
// String secret = wxMaConfig.getSecret();
// 过期则重新获取
String url = String.format(TOKEN_URL, appid, secret);
String response = restTemplate.getForObject(url, String.class);
log.info("获取微信access_token,url:{},response:{}",url,response);
// 解析JSON(推荐使用Jackson或FastJSON)
JSONObject json = JSONObject.from(response);
......@@ -55,6 +59,8 @@ public class WechatAccessTokenUtil {
int expiresIn = json.getIntValue("expires_in");
// 提前5分钟过期
expireTime = System.currentTimeMillis() + (expiresIn - 300) * 1000;
return accessToken;
}
}
......@@ -78,8 +78,8 @@ public class ActivityStautsHandler {
.eq(TemporaryActivityTaskClockDO::getTaskType, ActivityPhotoType.RANDOM_TASK.getType())
.eq(TemporaryActivityTaskClockDO::getIsDelete, FlagType.NO.getType())
.eq(TemporaryActivityTaskClockDO::getIsSendSubscribe, FlagType.NO.getType())
.le(TemporaryActivityTaskClockDO::getRequiredlockTime, latestDateTime)
.ge(TemporaryActivityTaskClockDO::getRequiredlockTime, new Date())
.ge(TemporaryActivityTaskClockDO::getRequiredlockTime, latestDateTime)
// .ge(TemporaryActivityTaskClockDO::getRequiredlockTime, new Date())
);
for (TemporaryActivityTaskClockDO taskClockDO : list) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论