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; /** * 省立同德信息发送接口。 *
* 迁移说明:原类为 {@code com.ruoyi.common.dx.MessageSend},随「短信发送方」一起收口到 * {@code ruoyi-message} 模块。方法签名与行为保持不变,便于调用方零改动切换。 */ @Slf4j public class MessageSend { private static final Logger logger = LoggerFactory.getLogger(MessageSend.class); /** * 厂家许可号(硬编码)。 *
* 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; } }