package com.ruoyi.message.sms.provider.nhfy;
|
|
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;
|
|
import java.util.Map;
|
|
/**
|
* 南华附一短信发送方({@code nhfy} 通道)。
|
* <p>
|
* 对接特征:REST + 行业汇聚平台 {@code /submitsm},鉴权 {@code HASHHEX = MD5(MD5:账号:密码:时间)},
|
* 成功判定为响应 {@code result == "0"}。
|
* 代码来源:{@code RyTask.nhfy 分支} + {@code RedisMqReceiver.nhfy 分支} + {@code SmsController} + {@code smsSubTask}。
|
*/
|
@Slf4j
|
@Component
|
public class NhfySmsSender extends AbstractSmsSender {
|
|
/**
|
* 渠道 key,与 {@code spring.profiles.active=nhfy} 对应
|
*/
|
public static final String KEY = "nhfy";
|
|
private final MtSubmitSmUtil mtSubmitSmUtil;
|
|
public NhfySmsSender(MtSubmitSmUtil mtSubmitSmUtil) {
|
this.mtSubmitSmUtil = mtSubmitSmUtil;
|
}
|
|
@Override
|
public String key() {
|
return KEY;
|
}
|
|
@Override
|
public String description() {
|
return "南华附一短信(行业汇聚平台 /submitsm)";
|
}
|
|
@Override
|
protected SendResult doSend(SmsSendRequest request) {
|
Map<String, Object> resp = mtSubmitSmUtil.submitSm(request.getPhone(), request.getContent());
|
log.info("【{}】南华附一短信发送结果:{}", KEY, resp);
|
|
Object result = resp == null ? null : resp.get("result");
|
String code = result == null ? null : result.toString();
|
if (MtSubmitSmUtil.isSuccess(resp)) {
|
return SendResult.success(KEY, MessageChannel.SMS, String.valueOf(resp)).withCode(code);
|
}
|
return SendResult.fail(KEY, MessageChannel.SMS, "短信发送失败", String.valueOf(resp)).withCode(code);
|
}
|
}
|