|
|
@@ -1,6 +1,7 @@
|
|
|
package com.cyksj.task;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.date.BetweenFormater;
|
|
|
import cn.hutool.core.date.DateField;
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
@@ -8,28 +9,25 @@ import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.cyksj.common.EnvCommonService;
|
|
|
import com.cyksj.common.constant.Constant;
|
|
|
-import com.cyksj.common.constant.TemplateEnum;
|
|
|
-import com.cyksj.common.util.Jsons;
|
|
|
import com.cyksj.common.util.SmsUtil;
|
|
|
+import com.cyksj.common.util.StringUtil;
|
|
|
import com.cyksj.dto.RedisKey;
|
|
|
import com.cyksj.mapper.*;
|
|
|
import com.cyksj.mapper.manage.cms.CmsUserMapper;
|
|
|
import com.cyksj.mapper.manage.distribute.DistributeWaitingSendPointsMapper;
|
|
|
-import com.cyksj.mapper.manage.distribute.UserDistributeMapper;
|
|
|
import com.cyksj.mapper.manage.sys.WorkOrderMapper;
|
|
|
-import com.cyksj.model.dto.WxMpTemplateData;
|
|
|
-import com.cyksj.model.dto.WxMpTemplateMessage;
|
|
|
import com.cyksj.model.entity.*;
|
|
|
import com.cyksj.model.manage.views.AccountView;
|
|
|
+import com.cyksj.model.manage.views.GroupsRelationView;
|
|
|
import com.cyksj.model.views.CmsUserVO;
|
|
|
import com.cyksj.model.views.UserDistributeViews;
|
|
|
-import com.cyksj.model.views.WxAppTemplateView;
|
|
|
import com.cyksj.redis.RedisService;
|
|
|
import com.cyksj.service.mange.CmsAccountService;
|
|
|
import com.cyksj.service.order.OrderDonService;
|
|
|
import com.cyksj.service.register.RegisterOrderDonService;
|
|
|
import com.cyksj.service.register.SpotifyService;
|
|
|
import com.cyksj.service.relation.GroupRelationClearService;
|
|
|
+import com.cyksj.service.sms.SmsService;
|
|
|
import com.cyksj.service.template.TemplateCommonService;
|
|
|
import com.cyksj.service.wechat.WeChatService;
|
|
|
import com.ejlchina.searcher.BeanSearcher;
|
|
|
@@ -98,7 +96,7 @@ public class Scheduler {
|
|
|
|
|
|
private final WorkOrderMapper workOrderMapper;
|
|
|
|
|
|
- private final UserDistributeMapper userDistributeMapper;
|
|
|
+ private final SmsService smsService;
|
|
|
|
|
|
private final CmsUserMapper cmsUserMapper;
|
|
|
|
|
|
@@ -120,39 +118,39 @@ public class Scheduler {
|
|
|
public void expiryWxMsg() throws Exception {
|
|
|
DateTime now = new DateTime();
|
|
|
DateTime zero = DateUtil.offset(now, DateField.HOUR, -9);
|
|
|
- DateTime time = DateUtil.offset(zero, DateField.DAY_OF_MONTH, 5);
|
|
|
- List<GroupsRelation> groupsRelations = groupsRelationMapper.selectList(Wrappers.lambdaQuery(GroupsRelation.class).le(GroupsRelation::getExpiryTime, time));
|
|
|
- String url = String.format("%sauth/weChat?url=%syinhe/web/ticket", envCommonService.getHost(), envCommonService.getDomain());
|
|
|
- for (GroupsRelation relation : groupsRelations) {
|
|
|
- User user = userMapper.selectById(relation.getUserId());
|
|
|
- if (user != null && StrUtil.isNotBlank(user.getOpenId())) {
|
|
|
- String openId = user.getOpenId();
|
|
|
- WxAppTemplateView wxAppTemplateView = templateCommonService.getWxAppByUserId(openId, TemplateEnum.EXPIRY_TEMPLATE.getDesc());
|
|
|
- if (wxAppTemplateView != null) {
|
|
|
- WxMpTemplateMessage templateMessage = new WxMpTemplateMessage()
|
|
|
- .setToUser(openId)
|
|
|
- .setTemplateId(wxAppTemplateView.getTemplateId())
|
|
|
- .setUrl(url);
|
|
|
-
|
|
|
- /**
|
|
|
- * 您的账号即将到期
|
|
|
- * 账号名称:Netflix账号
|
|
|
- * 平台:Netflix
|
|
|
- * 失效日期:5天后
|
|
|
- * 异常原因:账号即将到期
|
|
|
- * 请尽快续费,以免影响使用
|
|
|
- */
|
|
|
- GroupsTrips groupsTrips = groupsMapper.selectById(relation.getGroupsId());
|
|
|
- GoodsDonSku donSku = skuMapper.selectById(groupsTrips.getSkuId());
|
|
|
- GoodsDon goodsDon = donMapper.selectById(donSku.getGoodsId());
|
|
|
- WxMpTemplateMessage.TemplateData data = templateMessage.getData();
|
|
|
- data.setFirst(new WxMpTemplateData("您的账号即将到期"));
|
|
|
- data.setKeyword1(new WxMpTemplateData(goodsDon.getTitle()));
|
|
|
- data.setKeyword2(new WxMpTemplateData(DateUtil.format(relation.getExpiryTime(), "yyyy-MM-dd HH:mm:ss")));
|
|
|
- data.setRemark(new WxMpTemplateData("请尽快续费,以免影响使用"));
|
|
|
- log.info("发送账号即将到期消息至用户:{}", user.getId());
|
|
|
- weChatService.sendTemplateMessage(weChatService.getAccessToken(wxAppTemplateView.getAppId()), Jsons.toJson(templateMessage));
|
|
|
- }
|
|
|
+ DateTime time = DateUtil.offset(zero, DateField.DAY_OF_MONTH, 3);
|
|
|
+ List<GroupsRelationView> groupsRelations = beanSearcher.searchAll(GroupsRelationView.class, MapUtils.builder().field(GroupsRelationView::getExpiryTime, time).op(Operator.LessEqual).build());
|
|
|
+ //String url = String.format("%sauth/weChat?url=%syinhe/web/ticket", envCommonService.getHost(), envCommonService.getDomain());
|
|
|
+ for (GroupsRelationView relation : groupsRelations) {
|
|
|
+// User user = userMapper.selectById(relation.getUserId());
|
|
|
+// if (user != null && StrUtil.isNotBlank(user.getOpenId())) {
|
|
|
+// String openId = user.getOpenId();
|
|
|
+// WxAppTemplateView wxAppTemplateView = templateCommonService.getWxAppByUserId(openId, TemplateEnum.EXPIRY_TEMPLATE.getDesc());
|
|
|
+// if (wxAppTemplateView != null) {
|
|
|
+// WxMpTemplateMessage templateMessage = new WxMpTemplateMessage()
|
|
|
+// .setToUser(openId)
|
|
|
+// .setTemplateId(wxAppTemplateView.getTemplateId())
|
|
|
+// .setUrl(url);
|
|
|
+//
|
|
|
+// /**
|
|
|
+// * 您的账号即将到期
|
|
|
+// * 账号名称:Netflix账号
|
|
|
+// * 平台:Netflix
|
|
|
+// * 失效日期:3天后
|
|
|
+// * 异常原因:账号即将到期
|
|
|
+// * 请尽快续费,以免影响使用
|
|
|
+// */
|
|
|
+// GroupsTrips groupsTrips = groupsMapper.selectById(relation.getGroupsId());
|
|
|
+// GoodsDonSku donSku = skuMapper.selectById(groupsTrips.getSkuId());
|
|
|
+// GoodsDon goodsDon = donMapper.selectById(donSku.getGoodsId());
|
|
|
+// WxMpTemplateMessage.TemplateData data = templateMessage.getData();
|
|
|
+// data.setFirst(new WxMpTemplateData("您的账号即将到期"));
|
|
|
+// data.setKeyword1(new WxMpTemplateData(goodsDon.getTitle()));
|
|
|
+// data.setKeyword2(new WxMpTemplateData(DateUtil.format(relation.getExpiryTime(), "yyyy-MM-dd HH:mm:ss")));
|
|
|
+// data.setRemark(new WxMpTemplateData("请尽快续费,以免影响使用"));
|
|
|
+// log.info("发送账号即将到期消息至用户:{}", user.getId());
|
|
|
+// weChatService.sendTemplateMessage(weChatService.getAccessToken(wxAppTemplateView.getAppId()), Jsons.toJson(templateMessage));
|
|
|
+// }
|
|
|
|
|
|
// List<Account> accounts = accountMapper.selectList(Wrappers.lambdaQuery(Account.class).le(Account::getExpiryTime, time));
|
|
|
// List<CustomerService> customerServices = customerServiceMapper.selectList(null);
|
|
|
@@ -174,7 +172,14 @@ public class Scheduler {
|
|
|
// weChatService.sendTemplateMessage(weChatService.getAccessToken(),Jsons.toJson(manageMessage));
|
|
|
// }
|
|
|
// }
|
|
|
- }
|
|
|
+// }
|
|
|
+ //短信通知过期账号 用户
|
|
|
+ try {
|
|
|
+ String day = DateUtil.formatBetween(zero, relation.getExpiryTime(), BetweenFormater.Level.DAY);
|
|
|
+ smsService.sendSmsToRelationUser(relation.getUserId(), String.format(Constant.ACCOUNT_EXPIRY_MSG_TEMPLATE, relation.getTitle(), day));
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("过期账号用户:{}发送短信错误:{}", relation.getUserId(), StringUtil.getErrorText(e));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|