提交 48d0a48d authored 作者: 吕本才's avatar 吕本才

feat(promotion):修改定时任务

上级 52f4601b
......@@ -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;
......
......@@ -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;
}
......
......@@ -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 {
......
......@@ -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.setSubscribeStatus(ActivityClockTaskStatus.STARTING.getType());
taskClockDO.setTaskStatus(ActivityClockTaskStatus.STARTING.getType());
taskClockService.updateById(taskClockDO);
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论