Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
promotion-service
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
promotion
promotion-service
Commits
48d0a48d
提交
48d0a48d
authored
11月 14, 2025
作者:
吕本才
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(promotion):修改定时任务
上级
52f4601b
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
18 行增加
和
15 行删除
+18
-15
SubscribeMessageService.java
...vice/activity/temporary/impl/SubscribeMessageService.java
+2
-2
WechatAccessTokenUtil.java
...com/wangxiaolu/promotion/utils/WechatAccessTokenUtil.java
+6
-4
TemporaryActivityTaskClockSocketHandler.java
...on/websocket/TemporaryActivityTaskClockSocketHandler.java
+3
-4
ActivityStautsHandler.java
...angxiaolu/promotion/xxljobtask/ActivityStautsHandler.java
+7
-5
没有找到文件。
src/main/java/com/wangxiaolu/promotion/service/activity/temporary/impl/SubscribeMessageService.java
浏览文件 @
48d0a48d
...
...
@@ -59,7 +59,6 @@ public class SubscribeMessageService {
// 获取access_token,拼接完整URL
String
accessToken
=
tokenUtil
.
getAccessToken
();
// String url = subscribeUrl + accessToken;
// 发送订阅通知的API地址
String
url
=
"https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="
+
accessToken
;
...
...
@@ -69,7 +68,8 @@ public class SubscribeMessageService {
JSONObject
json
=
new
JSONObject
(
response
);
log
.
info
(
"微信返回数据:{} "
,
json
.
toString
());
int
errcode
=
json
.
getInt
(
"errcode"
);
return
errcode
==
0
;
// 0表示成功
// 0表示成功
return
errcode
==
0
;
}
catch
(
Exception
e
)
{
log
.
error
(
"发送微信订阅通知失败"
,
e
);
return
false
;
...
...
src/main/java/com/wangxiaolu/promotion/utils/WechatAccessTokenUtil.java
浏览文件 @
48d0a48d
...
...
@@ -2,8 +2,11 @@ package com.wangxiaolu.promotion.utils;
import
cn.binarywang.wx.miniapp.api.WxMaService
;
import
cn.binarywang.wx.miniapp.config.WxMaConfig
;
import
cn.hutool.core.util.ObjectUtil
;
import
cn.hutool.http.HttpUtil
;
import
com.alibaba.fastjson2.JSONObject
;
import
com.wangxiaolu.promotion.common.constant.Constants
;
import
com.wangxiaolu.promotion.common.redis.RedisKeys
;
import
com.wangxiaolu.promotion.common.redis.service.RedisCache
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -40,13 +43,11 @@ public class WechatAccessTokenUtil {
// 获取有效的access_token
public
String
getAccessToken
()
{
String
accessTokenRedisCache
=
redisCache
.
get
(
Constants
.
REDIS_ACCESS_TOKEN
);
// 检查是否过期,未过期直接返回
if
(
System
.
currentTimeMillis
()
<
expireTime
&&
StringUtils
.
hasText
(
accessToken
))
{
if
(
ObjectUtil
.
isNotEmpty
(
accessTokenRedisCache
))
{
return
accessToken
;
}
// 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
);
...
...
@@ -60,6 +61,7 @@ public class WechatAccessTokenUtil {
// 提前5分钟过期
expireTime
=
System
.
currentTimeMillis
()
+
(
expiresIn
-
300
)
*
1000
;
redisCache
.
addToSeconds
(
Constants
.
REDIS_ACCESS_TOKEN
,
accessToken
,
expireTime
/
1000
);
return
accessToken
;
}
...
...
src/main/java/com/wangxiaolu/promotion/websocket/TemporaryActivityTaskClockSocketHandler.java
浏览文件 @
48d0a48d
...
...
@@ -158,15 +158,14 @@ public class TemporaryActivityTaskClockSocketHandler extends TextWebSocketHandle
String
jsonMessage
=
objectMapper
.
writeValueAsString
(
messageBean
);
session
.
sendMessage
(
new
TextMessage
(
jsonMessage
));
}
catch
(
IOException
e
)
{
log
.
error
(
"用户["
+
userId
+
"]发送Bean消息失败:"
+
userId
);
log
.
error
(
"用户["
+
userId
+
"]发送Bean消息失败:"
+
e
.
getMessage
()
);
return
0
;
}
return
1
;
}
else
{
log
.
warn
(
"用户["
+
userId
+
"]不存在链接"
);
log
.
warn
(
"
发送信息失败:
用户["
+
userId
+
"]不存在链接"
);
return
0
;
}
return
0
;
}
public
void
handleTransportError
(
WebSocketSession
session
,
Throwable
exception
)
throws
Exception
{
...
...
src/main/java/com/wangxiaolu/promotion/xxljobtask/ActivityStautsHandler.java
浏览文件 @
48d0a48d
...
...
@@ -87,8 +87,11 @@ public class ActivityStautsHandler {
MessageBean
msgBean
=
new
MessageBean
();
msgBean
.
setMsgType
(
TemporaryActivityTaskClockMessageType
.
RANDOM_TASK_START
.
getType
());
msgBean
.
setData
(
taskClockDO
);
taskClockSocketHandler
.
sendToUser
(
taskClockDO
.
getTemporaryId
().
toString
(),
msgBean
);
log
.
info
(
"发送websocket信息,用户id:{}"
,
taskClockDO
.
getTemporaryId
());
Integer
successFlag
=
taskClockSocketHandler
.
sendToUser
(
taskClockDO
.
getTemporaryId
().
toString
(),
msgBean
);
if
(
successFlag
==
1
){
log
.
info
(
"完成发送websocket信息,用户id:{}"
,
taskClockDO
.
getTemporaryId
());
taskClockDO
.
setIsSendSubscribe
(
FlagType
.
YES
.
getType
());
}
DateTime
requiredlockTime
=
DateUtil
.
offsetMinute
(
taskClockDO
.
getRequiredlockTime
(),
15
);
...
...
@@ -99,7 +102,7 @@ public class ActivityStautsHandler {
// 模板中的字段2 截止时间
data
.
put
(
"time3"
,
DateUtil
.
format
(
requiredlockTime
,
"yyyy-MM-dd HH:mm"
));
// 模板中的字段3 任务名称
data
.
put
(
"thing1"
,
"请拍摄清晰的
任务
照片"
);
data
.
put
(
"thing1"
,
"请拍摄清晰的
工作场景
照片"
);
// 模板中的字段4 温馨提示
data
.
put
(
"thing4"
,
"请在15分钟内完成任务"
);
...
...
@@ -121,10 +124,9 @@ public class ActivityStautsHandler {
if
(
success
)
{
taskClockDO
.
setSubscribeTime
(
new
Date
());
taskClockDO
.
setIsSendSubscribe
(
FlagType
.
YES
.
getType
());
}
// 修改状态 待开始 -> 进行中
taskClockDO
.
set
Subscribe
Status
(
ActivityClockTaskStatus
.
STARTING
.
getType
());
taskClockDO
.
set
Task
Status
(
ActivityClockTaskStatus
.
STARTING
.
getType
());
taskClockService
.
updateById
(
taskClockDO
);
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论