package com.ruoyi.message;
|
|
import java.io.Serializable;
|
|
/**
|
* 统一发送结果。
|
* <p>
|
* 各站点原始实现用字符串标记(如 {@code "true"} / {@code "success"} / {@code Boolean})表示成败,
|
* 调用方各自解析第三方返回格式,容易出错。本类把「是否成功 + 渠道 + 第三方原始码 + 原始响应」统一收口。
|
* <p>
|
* 注意:{@link #ok} 为 false 时,{@link #message} 已经包含可直接写入随访子任务 remark 的中文描述,
|
* 但为了保持各站点线上行为不变,调用方仍可沿用原有 remark 文案。
|
*/
|
public class SendResult implements Serializable {
|
|
private static final long serialVersionUID = 1L;
|
|
/**
|
* 是否发送成功
|
*/
|
private boolean ok;
|
|
/**
|
* 渠道类型:短信 / 微信公众号
|
*/
|
private MessageChannel channelType;
|
|
/**
|
* 具体发送方 key,例如 xh / ls / sltd / nhfy / hzszlyy
|
*/
|
private String senderKey;
|
|
/**
|
* 第三方返回的业务码(有就带上,没有为 null),例如丽水的 Code、市一的 code
|
*/
|
private String code;
|
|
/**
|
* 失败原因 / 补充说明
|
*/
|
private String message;
|
|
/**
|
* 第三方原始响应,便于排查
|
*/
|
private String rawResponse;
|
|
public SendResult() {
|
}
|
|
/**
|
* 构造成功结果
|
*/
|
public static SendResult success(String senderKey, MessageChannel channelType, String rawResponse) {
|
SendResult result = new SendResult();
|
result.ok = true;
|
result.senderKey = senderKey;
|
result.channelType = channelType;
|
result.rawResponse = rawResponse;
|
return result;
|
}
|
|
/**
|
* 构造失败结果
|
*/
|
public static SendResult fail(String senderKey, MessageChannel channelType, String message, String rawResponse) {
|
SendResult result = new SendResult();
|
result.ok = false;
|
result.senderKey = senderKey;
|
result.channelType = channelType;
|
result.message = message;
|
result.rawResponse = rawResponse;
|
return result;
|
}
|
|
/**
|
* 补充第三方业务码,返回自身便于链式调用
|
*/
|
public SendResult withCode(String code) {
|
this.code = code;
|
return this;
|
}
|
|
/**
|
* 补充说明信息,返回自身便于链式调用
|
*/
|
public SendResult withMessage(String message) {
|
this.message = message;
|
return this;
|
}
|
|
/**
|
* 返回与旧代码等价的布尔标记,便于渐进式替换
|
*
|
* @return 成功返回 "true",失败返回 "false"
|
*/
|
public String asLegacyFlag() {
|
return ok ? "true" : "false";
|
}
|
|
public boolean isOk() {
|
return ok;
|
}
|
|
public void setOk(boolean ok) {
|
this.ok = ok;
|
}
|
|
public MessageChannel getChannelType() {
|
return channelType;
|
}
|
|
public void setChannelType(MessageChannel channelType) {
|
this.channelType = channelType;
|
}
|
|
public String getSenderKey() {
|
return senderKey;
|
}
|
|
public void setSenderKey(String senderKey) {
|
this.senderKey = senderKey;
|
}
|
|
public String getCode() {
|
return code;
|
}
|
|
public void setCode(String code) {
|
this.code = code;
|
}
|
|
public String getMessage() {
|
return message;
|
}
|
|
public void setMessage(String message) {
|
this.message = message;
|
}
|
|
public String getRawResponse() {
|
return rawResponse;
|
}
|
|
public void setRawResponse(String rawResponse) {
|
this.rawResponse = rawResponse;
|
}
|
|
@Override
|
public String toString() {
|
return "SendResult{ok=" + ok
|
+ ", channelType=" + channelType
|
+ ", senderKey='" + senderKey + '\''
|
+ ", code='" + code + '\''
|
+ ", message='" + message + '\''
|
+ ", rawResponse='" + rawResponse + '\''
|
+ '}';
|
}
|
}
|