|
|
|
@ -57,6 +57,7 @@ import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import java.sql.Timestamp;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @author Enzo
|
|
|
|
@ -70,7 +71,6 @@ import java.util.*;
|
|
|
|
|
public class TbSendSmsServiceImpl implements TbSendSmsService {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* hutool 缓存
|
|
|
|
|
*/
|
|
|
|
@ -148,12 +148,15 @@ public class TbSendSmsServiceImpl implements TbSendSmsService {
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public void sendSmsBySendVo(SendVo vo) {
|
|
|
|
|
List<SendVo.DataInfo> infos = vo.getData();
|
|
|
|
|
for (SendVo.DataInfo info : infos) {
|
|
|
|
|
TbTemplate template = lruCache.get(info.getTaskName());
|
|
|
|
|
List<String> mobileList = new ArrayList<>();
|
|
|
|
|
Map<String, List<SendVo.DataInfo>> listMap = infos.stream().
|
|
|
|
|
collect(Collectors.groupingBy(SendVo.DataInfo::getTaskName));
|
|
|
|
|
for (String taskName : listMap.keySet()) {
|
|
|
|
|
TbTemplate template = lruCache.get(taskName);
|
|
|
|
|
if (template == null) {
|
|
|
|
|
template = tbTemplateRepository.findByTaskName(info.getTaskName());
|
|
|
|
|
template = tbTemplateRepository.findByTaskName(taskName);
|
|
|
|
|
// 5分钟缓存
|
|
|
|
|
lruCache.put(info.getTaskName(), template,
|
|
|
|
|
lruCache.put(taskName, template,
|
|
|
|
|
DateUnit.MINUTE.getMillis() * DefaultConstant.FIVE_NUMBER);
|
|
|
|
|
}
|
|
|
|
|
log.info(" template as [{}]", template);
|
|
|
|
@ -161,9 +164,10 @@ public class TbSendSmsServiceImpl implements TbSendSmsService {
|
|
|
|
|
log.info("send Sms fail the Template is null ");
|
|
|
|
|
throw new BadRequestException("模板信息为空");
|
|
|
|
|
}
|
|
|
|
|
listMap.get(taskName).forEach(info -> mobileList.add(info.getMobile()));
|
|
|
|
|
Map<String, Object> map = new HashMap<>(DefaultConstant.TWO_NUMBER);
|
|
|
|
|
map.put("baseUrlAddr", template.getLinkUrl());
|
|
|
|
|
map.put("variableList", info.getPhoneList());
|
|
|
|
|
map.put("variableList", mobileList);
|
|
|
|
|
// 接收生成短链参数
|
|
|
|
|
ShortLinkUrlDto urlDto =
|
|
|
|
|
JSONUtil.toBean(HttpUtil.post
|
|
|
|
@ -200,8 +204,9 @@ public class TbSendSmsServiceImpl implements TbSendSmsService {
|
|
|
|
|
sendSms.setSendStatus(sendResult ? StatusEnum.SUCCESS.getValue() : StatusEnum.UNSUCCESSFUL.getValue());
|
|
|
|
|
tbSendSmsRepository.save(sendSms);
|
|
|
|
|
}
|
|
|
|
|
log.info("======= [ sendSms send size {} ] =======", info.getPhoneList().size());
|
|
|
|
|
log.info("======= [ sendSms send size {} ] =======", listMap.get(taskName).size());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|