package com.ruoyi.message.sms.provider.sltd.ws;
|
|
import com.ruoyi.common.utils.uuid.UUID;
|
import lombok.extern.slf4j.Slf4j;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
|
/**
|
* 省立同德信息发送接口。
|
* <p>
|
* 迁移说明:原类为 {@code com.ruoyi.common.dx.MessageSend},随「短信发送方」一起收口到
|
* {@code ruoyi-message} 模块。方法签名与行为保持不变,便于调用方零改动切换。
|
*/
|
@Slf4j
|
public class MessageSend {
|
|
private static final Logger logger = LoggerFactory.getLogger(MessageSend.class);
|
|
/**
|
* 厂家许可号(硬编码)。
|
* <p>
|
* TODO 待确认:原实现把厂家许可号写死在代码里,未走配置,此处保持原值不变。
|
*/
|
private static final String SERVICE_NUMBER = "202508291634227086";
|
|
/**
|
* 短信模板许可号(内容带链接和电话)
|
*/
|
private static final String SMS_TEMPLATE_NUMBER = "T202508291635259440";
|
|
/**
|
* 钉钉消息模板许可号
|
*/
|
private static final String DINGTALK_TEMPLATE_NUMBER = "T202607211306131891";
|
|
/**
|
* 省立同德信息发送
|
*
|
* @param sMessageContent 短信内容
|
* @param sMessageType 短信类型 1=验证码、2=通知、3=广告 6=内容有链接和电话,7=钉钉消息
|
* @param sUserNumber 手机号码
|
* @param sScheduleTime 预约发送时间
|
* @return 第三方原始响应
|
*/
|
public static String sendMsg(String sMessageContent, String sMessageType, String sUserNumber, String sScheduleTime) {
|
log.info("--sMessageContent 的值为:{} ,--sMessageType 的值为:{}, --sUserNumber 的值为:{}, --sScheduleTime 的值为:{}", sMessageContent, sMessageType, sUserNumber, sScheduleTime);
|
|
SmsService service = new SmsService();
|
SmsServiceSoap soap = service.getSmsServiceSoap();
|
String result = null;
|
|
try {
|
if ("6".equals(sMessageType)) {
|
result = soap.i5GSend(SERVICE_NUMBER, SMS_TEMPLATE_NUMBER, UUID.randomUUID().toString(), sMessageContent, sMessageType, sUserNumber, sScheduleTime);
|
log.info("----短信返回的数据为:{}, ----sMessageContent 的值为:{}", result, UUID.randomUUID().toString());
|
} else if ("7".equals(sMessageType)) {
|
result = soap.i5GSend(SERVICE_NUMBER, DINGTALK_TEMPLATE_NUMBER,
|
UUID.randomUUID().toString(), sMessageContent, sMessageType, sUserNumber, sScheduleTime);
|
log.info("----钉钉返回的原始数据为:{}", result);
|
} else {
|
log.warn("不支持的短信类型:{}", sMessageType);
|
}
|
} catch (Exception e) {
|
//原实现为 e.getCause().getMessage(),当 cause 为 null 时会抛 NPE 掩盖真实异常,这里做防御
|
String cause = e.getCause() == null ? e.getMessage() : e.getCause().getMessage();
|
logger.error("完整错误信息:{}", cause);
|
}
|
|
return result;
|
}
|
}
|