短信优化
This commit is contained in:
@ -175,7 +175,7 @@ sms:
|
||||
# 配置源类型用于标定配置来源(interface,yaml)
|
||||
config-type: yaml
|
||||
# 用于标定yml中的配置是否开启短信拦截,接口配置不受此限制
|
||||
restricted: true
|
||||
restricted: false
|
||||
# 短信拦截限制单手机号每分钟最大发送,只对开启了拦截的配置有效
|
||||
minute-max: 1
|
||||
# 短信拦截限制单手机号每日最大发送量,只对开启了拦截的配置有效
|
||||
|
||||
@ -19,9 +19,7 @@ import org.dromara.system.service.ISysRoleService;
|
||||
import org.dromara.system.service.ISysUserService;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.*;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
@ -59,6 +57,7 @@ public class DesignFileJob {
|
||||
.eq(DesSmsRecord::getAgain, "1")
|
||||
.le(DesSmsRecord::getCreateTime, threeDaysAgo) // Date类型直接比较
|
||||
);
|
||||
HashSet<String> phoneNumbers = new HashSet<>();
|
||||
for (DesSmsRecord record : records) {
|
||||
DesVolumeFile desVolumeFile = designFileService.getById(record.getVolumeFileId());
|
||||
DesVolumeCatalog desVolumeCatalog = volumeCatalogService.getById(desVolumeFile.getVolumeCatalogId());
|
||||
@ -85,10 +84,13 @@ public class DesignFileJob {
|
||||
List<Long> list1 = list.stream().map(DesVolumeFileViewer::getUserId).toList();
|
||||
//找出没有查看的人 发送短信
|
||||
List<SysUser> list2 = sysUsers.stream().filter(vo -> !list1.contains(vo.getUserId())).toList();
|
||||
asyncUtil.sendSms(list2.stream().map(SysUser::getPhonenumber).toList(), "config5");
|
||||
phoneNumbers.addAll(list2.stream().map(SysUser::getPhonenumber).toList());
|
||||
|
||||
}
|
||||
|
||||
if(CollectionUtil.isEmpty(phoneNumbers)){
|
||||
return;
|
||||
}
|
||||
asyncUtil.sendSms(new ArrayList<>(phoneNumbers), "config5");
|
||||
List<Long> list1 = records.stream().map(DesSmsRecord::getId).toList();
|
||||
|
||||
desSmsRecordService.lambdaUpdate().in(DesSmsRecord::getId, list1)
|
||||
|
||||
@ -51,32 +51,40 @@ public class InspectionJob {
|
||||
|
||||
SmsBlend smsBlend = SmsFactory.getSmsBlend("config4");
|
||||
|
||||
List<String> phones = new ArrayList<>();
|
||||
List<Long> userIds = new ArrayList<>();
|
||||
// 每500条记录作为一批进行处理
|
||||
int batchSize = 500;
|
||||
for (int i = 0; i < list.size(); i += batchSize) {
|
||||
int endIndex = Math.min(i + batchSize, list.size());
|
||||
List<QltQualityInspection> batch = list.subList(i, endIndex);
|
||||
List<Long> userIds = new ArrayList<>();
|
||||
|
||||
for (QltQualityInspection qualityInspection : batch) {
|
||||
Long correctorId = qualityInspection.getCorrectorId();
|
||||
String phonenumber = userService.queryById(correctorId).getPhonenumber();
|
||||
if (phonenumber == null) {
|
||||
continue;
|
||||
}
|
||||
if(phones.contains(phonenumber)){
|
||||
continue;
|
||||
}
|
||||
phones.add(phonenumber);
|
||||
SmsResponse smsResponse = smsBlend.sendMessage(phonenumber, new LinkedHashMap<String, String>());
|
||||
if (!smsResponse.isSuccess()) {
|
||||
log.error("验证码短信发送异常 => {}", smsResponse);
|
||||
}
|
||||
if(!userIds.contains(correctorId)){
|
||||
userIds.add(correctorId);
|
||||
}
|
||||
if(userIds.isEmpty()){
|
||||
continue;
|
||||
|
||||
}
|
||||
log.info("质量工单短信提醒批次发送完成,当前批次数量: {}", batch.size());
|
||||
}
|
||||
if(!userIds.isEmpty()){
|
||||
SseMessageDto sseMessageDto = new SseMessageDto();
|
||||
sseMessageDto.setMessage("您负责整改的质量工单已逾期,请尽快前往处理!");
|
||||
sseMessageDto.setUserIds(userIds);
|
||||
SseMessageUtils.publishMessage(sseMessageDto);
|
||||
log.info("质量工单短信提醒批次发送完成,当前批次数量: {}", batch.size());
|
||||
}
|
||||
|
||||
log.info("执行定时任务:质量工单短信提醒完成,总处理数量: {}", list.size());
|
||||
@ -93,34 +101,38 @@ public class InspectionJob {
|
||||
|
||||
SmsBlend smsBlend = SmsFactory.getSmsBlend("config6");
|
||||
|
||||
List<String> phones = new ArrayList<>();
|
||||
List<Long> userIds = new ArrayList<>();
|
||||
// 每500条记录作为一批进行处理
|
||||
int batchSize = 500;
|
||||
for (int i = 0; i < list.size(); i += batchSize) {
|
||||
int endIndex = Math.min(i + batchSize, list.size());
|
||||
List<HseSafetyInspection> batch = list.subList(i, endIndex);
|
||||
|
||||
List<Long> userIds = new ArrayList<>();
|
||||
for (HseSafetyInspection safetyInspection : batch) {
|
||||
Long correctorId = safetyInspection.getCorrectorId();
|
||||
String phonenumber = userService.queryById(correctorId).getPhonenumber();
|
||||
if (phonenumber == null) {
|
||||
continue;
|
||||
}
|
||||
if(phones.contains(phonenumber)){
|
||||
continue;
|
||||
}
|
||||
phones.add(phonenumber);
|
||||
SmsResponse smsResponse = smsBlend.sendMessage(phonenumber, new LinkedHashMap<String, String>());
|
||||
if (!smsResponse.isSuccess()) {
|
||||
log.error("验证码短信发送异常 => {}", smsResponse);
|
||||
}
|
||||
userIds.add(correctorId);
|
||||
}
|
||||
|
||||
log.info("安全工单短信提醒批次发送完成,当前批次数量: {}", batch.size());
|
||||
}
|
||||
if(!userIds.isEmpty()){
|
||||
SseMessageDto sseMessageDto = new SseMessageDto();
|
||||
sseMessageDto.setMessage("您负责整改的安全工单已逾期,请尽快前往处理!");
|
||||
sseMessageDto.setUserIds(userIds);
|
||||
SseMessageUtils.publishMessage(sseMessageDto);
|
||||
|
||||
log.info("安全工单短信提醒批次发送完成,当前批次数量: {}", batch.size());
|
||||
}
|
||||
|
||||
log.info("执行定时任务:安全工单短信提醒完成,总处理数量: {}", list.size());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user