|
@@ -192,15 +192,16 @@ public class VipCardRecordServiceImpl extends ServiceImpl<VipCardRecordDao, VipC
|
|
|
//提前三天提示
|
|
|
List<VipCardRecordVo> temporaryRecords = baseMapper.selectTemporaryRecord();
|
|
|
//标识
|
|
|
- Map<Long, Long> temporaryFlagMap = new HashMap<>();
|
|
|
+ Set<String> sendFlag = new HashSet<>();
|
|
|
for (VipCardRecordVo record : temporaryRecords) {
|
|
|
- if (null != temporaryFlagMap.get(record.getUserId())) {
|
|
|
+ String key = record.getUserId() + "_" + record.getVipType().getCode() + "_" + record.getClientType().getCode();
|
|
|
+ if (sendFlag.contains(key)) {
|
|
|
continue;
|
|
|
}
|
|
|
- temporaryFlagMap.put(record.getUserId(), record.getUserId());
|
|
|
+ sendFlag.add(key);
|
|
|
//发送消息
|
|
|
CompletableFuture.runAsync(() -> {
|
|
|
- temporary3DaysSend(record.getUserId(), record.getPhone(),record.getClientType());
|
|
|
+ temporary3DaysSend(record.getUserId(), record.getPhone(), record.getClientType(), record.getVipType());
|
|
|
});
|
|
|
record.setMsgStatus(1);
|
|
|
record.setUpdateTime(new Date());
|
|
@@ -213,16 +214,17 @@ public class VipCardRecordServiceImpl extends ServiceImpl<VipCardRecordDao, VipC
|
|
|
//到期提示
|
|
|
List<VipCardRecordVo> expireRecords = baseMapper.selectExpireRecord();
|
|
|
//标识
|
|
|
- Map<Long, Long> expireFlagMap = new HashMap<>();
|
|
|
+ Set<String> expireSendFlag = new HashSet<>();
|
|
|
for (VipCardRecordVo record : expireRecords) {
|
|
|
- if (null != expireFlagMap.get(record.getUserId())) {
|
|
|
+ String key = record.getUserId() + "_" + record.getVipType().getCode() + "_" + record.getClientType().getCode();
|
|
|
+ if (expireSendFlag.contains(key)) {
|
|
|
continue;
|
|
|
}
|
|
|
- expireFlagMap.put(record.getUserId(), record.getUserId());
|
|
|
+ expireSendFlag.add(key);
|
|
|
//发送消息
|
|
|
//发送消息
|
|
|
CompletableFuture.runAsync(() -> {
|
|
|
- expireSend(record.getUserId(),record.getPhone(), record.getClientType());
|
|
|
+ expireSend(record.getUserId(),record.getPhone(), record.getClientType(), record.getVipType());
|
|
|
});
|
|
|
record.setMsgStatus(2);
|
|
|
record.setUpdateTime(new Date());
|
|
@@ -346,7 +348,12 @@ public class VipCardRecordServiceImpl extends ServiceImpl<VipCardRecordDao, VipC
|
|
|
|
|
|
// 设置剩余天数
|
|
|
if (userVip.getVipEndDate() != null) {
|
|
|
- int num = DateUtil.daysBetween(new Date(), userVip.getVipEndDate()) +1;
|
|
|
+ int num;
|
|
|
+ if (userVip.getSvipEndDate() != null && userVip.getSvipEndDate().after(new Date())) {
|
|
|
+ num = DateUtil.daysBetween(userVip.getSvipEndDate(), userVip.getVipEndDate());
|
|
|
+ } else {
|
|
|
+ num = DateUtil.daysBetween(new Date(), userVip.getVipEndDate()) + 1;
|
|
|
+ }
|
|
|
userVip.setVipEndDays(Math.max(num, 0));
|
|
|
}
|
|
|
if (userVip.getSvipEndDate() != null) {
|
|
@@ -728,55 +735,58 @@ public class VipCardRecordServiceImpl extends ServiceImpl<VipCardRecordDao, VipC
|
|
|
}
|
|
|
|
|
|
// 发送会员到期3天消息推送
|
|
|
- private void temporary3DaysSend(Long userId, String phone, ClientEnum clientType) {
|
|
|
+ private void temporary3DaysSend(Long userId, String phone, ClientEnum clientType, EVipType vipType) {
|
|
|
Map<Long, String> receivers = new HashMap<>();
|
|
|
receivers.put(userId, phone);
|
|
|
// 判断是否是机构学生 机构学生推送走另一个
|
|
|
if (clientType.equals(ClientEnum.STUDENT)) {
|
|
|
- } else {
|
|
|
- try {
|
|
|
- String url = sysMessageService.selectConfigUrl(MessageTypeEnum.VIP_EXPIRE_THIRTY_DAY.getCode());
|
|
|
- sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.VIP_EXPIRE_THIRTY_DAY,
|
|
|
- receivers, null, 0, url, ClientEnum.STUDENT.getCode());
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("会员到期3天极光消息推送异常,userId={}", userId);
|
|
|
+ Student student = studentService.getById(userId);
|
|
|
+ if (student == null || (student.getTenantId() != null && student.getTenantId() > 0 )) {
|
|
|
+ return;
|
|
|
}
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
|
|
|
+ EVipType.VIP.equals(vipType) ? MessageTypeEnum.VIP_EXPIRE_THIRTY_DAY : MessageTypeEnum.SVIP_EXPIRE_THIRTY_DAY
|
|
|
+ , receivers, null, 0, null, clientType.getCode());
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("会员到期3天极光消息推送异常,userId={}", userId);
|
|
|
+ }
|
|
|
|
|
|
- try {
|
|
|
- String url = sysMessageService.selectConfigUrl(MessageTypeEnum.SMS_VIP_EXPIRE_THIRTY_DAY.getCode());
|
|
|
- sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_VIP_EXPIRE_THIRTY_DAY,
|
|
|
- receivers, null, 0, null, ClientEnum.STUDENT.getCode(), url);
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("会员到期3天短信消息推送异常,userId={}", userId);
|
|
|
- }
|
|
|
+ try {
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS,
|
|
|
+ EVipType.VIP.equals(vipType) ? MessageTypeEnum.SMS_VIP_EXPIRE_THIRTY_DAY : MessageTypeEnum.SMS_SVIP_EXPIRE_THIRTY_DAY
|
|
|
+ , receivers, null, 0, null, clientType.getCode());
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("会员到期3天短信消息推送异常,userId={}", userId);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 发送会员到期消息推送
|
|
|
- private void expireSend(Long userId,String phone,ClientEnum userType) {
|
|
|
+ private void expireSend(Long userId,String phone,ClientEnum userType, EVipType vipType) {
|
|
|
Map<Long, String> receivers = new HashMap<>();
|
|
|
receivers.put(userId, phone);
|
|
|
Student student = studentService.getById(userId);
|
|
|
if (userType.equals(ClientEnum.STUDENT) && student != null && student.getTenantId() != null && student.getTenantId() >0) {
|
|
|
- try {
|
|
|
- sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.TENANT_VIP_EXPIRE,
|
|
|
- receivers, null, 0, null, ClientEnum.TENANT_STUDENT.getCode());
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("会员到期极光消息推送异常,userId={}", userId);
|
|
|
- }
|
|
|
+// try {
|
|
|
+// sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.TENANT_VIP_EXPIRE,
|
|
|
+// receivers, null, 0, null, ClientEnum.TENANT_STUDENT.getCode());
|
|
|
+// } catch (Exception e) {
|
|
|
+// log.error("会员到期极光消息推送异常,userId={}", userId);
|
|
|
+// }
|
|
|
} else {
|
|
|
try {
|
|
|
- String url = sysMessageService.selectConfigUrl(MessageTypeEnum.VIP_EXPIRE.getCode());
|
|
|
- sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.VIP_EXPIRE,
|
|
|
- receivers, null, 0, url, userType.getCode());
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
|
|
|
+ EVipType.VIP.equals(vipType) ? MessageTypeEnum.VIP_EXPIRE : MessageTypeEnum.SVIP_EXPIRE
|
|
|
+ ,receivers, null, 0, null, userType.getCode());
|
|
|
} catch (Exception e) {
|
|
|
log.error("会员到期3天极光消息推送异常,userId={}", userId);
|
|
|
}
|
|
|
|
|
|
try {
|
|
|
- String url = sysMessageService.selectConfigUrl(MessageTypeEnum.SMS_VIP_EXPIRE.getCode());
|
|
|
- sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.SMS_VIP_EXPIRE,
|
|
|
- receivers, null, 0, null, userType.getCode(), url);
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS,
|
|
|
+ EVipType.VIP.equals(vipType) ? MessageTypeEnum.SMS_VIP_EXPIRE : MessageTypeEnum.SMS_SVIP_EXPIRE,
|
|
|
+ receivers, null, 0, null, userType.getCode());
|
|
|
} catch (Exception e) {
|
|
|
log.error("会员到期3天短信消息推送异常,userId={}", userId);
|
|
|
}
|