浏览代码

短信发送调整

master
zouhantao 2 周前
父节点
当前提交
86285a954e

+ 10
- 50
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ias/message/HltSendShortRequest.java 查看文件

import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.lang.PatternPool; import cn.hutool.core.lang.PatternPool;
import cn.hutool.core.util.ReUtil; import cn.hutool.core.util.ReUtil;
import lombok.Getter;
import lombok.Setter;


/*** /***
* 汇联通-短信消息发送 * 汇联通-短信消息发送
*/ */
@Getter
@Setter
public class HltSendShortRequest extends AbstractIasRequest<HltSendShortResponse> { public class HltSendShortRequest extends AbstractIasRequest<HltSendShortResponse> {


protected HltSendShortRequest() { protected HltSendShortRequest() {
super(ChannelServiceCmd.HLTSENDSHORT); super(ChannelServiceCmd.HLTSENDSHORT);
} }


private String clientId;
private String smsKeyId; // 密钥id
private String message; private String message;
private List<String> mobileList;
private String mobile;
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")
private LocalDateTime sendTime; private LocalDateTime sendTime;




final ArrayList<String> failParamInfo = Lists.newArrayList(); final ArrayList<String> failParamInfo = Lists.newArrayList();


if (clientId == null || clientId.trim().isEmpty())
failParamInfo.add("消息客户端id");

if (message == null || message.trim().isEmpty()) if (message == null || message.trim().isEmpty())
failParamInfo.add("短信内容"); failParamInfo.add("短信内容");


if (mobileList == null || mobileList.size() == 0)
failParamInfo.add("手机号码列表");
if (mobile == null)
failParamInfo.add("手机号码");
else { else {
for (String mobile : mobileList) {
if (!ReUtil.isMatch(PatternPool.MOBILE, mobile))
throw GlyServiceError.RESPONSE_ERROR.toHandleException("请传入正确格式的11位手机号码!");
}
if (!ReUtil.isMatch(PatternPool.MOBILE, mobile))
throw GlyServiceError.RESPONSE_ERROR.toHandleException("请传入正确格式的11位手机号码!");
} }


if (title == null || title.trim().isEmpty()) if (title == null || title.trim().isEmpty())
return this; return this;
} }


public String getClientId() {
return clientId;
}

public void setClientId(String clientId) {
this.clientId = clientId;
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

public List<String> getMobileList() {
return mobileList;
}

public void setMobileList(List<String> mobileList) {
this.mobileList = mobileList;
}

public LocalDateTime getSendTime() {
return sendTime;
}

public void setSendTime(LocalDateTime sendTime) {
this.sendTime = sendTime;
}

public String getTitle() {
return title;
}

public void setTitle(String title) {
this.title = title;
}
} }

+ 28
- 22
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/clientConfig/HltManagerImpl.java 查看文件

package cn.com.taiji.ias.manager.clientConfig; package cn.com.taiji.ias.manager.clientConfig;


import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID; import java.util.UUID;


import cn.com.taiji.core.entity.msgw.MsgwSmsKeyConfig;
import cn.com.taiji.core.repo.jpa.msgw.MsgwSmsKeyConfigRepo;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
private static final Logger logger = LoggerFactory.getLogger(HltManagerImpl.class); private static final Logger logger = LoggerFactory.getLogger(HltManagerImpl.class);
@Autowired @Autowired
private ThreadPoolTools threadPoolTools; private ThreadPoolTools threadPoolTools;
@Autowired
private MsgwSmsKeyConfigRepo smsKeyConfigRepo;


private static final String URL_V1 = "http://192.168.100.63:8130/api/v1/execute.html";// private static final String URL_V1 = "http://192.168.100.63:8130/api/v1/execute.html";//
private static final String SENDER_ID_V1 = "5c7c94dc740948f9adcd0a18c1ebfc92";// private static final String SENDER_ID_V1 = "5c7c94dc740948f9adcd0a18c1ebfc92";//
threadPoolTools.execute(() -> { threadPoolTools.execute(() -> {
logger.info("********** 短信发送 START **********"); logger.info("********** 短信发送 START **********");
int successCount = 0; int successCount = 0;
String errorReason = "部分短信发送失败!";
List<String> failTouserList = new ArrayList<>();

List<String> mobileList = request.getMobileList();
for (String mobile : mobileList) {
//配置统一会员会员平台的参数
SubmitSmsRequset sendReq =new SubmitSmsRequset();
sendReq.setMobile(mobile);
sendReq.setSms(request.getMessage());
try {
sendHltSmsV1(sendReq);
} catch (Exception e) {
throw new RuntimeException(e);
}
//配置统一会员会员平台的参数
SubmitSmsRequset sendReq =new SubmitSmsRequset();
sendReq.setMobile(request.getMobile());
sendReq.setSms(request.getMessage());
try {
sendHltSmsV1(sendReq, request.getSmsKeyId());
} catch (Exception e) {
throw new RuntimeException(e);
} }
logger.info("********** 短信发送 END **********"); logger.info("********** 短信发送 END **********");


//消息发送失败告警 //消息发送失败告警
if (successCount != request.getMobileList().size()) {
// if (successCount != request.getMobileList().size()) {
// MessageAlarmRequest alarmRequest = new MessageAlarmRequest( // MessageAlarmRequest alarmRequest = new MessageAlarmRequest(
// message.getId(), // message.getId(),
// failTouserList, // failTouserList,
// successCount, // successCount,
// errorReason); // errorReason);
// pushMessageAlarmManager.messageAlarm(alarmRequest); // pushMessageAlarmManager.messageAlarm(alarmRequest);
}
// }
}); });
} }




private void sendHltSmsV1(SubmitSmsRequset sendReq) throws Exception {
private void sendHltSmsV1(SubmitSmsRequset sendReq, String smsKey) throws Exception {
MsgwSmsKeyConfig keyConfig = new MsgwSmsKeyConfig();
if (!smsKey.isEmpty()){
keyConfig = smsKeyConfigRepo.findById(smsKey).orElse(null);
}
String smsServerUrl = URL_V1; String smsServerUrl = URL_V1;
sendReq.setSenderId(SENDER_ID_V1);
sendReq.setChannelCode(SMS_CHANNEL_CODE_V1);
sendReq.setSmsTypeCode(SMS_TYPE_CODE_V1);
if (keyConfig == null){
sendReq.setSenderId(SENDER_ID_V1);
sendReq.setChannelCode(SMS_CHANNEL_CODE_V1);
sendReq.setSmsTypeCode(SMS_TYPE_CODE_V1);
}else {
sendReq.setSenderId(keyConfig.getSmsSenderId());
sendReq.setChannelCode(keyConfig.getSmsChannelCode());
sendReq.setSmsTypeCode(keyConfig.getSmsTypeCode());
}
sendReq.setSourceName("统一会员平台"); sendReq.setSourceName("统一会员平台");
logger.info(sendReq.toJson(true)); logger.info(sendReq.toJson(true));



正在加载...
取消
保存