修改发送短信逻辑 更改实体

master
bynt 3 years ago
parent f09a1d29b6
commit 3c2f4dabb3

@ -57,6 +57,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* @author Enzo * @author Enzo
@ -70,7 +71,6 @@ import java.util.*;
public class TbSendSmsServiceImpl implements TbSendSmsService { public class TbSendSmsServiceImpl implements TbSendSmsService {
/** /**
* hutool * hutool
*/ */
@ -148,32 +148,36 @@ public class TbSendSmsServiceImpl implements TbSendSmsService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void sendSmsBySendVo(SendVo vo) { public void sendSmsBySendVo(SendVo vo) {
List<SendVo.DataInfo> infos = vo.getData(); List<SendVo.DataInfo> infos = vo.getData();
for (SendVo.DataInfo info : infos) { List<String> mobileList = new ArrayList<>();
TbTemplate template = lruCache.get(info.getTaskName()); 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) { if (template == null) {
template = tbTemplateRepository.findByTaskName(info.getTaskName()); template = tbTemplateRepository.findByTaskName(taskName);
// 5分钟缓存 // 5分钟缓存
lruCache.put(info.getTaskName(), template, lruCache.put(taskName, template,
DateUnit.MINUTE.getMillis() * DefaultConstant.FIVE_NUMBER); DateUnit.MINUTE.getMillis() * DefaultConstant.FIVE_NUMBER);
} }
log.info(" template as [{}]" , template); log.info(" template as [{}]", template);
if (template == null) { if (template == null) {
log.info("send Sms fail the Template is null "); log.info("send Sms fail the Template is null ");
throw new BadRequestException("模板信息为空"); throw new BadRequestException("模板信息为空");
} }
listMap.get(taskName).forEach(info -> mobileList.add(info.getMobile()));
Map<String, Object> map = new HashMap<>(DefaultConstant.TWO_NUMBER); Map<String, Object> map = new HashMap<>(DefaultConstant.TWO_NUMBER);
map.put("baseUrlAddr", template.getLinkUrl()); map.put("baseUrlAddr", template.getLinkUrl());
map.put("variableList", info.getPhoneList()); map.put("variableList", mobileList);
// 接收生成短链参数 // 接收生成短链参数
ShortLinkUrlDto urlDto = ShortLinkUrlDto urlDto =
JSONUtil.toBean(HttpUtil.post JSONUtil.toBean(HttpUtil.post
(SmsConstant.SHORT_GENERATION_LINK, (SmsConstant.SHORT_GENERATION_LINK,
JSON.toJSONString(map)), JSON.toJSONString(map)),
ShortLinkUrlDto.class); ShortLinkUrlDto.class);
log.info(" urlDto response message [{}]" , urlDto); log.info(" urlDto response message [{}]", urlDto);
if (urlDto == null || urlDto.getData() == null || if (urlDto == null || urlDto.getData() == null ||
urlDto.getStatus() != DefaultConstant.ZERO_NUMBER) { urlDto.getStatus() != DefaultConstant.ZERO_NUMBER) {
log.info("send Sms fail the urlDto is fail urlResponse message [{}]" , urlDto != null ? urlDto.getMsg() : null); log.info("send Sms fail the urlDto is fail urlResponse message [{}]", urlDto != null ? urlDto.getMsg() : null);
throw new BadRequestException("短链生成失败"); throw new BadRequestException("短链生成失败");
} }
TbSendSms sendSms; TbSendSms sendSms;
@ -187,9 +191,9 @@ public class TbSendSmsServiceImpl implements TbSendSmsService {
phone = split[1]; phone = split[1];
linkUrl = split[0]; linkUrl = split[0];
String sendMessage = message.replace String sendMessage = message.replace
("${url}", ("${url}",
StrUtil.SPACE + StrUtil.SPACE +
SmsConstant.SHORT_CHAIN_PREFIX + linkUrl); SmsConstant.SHORT_CHAIN_PREFIX + linkUrl);
sendSms.setPhone(phone); sendSms.setPhone(phone);
sendSms.setLinkUrl(linkUrl); sendSms.setLinkUrl(linkUrl);
sendSms.setIsLinkCallback(DefaultConstant.ZERO_NUMBER); sendSms.setIsLinkCallback(DefaultConstant.ZERO_NUMBER);
@ -200,8 +204,9 @@ public class TbSendSmsServiceImpl implements TbSendSmsService {
sendSms.setSendStatus(sendResult ? StatusEnum.SUCCESS.getValue() : StatusEnum.UNSUCCESSFUL.getValue()); sendSms.setSendStatus(sendResult ? StatusEnum.SUCCESS.getValue() : StatusEnum.UNSUCCESSFUL.getValue());
tbSendSmsRepository.save(sendSms); tbSendSmsRepository.save(sendSms);
} }
log.info("======= [ sendSms send size {} ] =======", info.getPhoneList().size()); log.info("======= [ sendSms send size {} ] =======", listMap.get(taskName).size());
} }
} }
@Override @Override
@ -222,7 +227,7 @@ public class TbSendSmsServiceImpl implements TbSendSmsService {
(RandomUtil.randomString(DefaultConstant.TEN_NUMBER)); (RandomUtil.randomString(DefaultConstant.TEN_NUMBER));
String signature = SmsConstant.APP_ID + String signature = SmsConstant.APP_ID +
SmsConstant.TOKEN + SmsConstant.TOKEN +
DateUtil.format DateUtil.format
(new Date(), SmsConstant.FORMATE_TIMESTAMP); (new Date(), SmsConstant.FORMATE_TIMESTAMP);
signature = SecureUtil.md5(signature).toUpperCase(); signature = SecureUtil.md5(signature).toUpperCase();
// 配置 sign // 配置 sign

@ -42,8 +42,8 @@ public class SendVo {
/** /**
* Base64 * Base64
*/ */
@JsonProperty("list") @JsonProperty("mobile")
private List<String> phoneList; private String mobile;
} }
} }

Loading…
Cancel
Save