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

feat(promotion):修改定时任务

上级 52f4601b
...@@ -59,7 +59,6 @@ public class SubscribeMessageService { ...@@ -59,7 +59,6 @@ public class SubscribeMessageService {
// 获取access_token,拼接完整URL // 获取access_token,拼接完整URL
String accessToken = tokenUtil.getAccessToken(); String accessToken = tokenUtil.getAccessToken();
// String url = subscribeUrl + accessToken;
// 发送订阅通知的API地址 // 发送订阅通知的API地址
String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+ accessToken; String url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+ accessToken;
...@@ -69,7 +68,8 @@ public class SubscribeMessageService { ...@@ -69,7 +68,8 @@ public class SubscribeMessageService {
JSONObject json = new JSONObject(response); JSONObject json = new JSONObject(response);
log.info("微信返回数据:{} ",json.toString()); log.info("微信返回数据:{} ",json.toString());
int errcode = json.getInt("errcode"); int errcode = json.getInt("errcode");
return errcode == 0; // 0表示成功 // 0表示成功
return errcode == 0;
} catch (Exception e) { } catch (Exception e) {
log.error("发送微信订阅通知失败", e); log.error("发送微信订阅通知失败", e);
return false; return false;
......
...@@ -2,8 +2,11 @@ package com.wangxiaolu.promotion.utils; ...@@ -2,8 +2,11 @@ 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.core.util.ObjectUtil;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson2.JSONObject; 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 com.wangxiaolu.promotion.common.redis.service.RedisCache;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -40,13 +43,11 @@ public class WechatAccessTokenUtil { ...@@ -40,13 +43,11 @@ public class WechatAccessTokenUtil {
// 获取有效的access_token // 获取有效的access_token
public String getAccessToken() { public String getAccessToken() {
String accessTokenRedisCache = redisCache.get(Constants.REDIS_ACCESS_TOKEN);
// 检查是否过期,未过期直接返回 // 检查是否过期,未过期直接返回
if (System.currentTimeMillis() < expireTime && StringUtils.hasText(accessToken)) { if (ObjectUtil.isNotEmpty(accessTokenRedisCache)) {
return accessToken; return accessToken;
} }
// WxMaConfig wxMaConfig = wxMaService.getWxMaConfig();
// String appid = wxMaConfig.getAppid();
// 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);
...@@ -60,6 +61,7 @@ public class WechatAccessTokenUtil { ...@@ -60,6 +61,7 @@ public class WechatAccessTokenUtil {
// 提前5分钟过期 // 提前5分钟过期
expireTime = System.currentTimeMillis() + (expiresIn - 300) * 1000; expireTime = System.currentTimeMillis() + (expiresIn - 300) * 1000;
redisCache.addToSeconds(Constants.REDIS_ACCESS_TOKEN,accessToken,expireTime/1000);
return accessToken; return accessToken;
} }
......
...@@ -158,15 +158,14 @@ public class TemporaryActivityTaskClockSocketHandler extends TextWebSocketHandle ...@@ -158,15 +158,14 @@ public class TemporaryActivityTaskClockSocketHandler extends TextWebSocketHandle
String jsonMessage = objectMapper.writeValueAsString(messageBean); String jsonMessage = objectMapper.writeValueAsString(messageBean);
session.sendMessage(new TextMessage(jsonMessage)); session.sendMessage(new TextMessage(jsonMessage));
} catch (IOException e) { } catch (IOException e) {
log.error("用户[" + userId + "]发送Bean消息失败:" + userId); log.error("用户[" + userId + "]发送Bean消息失败:" + e.getMessage());
return 0; return 0;
} }
return 1; return 1;
}else{ }else{
log.warn("用户[" + userId + "]不存在链接" ); log.warn("发送信息失败:用户[" + userId + "]不存在链接" );
return 0;
} }
return 0;
} }
public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception { public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception {
......
...@@ -87,8 +87,11 @@ public class ActivityStautsHandler { ...@@ -87,8 +87,11 @@ public class ActivityStautsHandler {
MessageBean msgBean = new MessageBean(); MessageBean msgBean = new MessageBean();
msgBean.setMsgType(TemporaryActivityTaskClockMessageType.RANDOM_TASK_START.getType()); msgBean.setMsgType(TemporaryActivityTaskClockMessageType.RANDOM_TASK_START.getType());
msgBean.setData(taskClockDO); msgBean.setData(taskClockDO);
taskClockSocketHandler.sendToUser(taskClockDO.getTemporaryId().toString(), msgBean); Integer successFlag = taskClockSocketHandler.sendToUser(taskClockDO.getTemporaryId().toString(), msgBean);
log.info("发送websocket信息,用户id:{}", taskClockDO.getTemporaryId()); if(successFlag == 1){
log.info("完成发送websocket信息,用户id:{}", taskClockDO.getTemporaryId());
taskClockDO.setIsSendSubscribe(FlagType.YES.getType());
}
DateTime requiredlockTime = DateUtil.offsetMinute(taskClockDO.getRequiredlockTime(), 15); DateTime requiredlockTime = DateUtil.offsetMinute(taskClockDO.getRequiredlockTime(), 15);
...@@ -99,7 +102,7 @@ public class ActivityStautsHandler { ...@@ -99,7 +102,7 @@ public class ActivityStautsHandler {
// 模板中的字段2 截止时间 // 模板中的字段2 截止时间
data.put("time3", DateUtil.format(requiredlockTime,"yyyy-MM-dd HH:mm")); data.put("time3", DateUtil.format(requiredlockTime,"yyyy-MM-dd HH:mm"));
// 模板中的字段3 任务名称 // 模板中的字段3 任务名称
data.put("thing1", "请拍摄清晰的任务照片"); data.put("thing1", "请拍摄清晰的工作场景照片");
// 模板中的字段4 温馨提示 // 模板中的字段4 温馨提示
data.put("thing4", "请在15分钟内完成任务"); data.put("thing4", "请在15分钟内完成任务");
...@@ -121,10 +124,9 @@ public class ActivityStautsHandler { ...@@ -121,10 +124,9 @@ public class ActivityStautsHandler {
if (success) { if (success) {
taskClockDO.setSubscribeTime(new Date()); taskClockDO.setSubscribeTime(new Date());
taskClockDO.setIsSendSubscribe(FlagType.YES.getType());
} }
// 修改状态 待开始 -> 进行中 // 修改状态 待开始 -> 进行中
taskClockDO.setSubscribeStatus(ActivityClockTaskStatus.STARTING.getType()); taskClockDO.setTaskStatus(ActivityClockTaskStatus.STARTING.getType());
taskClockService.updateById(taskClockDO); taskClockService.updateById(taskClockDO);
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论