perf: 短信多个发送

dev
huangfeng 11 months ago
parent 5d054ec7bf
commit c0574a47d9

@ -4,12 +4,13 @@ import lombok.Data;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List;
@Data @Data
public class SmsModel { public class SmsModel {
@NotNull(message = "termId不能为空") @NotNull(message = "termIdList不能为空")
private Integer termId; private List<Integer> termIdList;
@NotBlank(message = "content不能为空") @NotBlank(message = "content不能为空")
private String content; private String content;
} }

@ -10,6 +10,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.util.ArrayList;
@ -28,20 +29,30 @@ public class SmsServiceImpl implements SmsService {
@Override @Override
public void sendSms(SmsModel model) { public void sendSms(SmsModel model) {
Terminals term = newCacheService.getTerminal(model.getTermId()); List<String> dahanList = new ArrayList<>();
if (term == null) { List<String> rabchaserList = new ArrayList<>();
throw new ApiException("该装置不存在"); for (Integer termId : model.getTermIdList()) {
Terminals term = newCacheService.getTerminal(termId);
if (term == null) {
throw new ApiException(termId + "该装置不存在");
}
if (StringUtils.isBlank(term.getIccid())) {
throw new ApiException(termId + "该装置缺少iccid");
}
if (Constants.NetType_Dahan.equals(term.getNetType())) {
dahanList.add(term.getIccid());
} else if (Constants.NetType_Rabchaser.equals(term.getNetType())) {
rabchaserList.add(term.getIccid());
} else {
throw new ApiException(termId + "该装置的网络运营商类型暂不支持发短信");
}
} }
if (StringUtils.isBlank(term.getIccid())) {
throw new ApiException("该装置缺少iccid"); if (!CollectionUtils.isEmpty(dahanList)) {
smsAdapter.sendSms(Constants.NetType_Dahan, dahanList, model.getContent());
} }
List<String> iccidList = new ArrayList<>(); if (!CollectionUtils.isEmpty(rabchaserList)) {
iccidList.add(term.getIccid()); smsAdapter.sendSms(Constants.NetType_Rabchaser, rabchaserList, model.getContent());
if (Constants.NetType_Dahan.equals(term.getNetType()) ||
Constants.NetType_Rabchaser.equals(term.getNetType())) {
smsAdapter.sendSms(term.getNetType(), iccidList, model.getContent());
} else {
throw new ApiException("该装置的网络运营商类型不正确");
} }
} }
} }

Loading…
Cancel
Save