Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
promotion-service
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
promotion
promotion-service
Commits
59dc6a0c
提交
59dc6a0c
authored
11月 13, 2025
作者:
吕本才
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(promotion-service):修复活动状态处理逻辑并优化微信token获取
上级
0c8b4392
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
15 行增加
和
9 行删除
+15
-9
WechatAccessTokenUtil.java
...com/wangxiaolu/promotion/utils/WechatAccessTokenUtil.java
+13
-7
ActivityStautsHandler.java
...angxiaolu/promotion/xxljobtask/ActivityStautsHandler.java
+2
-2
没有找到文件。
src/main/java/com/wangxiaolu/promotion/utils/WechatAccessTokenUtil.java
浏览文件 @
59dc6a0c
...
@@ -2,8 +2,10 @@ package com.wangxiaolu.promotion.utils;
...
@@ -2,8 +2,10 @@ package com.wangxiaolu.promotion.utils;
import
cn.binarywang.wx.miniapp.api.WxMaService
;
import
cn.binarywang.wx.miniapp.api.WxMaService
;
import
cn.binarywang.wx.miniapp.config.WxMaConfig
;
import
cn.binarywang.wx.miniapp.config.WxMaConfig
;
import
cn.hutool.http.HttpUtil
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.wangxiaolu.promotion.common.redis.service.RedisCache
;
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.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
...
@@ -13,11 +15,12 @@ import org.springframework.web.client.RestTemplate;
...
@@ -13,11 +15,12 @@ import org.springframework.web.client.RestTemplate;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
@Component
@Component
@Slf4j
public
class
WechatAccessTokenUtil
{
public
class
WechatAccessTokenUtil
{
// @Value("${wx.miniapp.app
id}")
@Value
(
"${wx.cx_miniapp.app_
id}"
)
//
private String appid;
private
String
appid
;
// @Value("${wx.miniapp.
secret}")
@Value
(
"${wx.cx_miniapp.app_
secret}"
)
//
private String 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"
;
private
static
final
String
TOKEN_URL
=
"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s"
;
// 缓存access_token,避免频繁调用
// 缓存access_token,避免频繁调用
...
@@ -41,12 +44,13 @@ public class WechatAccessTokenUtil {
...
@@ -41,12 +44,13 @@ public class WechatAccessTokenUtil {
if
(
System
.
currentTimeMillis
()
<
expireTime
&&
StringUtils
.
hasText
(
accessToken
))
{
if
(
System
.
currentTimeMillis
()
<
expireTime
&&
StringUtils
.
hasText
(
accessToken
))
{
return
accessToken
;
return
accessToken
;
}
}
WxMaConfig
wxMaConfig
=
wxMaService
.
getWxMaConfig
();
//
WxMaConfig wxMaConfig = wxMaService.getWxMaConfig();
String
appid
=
wxMaConfig
.
getAppid
();
//
String appid = wxMaConfig.getAppid();
String
secret
=
wxMaConfig
.
getSecret
();
//
String secret = wxMaConfig.getSecret();
// 过期则重新获取
// 过期则重新获取
String
url
=
String
.
format
(
TOKEN_URL
,
appid
,
secret
);
String
url
=
String
.
format
(
TOKEN_URL
,
appid
,
secret
);
String
response
=
restTemplate
.
getForObject
(
url
,
String
.
class
);
String
response
=
restTemplate
.
getForObject
(
url
,
String
.
class
);
log
.
info
(
"获取微信access_token,url:{},response:{}"
,
url
,
response
);
// 解析JSON(推荐使用Jackson或FastJSON)
// 解析JSON(推荐使用Jackson或FastJSON)
JSONObject
json
=
JSONObject
.
from
(
response
);
JSONObject
json
=
JSONObject
.
from
(
response
);
...
@@ -55,6 +59,8 @@ public class WechatAccessTokenUtil {
...
@@ -55,6 +59,8 @@ public class WechatAccessTokenUtil {
int
expiresIn
=
json
.
getIntValue
(
"expires_in"
);
int
expiresIn
=
json
.
getIntValue
(
"expires_in"
);
// 提前5分钟过期
// 提前5分钟过期
expireTime
=
System
.
currentTimeMillis
()
+
(
expiresIn
-
300
)
*
1000
;
expireTime
=
System
.
currentTimeMillis
()
+
(
expiresIn
-
300
)
*
1000
;
return
accessToken
;
return
accessToken
;
}
}
}
}
src/main/java/com/wangxiaolu/promotion/xxljobtask/ActivityStautsHandler.java
浏览文件 @
59dc6a0c
...
@@ -78,8 +78,8 @@ public class ActivityStautsHandler {
...
@@ -78,8 +78,8 @@ public class ActivityStautsHandler {
.
eq
(
TemporaryActivityTaskClockDO:
:
getTaskType
,
ActivityPhotoType
.
RANDOM_TASK
.
getType
())
.
eq
(
TemporaryActivityTaskClockDO:
:
getTaskType
,
ActivityPhotoType
.
RANDOM_TASK
.
getType
())
.
eq
(
TemporaryActivityTaskClockDO:
:
getIsDelete
,
FlagType
.
NO
.
getType
())
.
eq
(
TemporaryActivityTaskClockDO:
:
getIsDelete
,
FlagType
.
NO
.
getType
())
.
eq
(
TemporaryActivityTaskClockDO:
:
getIsSendSubscribe
,
FlagType
.
NO
.
getType
())
.
eq
(
TemporaryActivityTaskClockDO:
:
getIsSendSubscribe
,
FlagType
.
NO
.
getType
())
.
l
e
(
TemporaryActivityTaskClockDO:
:
getRequiredlockTime
,
latestDateTime
)
.
g
e
(
TemporaryActivityTaskClockDO:
:
getRequiredlockTime
,
latestDateTime
)
.
ge
(
TemporaryActivityTaskClockDO:
:
getRequiredlockTime
,
new
Date
())
//
.ge(TemporaryActivityTaskClockDO::getRequiredlockTime, new Date())
);
);
for
(
TemporaryActivityTaskClockDO
taskClockDO
:
list
)
{
for
(
TemporaryActivityTaskClockDO
taskClockDO
:
list
)
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论