package com.ruoyi.message.sms.provider.messaginginsert;
|
|
import com.ruoyi.message.MessageChannel;
|
import com.ruoyi.message.SendResult;
|
import com.ruoyi.message.sms.AbstractSmsSender;
|
import com.ruoyi.message.sms.SmsSendRequest;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Component;
|
|
/**
|
* 预约挂号短信平台发送方({@code messaging-insert} 通道)。
|
* <p>
|
* 对接特征:Axis SOAP12 {@code SMSMessageAccept(XML)},返回 int。
|
* <p>
|
* 说明:该通道目前只在 {@code SmsParamServiceImpl.sendSmsInfo} 里使用(预约挂号通知短信),
|
* 业务随访流程未走它。收口后可由工厂统一调度。
|
*/
|
@Slf4j
|
@Component
|
public class MessagingInsertSmsSender extends AbstractSmsSender {
|
|
/**
|
* 渠道 key
|
*/
|
public static final String KEY = "messaging-insert";
|
|
private final MessagingInsertSmsApi messagingInsertSmsApi;
|
|
public MessagingInsertSmsSender(MessagingInsertSmsApi messagingInsertSmsApi) {
|
this.messagingInsertSmsApi = messagingInsertSmsApi;
|
}
|
|
@Override
|
public String key() {
|
return KEY;
|
}
|
|
@Override
|
public String description() {
|
return "预约挂号短信平台(MessagingInsert,Axis SOAP12)";
|
}
|
|
@Override
|
protected SendResult doSend(SmsSendRequest request) {
|
Integer code = messagingInsertSmsApi.sendSmsInfo(request.getContent(), request.getPhone());
|
String codeStr = code == null ? null : code.toString();
|
//TODO 待确认:原实现未对返回 int 做成功判定,只把 int 向上返回。
|
// 这里按「非空即成功」处理以保持行为(调用方原本也不判断),确认返回码语义后应改为精确判定。
|
if (code != null) {
|
return SendResult.success(KEY, MessageChannel.SMS, codeStr).withCode(codeStr);
|
}
|
return SendResult.fail(KEY, MessageChannel.SMS, "短信发送失败", null);
|
}
|
}
|