diff --git a/sms4j-api/src/main/java/org/dromara/sms4j/api/utils/SmsRespUtils.java b/sms4j-api/src/main/java/org/dromara/sms4j/api/utils/SmsRespUtils.java new file mode 100644 index 00000000..865c80c2 --- /dev/null +++ b/sms4j-api/src/main/java/org/dromara/sms4j/api/utils/SmsRespUtils.java @@ -0,0 +1,52 @@ +package org.dromara.sms4j.api.utils; + +import org.dromara.sms4j.api.entity.SmsResponse; + +public class SmsRespUtils { + private SmsRespUtils() { + } //私有构造防止实例化 + + public static SmsResponse error(){ + return error("error no response", null); + } + + public static SmsResponse error(String configId){ + return error("error no response", configId); + } + + public static SmsResponse error(String detailMessage, String configId){ + return resp(detailMessage, false, configId); + } + + public static SmsResponse success(){ + return success(null); + } + + public static SmsResponse success(Object data){ + return success(data, null); + } + + public static SmsResponse resp(Object data, boolean success){ + return resp(data, success, null); + } + + public static SmsResponse success(Object data, String configId){ + return resp(data, true, configId); + } + + public static SmsResponse resp(boolean success){ + return success ? success() : error(); + } + + public static SmsResponse resp(boolean success, String configId){ + return resp(null, success, configId); + } + + public static SmsResponse resp(Object data, boolean success, String configId){ + SmsResponse error = new SmsResponse(); + error.setSuccess(success); + error.setData(data); + error.setConfigId(configId); + return error; + } +} diff --git a/sms4j-comm/src/main/java/org/dromara/sms4j/comm/utils/SmsUtils.java b/sms4j-comm/src/main/java/org/dromara/sms4j/comm/utils/SmsUtils.java index 1fd865b1..27a1f621 100644 --- a/sms4j-comm/src/main/java/org/dromara/sms4j/comm/utils/SmsUtils.java +++ b/sms4j-comm/src/main/java/org/dromara/sms4j/comm/utils/SmsUtils.java @@ -187,6 +187,7 @@ public class SmsUtils { * 将任意类型集合转成想要的数组 * @param list 需要转换的集合 * @param predicate 过滤条件 + * @param mapper 对此流的元素执行函数 * @param array 想要的数组 * @return 数组 * @param 集合泛型 diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/aliyun/service/AlibabaSmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/aliyun/service/AlibabaSmsImpl.java index 507e3848..b0015401 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/aliyun/service/AlibabaSmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/aliyun/service/AlibabaSmsImpl.java @@ -7,6 +7,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.sms4j.aliyun.config.AlibabaConfig; import org.dromara.sms4j.aliyun.utils.AliyunUtils; import org.dromara.sms4j.api.entity.SmsResponse; +import org.dromara.sms4j.api.utils.SmsRespUtils; import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.delayedTime.DelayedTime; @@ -113,9 +114,7 @@ public class AlibabaSmsImpl extends AbstractSmsBlend { try { smsResponse = getResponse(http.postJson(requestUrl, headers, paramStr)); } catch (SmsBlendException e) { - smsResponse = new SmsResponse(); - smsResponse.setSuccess(false); - smsResponse.setData(e.getMessage()); + smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId()); } if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { retry = 0; @@ -132,11 +131,7 @@ public class AlibabaSmsImpl extends AbstractSmsBlend { } private SmsResponse getResponse(JSONObject resJson) { - SmsResponse smsResponse = new SmsResponse(); - smsResponse.setSuccess("OK".equals(resJson.getStr("Code"))); - smsResponse.setData(resJson); - smsResponse.setConfigId(getConfigId()); - return smsResponse; + return SmsRespUtils.resp(resJson, "OK".equals(resJson.getStr("Code")), getConfigId()); } } \ No newline at end of file diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/baidu/service/BaiduSmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/baidu/service/BaiduSmsImpl.java index d265e2cd..8494d8a2 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/baidu/service/BaiduSmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/baidu/service/BaiduSmsImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import org.dromara.sms4j.api.entity.SmsResponse; +import org.dromara.sms4j.api.utils.SmsRespUtils; import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.exception.SmsBlendException; @@ -157,9 +158,7 @@ public class BaiduSmsImpl extends AbstractSmsBlend { try { smsResponse = getResponse(http.postJson(config.getHost() + config.getAction(), headers, body)); } catch (SmsBlendException e) { - smsResponse = new SmsResponse(); - smsResponse.setSuccess(false); - smsResponse.setData(e.getMessage()); + smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId()); } if (smsResponse.isSuccess() || retry == config.getMaxRetries()) { retry = 0; @@ -176,11 +175,7 @@ public class BaiduSmsImpl extends AbstractSmsBlend { } private SmsResponse getResponse(JSONObject resJson) { - SmsResponse smsResponse = new SmsResponse(); - smsResponse.setSuccess("1000".equals(resJson.getStr("code"))); - smsResponse.setData(resJson); - smsResponse.setConfigId(getConfigId()); - return smsResponse; + return SmsRespUtils.resp(resJson, "1000".equals(resJson.getStr("code")), getConfigId()); } } \ No newline at end of file diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/budingyun/service/BudingV2SmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/budingyun/service/BudingV2SmsImpl.java index 05e01a42..d7bcb986 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/budingyun/service/BudingV2SmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/budingyun/service/BudingV2SmsImpl.java @@ -3,6 +3,7 @@ package org.dromara.sms4j.budingyun.service; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import org.dromara.sms4j.api.entity.SmsResponse; +import org.dromara.sms4j.api.utils.SmsRespUtils; import org.dromara.sms4j.budingyun.config.BudingV2Config; import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.constant.SupplierConstant; @@ -46,7 +47,6 @@ public class BudingV2SmsImpl extends AbstractSmsBlend { @Override public SmsResponse sendMessage(String phone, String message) { - System.out.println("sendMessage"); Map body = new HashMap<>(); System.out.println(getConfig().getSignKey()); @@ -70,9 +70,7 @@ public class BudingV2SmsImpl extends AbstractSmsBlend { try { smsResponse = getResponse(http.postFrom(URL + "/Api/Sent", headers, body)); } catch (SmsBlendException e) { - smsResponse = new SmsResponse(); - smsResponse.setSuccess(false); - smsResponse.setData(e.getMessage()); + smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId()); } if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { retry = 0; @@ -88,17 +86,11 @@ public class BudingV2SmsImpl extends AbstractSmsBlend { return sendMessage(phone, message); } - private SmsResponse getResponse(JSONObject entries) { - System.out.println(entries); - SmsResponse smsResponse = new SmsResponse(); - if (entries == null) { - smsResponse.setSuccess(false); - return smsResponse; + private SmsResponse getResponse(JSONObject resJson) { + if (resJson == null) { + return SmsRespUtils.error(getConfigId()); } - smsResponse.setSuccess(entries.getBool("bool")); - smsResponse.setData(entries); - smsResponse.setConfigId(getConfigId()); - return smsResponse; + return SmsRespUtils.resp(resJson, resJson.getBool("bool"), getConfigId()); } /** @@ -116,9 +108,7 @@ public class BudingV2SmsImpl extends AbstractSmsBlend { failed++; } } - SmsResponse smsResponse = new SmsResponse(); - smsResponse.setSuccess(failed == 0); - return smsResponse; + return SmsRespUtils.resp(failed == 0, getConfigId()); } /** @@ -148,9 +138,7 @@ public class BudingV2SmsImpl extends AbstractSmsBlend { failed++; } } - SmsResponse smsResponse = new SmsResponse(); - smsResponse.setSuccess(failed == 0); - return smsResponse; + return SmsRespUtils.resp(failed == 0, getConfigId()); } /** diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/chuanglan/config/ChuangLanConfig.java b/sms4j-provider/src/main/java/org/dromara/sms4j/chuanglan/config/ChuangLanConfig.java index 34b72b2d..ddd9668d 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/chuanglan/config/ChuangLanConfig.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/chuanglan/config/ChuangLanConfig.java @@ -13,12 +13,16 @@ import org.dromara.sms4j.provider.config.BaseConfig; @EqualsAndHashCode(callSuper = true) @Data public class ChuangLanConfig extends BaseConfig { + /** * 基础路径 */ private String baseUrl = "https://smssh1.253.com/msg"; + /** * 短信发送路径 + * 普通短信发送 /v1/send/json 此接口支持单发、群发短信 + * 变量短信发送 /variable/json 单号码对应单内容批量下发 */ private String msgUrl = "/variable/json"; diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/chuanglan/service/ChuangLanSmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/chuanglan/service/ChuangLanSmsImpl.java index ad1cb1d6..c08149a3 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/chuanglan/service/ChuangLanSmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/chuanglan/service/ChuangLanSmsImpl.java @@ -3,13 +3,14 @@ package org.dromara.sms4j.chuanglan.service; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import org.dromara.sms4j.api.entity.SmsResponse; +import org.dromara.sms4j.api.utils.SmsRespUtils; import org.dromara.sms4j.chuanglan.config.ChuangLanConfig; import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.delayedTime.DelayedTime; +import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.utils.SmsUtils; import org.dromara.sms4j.provider.service.AbstractSmsBlend; -import java.util.Collection; import java.util.LinkedHashMap; import java.util.List; import java.util.concurrent.Executor; @@ -24,12 +25,12 @@ public class ChuangLanSmsImpl extends AbstractSmsBlend { private int retry = 0; - public ChuangLanSmsImpl(ChuangLanConfig chuangLanConfig, Executor pool, DelayedTime delayed) { - super(chuangLanConfig, pool, delayed); + public ChuangLanSmsImpl(ChuangLanConfig config, Executor pool, DelayedTime delayed) { + super(config, pool, delayed); } - public ChuangLanSmsImpl(ChuangLanConfig chuangLanConfig) { - super(chuangLanConfig); + public ChuangLanSmsImpl(ChuangLanConfig config) { + super(config); } @Override @@ -49,19 +50,14 @@ public class ChuangLanSmsImpl extends AbstractSmsBlend { @Override public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap messages) { - String reqUrl = getConfig().getBaseUrl() + getConfig().getMsgUrl(); - Collection values = messages.values(); - String message = String.join(",", values); - LinkedHashMap params = new LinkedHashMap<>(); - params.put("account", getConfig().getAccessKeyId()); - params.put("password", getConfig().getAccessKeySecret()); - params.put("msg", templateId); - params.put("params", phone + "," + message); - - LinkedHashMap headers = new LinkedHashMap<>(); - headers.put("Content-Type", "application/json"); - - return resProcessing(reqUrl, headers, params); + if (SmsUtils.isEmpty(messages)){ + messages = new LinkedHashMap<>(); + } + String message = String.join(",", messages.values()); + ChuangLanConfig config = getConfig(); + LinkedHashMap body = buildBody(config.getAccessKeyId(), config.getAccessKeySecret(), templateId); + body.put("params", phone + "," + message); + return getSmsResponse(body); } @Override @@ -71,32 +67,45 @@ public class ChuangLanSmsImpl extends AbstractSmsBlend { @Override public SmsResponse massTexting(List phones, String templateId, LinkedHashMap messages) { - String reqUrl = getConfig().getBaseUrl() + getConfig().getMsgUrl(); - - Collection values = messages.values(); - String message = String.join(",", values); - + if (SmsUtils.isEmpty(messages)){ + messages = new LinkedHashMap<>(); + } + String message = String.join(",", messages.values()); StringBuilder param = new StringBuilder(); phones.forEach(phone -> param.append(phone).append(",").append(message).append(";")); - - LinkedHashMap params = new LinkedHashMap<>(); - params.put("account", getConfig().getAccessKeyId()); - params.put("password", getConfig().getAccessKeySecret()); - params.put("msg", templateId); + ChuangLanConfig config = getConfig(); + LinkedHashMap params = buildBody(config.getAccessKeyId(), config.getAccessKeySecret(), templateId); params.put("params", param.toString()); - - LinkedHashMap headers = new LinkedHashMap<>(); - headers.put("Content-Type", "application/json"); - - return resProcessing(reqUrl, headers, params); + return getSmsResponse(params); } - private SmsResponse resProcessing(String reqUrl, LinkedHashMap headers, LinkedHashMap params) { - JSONObject jsonObject = http.postJson(reqUrl, headers, params); - SmsResponse smsResponse = new SmsResponse(); - smsResponse.setSuccess(jsonObject.containsKey("code") && "0".equals(jsonObject.getStr("code"))); - smsResponse.setData(jsonObject); - smsResponse.setConfigId(getConfigId()); + private static String buildUrl(String baseUrl, String msgUrl){ + return baseUrl + msgUrl; + } + + private static LinkedHashMap buildHeaders(){ + LinkedHashMap headers = new LinkedHashMap<>(1); + headers.put("Content-Type", "application/json"); + return headers; + } + + private static LinkedHashMap buildBody(String accessKeyId, String accessKeySecret, String templateId){ + LinkedHashMap body = new LinkedHashMap<>(3); + body.put("account", accessKeyId); + body.put("password", accessKeySecret); + body.put("msg", templateId); + return body; + } + + private SmsResponse getSmsResponse(LinkedHashMap body) { + ChuangLanConfig config = getConfig(); + SmsResponse smsResponse; + String reqUrl = buildUrl(config.getBaseUrl(), config.getMsgUrl()); + try { + smsResponse = getResponse(http.postJson(reqUrl, buildHeaders(), body)); + }catch (SmsBlendException e) { + smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId()); + } if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { retry = 0; return smsResponse; @@ -104,7 +113,18 @@ public class ChuangLanSmsImpl extends AbstractSmsBlend { http.safeSleep(getConfig().getRetryInterval()); retry++; log.warn("短信第 {" + retry + "} 次重新发送"); - return resProcessing(reqUrl, headers, params); + return requestRetry(body); + } + + private SmsResponse requestRetry(LinkedHashMap body) { + http.safeSleep(getConfig().getRetryInterval()); + retry ++; + log.warn("短信第 {} 次重新发送", retry); + return getSmsResponse(body); + } + + private SmsResponse getResponse(JSONObject resJson) { + return SmsRespUtils.resp(resJson, resJson.containsKey("code") && "0".equals(resJson.getStr("code")), getConfigId()); } } \ No newline at end of file diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/cloopen/util/CloopenHelper.java b/sms4j-provider/src/main/java/org/dromara/sms4j/cloopen/util/CloopenHelper.java index 6b5674ac..ac4d0f08 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/cloopen/util/CloopenHelper.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/cloopen/util/CloopenHelper.java @@ -8,6 +8,7 @@ import cn.hutool.crypto.SecureUtil; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import org.dromara.sms4j.api.entity.SmsResponse; +import org.dromara.sms4j.api.utils.SmsRespUtils; import org.dromara.sms4j.cloopen.config.CloopenConfig; import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.exception.SmsBlendException; @@ -46,13 +47,11 @@ public class CloopenHelper { headers.put("Accept", Constant.ACCEPT); headers.put("Content-Type", Constant.APPLICATION_JSON_UTF8); headers.put("Authorization", this.generateAuthorization(config.getAccessKeyId(), timestamp)); - SmsResponse smsResponse = null; + SmsResponse smsResponse; try { smsResponse = getResponse(http.postJson(url, headers, paramMap)); } catch (SmsBlendException e) { - smsResponse = new SmsResponse(); - smsResponse.setSuccess(false); - smsResponse.setData(e.getMessage()); + smsResponse = SmsRespUtils.error(e.message, config.getConfigId()); } if (smsResponse.isSuccess() || retry == config.getMaxRetries()) { retry = 0; @@ -70,11 +69,7 @@ public class CloopenHelper { } private SmsResponse getResponse(JSONObject resJson) { - SmsResponse smsResponse = new SmsResponse(); - smsResponse.setSuccess("000000".equals(resJson.getStr("statusCode"))); - smsResponse.setData(resJson); - smsResponse.setConfigId(this.config.getConfigId()); - return smsResponse; + return SmsRespUtils.resp(resJson, "000000".equals(resJson.getStr("statusCode")), config.getConfigId()); } /** diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/ctyun/service/CtyunSmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/ctyun/service/CtyunSmsImpl.java index 038b0498..0fc411fb 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/ctyun/service/CtyunSmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/ctyun/service/CtyunSmsImpl.java @@ -4,6 +4,7 @@ import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import lombok.extern.slf4j.Slf4j; import org.dromara.sms4j.api.entity.SmsResponse; +import org.dromara.sms4j.api.utils.SmsRespUtils; import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.exception.SmsBlendException; @@ -83,11 +84,12 @@ public class CtyunSmsImpl extends AbstractSmsBlend { } private SmsResponse getSmsResponse(String phone, String message, String templateId) { + CtyunConfig config = getConfig(); String requestUrl; String paramStr; try { - requestUrl = getConfig().getRequestUrl(); - paramStr = CtyunUtils.generateParamJsonStr(getConfig(), phone, message, templateId); + requestUrl = config.getRequestUrl(); + paramStr = CtyunUtils.generateParamJsonStr(config, phone, message, templateId); } catch (Exception e) { log.error("ctyun send message error", e); throw new SmsBlendException(e.getMessage()); @@ -96,14 +98,12 @@ public class CtyunSmsImpl extends AbstractSmsBlend { SmsResponse smsResponse; try { smsResponse = getResponse(http.postJson(requestUrl, - CtyunUtils.signHeader(paramStr, getConfig().getAccessKeyId(), getConfig().getAccessKeySecret()), + CtyunUtils.signHeader(paramStr, config.getAccessKeyId(), config.getAccessKeySecret()), paramStr)); } catch (SmsBlendException e) { - smsResponse = new SmsResponse(); - smsResponse.setSuccess(false); - smsResponse.setData(e.getMessage()); + smsResponse = SmsRespUtils.error(e.message, config.getConfigId()); } - if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { + if (smsResponse.isSuccess() || retry == config.getMaxRetries()) { retry = 0; return smsResponse; } @@ -118,11 +118,7 @@ public class CtyunSmsImpl extends AbstractSmsBlend { } private SmsResponse getResponse(JSONObject resJson) { - SmsResponse smsResponse = new SmsResponse(); - smsResponse.setSuccess("OK".equals(resJson.getStr("code"))); - smsResponse.setData(resJson); - smsResponse.setConfigId(getConfigId()); - return smsResponse; + return SmsRespUtils.resp(resJson, "OK".equals(resJson.getStr("code")), getConfigId()); } } \ No newline at end of file diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/dingzhong/util/DingZhongHelper.java b/sms4j-provider/src/main/java/org/dromara/sms4j/dingzhong/util/DingZhongHelper.java index 628a3c40..d336fe09 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/dingzhong/util/DingZhongHelper.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/dingzhong/util/DingZhongHelper.java @@ -4,6 +4,7 @@ import cn.hutool.core.map.MapUtil; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import org.dromara.sms4j.api.entity.SmsResponse; +import org.dromara.sms4j.api.utils.SmsRespUtils; import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.utils.SmsHttpUtils; @@ -35,13 +36,11 @@ public class DingZhongHelper { Map headers = MapUtil.newHashMap(2, true); headers.put("Accept", Constant.ACCEPT); headers.put("Content-Type", Constant.FROM_URLENCODED); - SmsResponse smsResponse = null; + SmsResponse smsResponse; try { smsResponse = getResponse(http.postFrom(url, headers, paramMap)); } catch (SmsBlendException e) { - smsResponse = new SmsResponse(); - smsResponse.setSuccess(false); - smsResponse.setData(e.getMessage()); + smsResponse = SmsRespUtils.error(e.message, config.getConfigId()); } if (smsResponse.isSuccess() || retry == config.getMaxRetries()) { retry = 0; @@ -59,10 +58,6 @@ public class DingZhongHelper { } private SmsResponse getResponse(JSONObject resJson) { - SmsResponse smsResponse = new SmsResponse(); - smsResponse.setSuccess("0".equals(resJson.getStr("resCode"))); - smsResponse.setData(resJson); - smsResponse.setConfigId(this.config.getConfigId()); - return smsResponse; + return SmsRespUtils.resp(resJson, "0".equals(resJson.getStr("resCode")), config.getConfigId()); } } diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/emay/service/EmaySmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/emay/service/EmaySmsImpl.java index 3f5a293d..c6d1a08d 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/emay/service/EmaySmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/emay/service/EmaySmsImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.map.MapUtil; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import org.dromara.sms4j.api.entity.SmsResponse; +import org.dromara.sms4j.api.utils.SmsRespUtils; import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.delayedTime.DelayedTime; @@ -44,8 +45,9 @@ public class EmaySmsImpl extends AbstractSmsBlend { @Override public SmsResponse sendMessage(String phone, String message) { - String url = getConfig().getRequestUrl(); - Map params = EmayBuilder.buildRequestBody(getConfig().getAccessKeyId(), getConfig().getAccessKeySecret(), phone, message); + EmayConfig config = getConfig(); + String url = config.getRequestUrl(); + Map params = EmayBuilder.buildRequestBody(config.getAccessKeyId(), config.getAccessKeySecret(), phone, message); Map headers = MapUtil.newHashMap(1, true); headers.put("Content-Type", Constant.FROM_URLENCODED); @@ -53,11 +55,9 @@ public class EmaySmsImpl extends AbstractSmsBlend { try { smsResponse = getResponse(http.postUrl(url, headers, params)); } catch (SmsBlendException e) { - smsResponse = new SmsResponse(); - smsResponse.setSuccess(false); - smsResponse.setData(e.getMessage()); + smsResponse = SmsRespUtils.error(e.message, config.getConfigId()); } - if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { + if (smsResponse.isSuccess() || retry == config.getMaxRetries()) { retry = 0; return smsResponse; } @@ -113,11 +113,7 @@ public class EmaySmsImpl extends AbstractSmsBlend { } private SmsResponse getResponse(JSONObject resJson) { - SmsResponse smsResponse = new SmsResponse(); - smsResponse.setSuccess("success".equalsIgnoreCase(resJson.getStr("code"))); - smsResponse.setData(resJson); - smsResponse.setConfigId(getConfigId()); - return smsResponse; + return SmsRespUtils.resp(resJson, "success".equalsIgnoreCase(resJson.getStr("code")), getConfigId()); } } diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/huawei/service/HuaweiSmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/huawei/service/HuaweiSmsImpl.java index 7bb860da..ad8955a8 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/huawei/service/HuaweiSmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/huawei/service/HuaweiSmsImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.map.MapUtil; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import org.dromara.sms4j.api.entity.SmsResponse; +import org.dromara.sms4j.api.utils.SmsRespUtils; import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.delayedTime.DelayedTime; @@ -77,9 +78,7 @@ public class HuaweiSmsImpl extends AbstractSmsBlend { try { smsResponse = getResponse(http.postJson(url, headers, requestBody)); } catch (SmsBlendException e) { - smsResponse = new SmsResponse(); - smsResponse.setSuccess(false); - smsResponse.setData(e.getMessage()); + smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId()); } if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { retry = 0; @@ -109,11 +108,7 @@ public class HuaweiSmsImpl extends AbstractSmsBlend { } private SmsResponse getResponse(JSONObject resJson) { - SmsResponse smsResponse = new SmsResponse(); - smsResponse.setSuccess("000000".equals(resJson.getStr("code"))); - smsResponse.setData(resJson); - smsResponse.setConfigId(getConfigId()); - return smsResponse; + return SmsRespUtils.resp(resJson, "000000".equals(resJson.getStr("code")), getConfigId()); } } diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/jdcloud/service/JdCloudSmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/jdcloud/service/JdCloudSmsImpl.java index b37b875e..0167a2d4 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/jdcloud/service/JdCloudSmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/jdcloud/service/JdCloudSmsImpl.java @@ -6,6 +6,7 @@ import com.jdcloud.sdk.service.sms.model.BatchSendRequest; import com.jdcloud.sdk.service.sms.model.BatchSendResult; import lombok.extern.slf4j.Slf4j; import org.dromara.sms4j.api.entity.SmsResponse; +import org.dromara.sms4j.api.utils.SmsRespUtils; import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.exception.SmsBlendException; @@ -96,9 +97,7 @@ public class JdCloudSmsImpl extends AbstractSmsBlend { try { smsResponse = getSmsResponse(result); } catch (SmsBlendException e) { - smsResponse = new SmsResponse(); - smsResponse.setSuccess(false); - smsResponse.setData(e.getMessage()); + smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId()); } if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { retry = 0; @@ -121,10 +120,6 @@ public class JdCloudSmsImpl extends AbstractSmsBlend { * @return 发送短信返回信息 */ private SmsResponse getSmsResponse(BatchSendResult res) { - SmsResponse smsResponse = new SmsResponse(); - smsResponse.setSuccess(res.getStatus() != null && res.getStatus()); - smsResponse.setData(res); - smsResponse.setConfigId(getConfigId()); - return smsResponse; + return SmsRespUtils.resp(res, res.getStatus() != null && res.getStatus(), getConfigId()); } } diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/jg/service/JgSmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/jg/service/JgSmsImpl.java index 759f6e32..a0213843 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/jg/service/JgSmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/jg/service/JgSmsImpl.java @@ -3,6 +3,7 @@ package org.dromara.sms4j.jg.service; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import org.dromara.sms4j.api.entity.SmsResponse; +import org.dromara.sms4j.api.utils.SmsRespUtils; import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.exception.SmsBlendException; @@ -115,9 +116,7 @@ public class JgSmsImpl extends AbstractSmsBlend { try { smsResponse = getResponse(http.postJson(url, headers, body), jsonKey); } catch (SmsBlendException e) { - smsResponse = new SmsResponse(); - smsResponse.setSuccess(false); - smsResponse.setData(e.getMessage()); + smsResponse = SmsRespUtils.error(e.message, config.getConfigId()); } if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { @@ -136,10 +135,6 @@ public class JgSmsImpl extends AbstractSmsBlend { } private SmsResponse getResponse(JSONObject resJson, String jsonKey) { - SmsResponse smsResponse = new SmsResponse(); - smsResponse.setSuccess(resJson.getObj(jsonKey) != null); - smsResponse.setData(resJson); - smsResponse.setConfigId(getConfigId()); - return smsResponse; + return SmsRespUtils.resp(resJson, resJson.getObj(jsonKey) != null, getConfigId()); } } diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/lianlu/service/LianLuSmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/lianlu/service/LianLuSmsImpl.java index 9c0b7c16..c4759698 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/lianlu/service/LianLuSmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/lianlu/service/LianLuSmsImpl.java @@ -3,6 +3,8 @@ package org.dromara.sms4j.lianlu.service; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import org.dromara.sms4j.api.entity.SmsResponse; +import org.dromara.sms4j.api.utils.SmsRespUtils; +import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.exception.SmsBlendException; @@ -177,8 +179,8 @@ public class LianLuSmsImpl extends AbstractSmsBlend { try { Map headers = new HashMap<>(2); - headers.put("Content-Type", "application/json;charset=utf-8"); - headers.put("Accept", "application/json"); + headers.put("Content-Type", Constant.APPLICATION_JSON_UTF8); + headers.put("Accept", Constant.ACCEPT); SmsResponse smsResponse = this.getResponse(this.http.postJson(reqUrl, headers, requestBody)); if (!smsResponse.isSuccess() && this.retry != this.getConfig().getMaxRetries()) { return this.requestRetry(req); @@ -199,10 +201,6 @@ public class LianLuSmsImpl extends AbstractSmsBlend { } private SmsResponse getResponse(JSONObject resJson) { - SmsResponse smsResponse = new SmsResponse(); - smsResponse.setSuccess("00".equals(resJson.getStr("status"))); - smsResponse.setData(resJson); - smsResponse.setConfigId(this.getConfigId()); - return smsResponse; + return SmsRespUtils.resp(resJson, "00".equals(resJson.getStr("status")), getConfigId()); } } diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/mas/service/MasSmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/mas/service/MasSmsImpl.java index 52d18117..a745f7de 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/mas/service/MasSmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/mas/service/MasSmsImpl.java @@ -5,6 +5,7 @@ import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import lombok.extern.slf4j.Slf4j; import org.dromara.sms4j.api.entity.SmsResponse; +import org.dromara.sms4j.api.utils.SmsRespUtils; import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.exception.SmsBlendException; @@ -94,9 +95,7 @@ public class MasSmsImpl extends AbstractSmsBlend { try { smsResponse = getResponse(http.postJson(requestUrl, null, base64Code)); } catch (SmsBlendException e) { - smsResponse = new SmsResponse(); - smsResponse.setSuccess(false); - smsResponse.setData(e.getMessage()); + smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId()); } if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { retry = 0; @@ -113,11 +112,7 @@ public class MasSmsImpl extends AbstractSmsBlend { } private SmsResponse getResponse(JSONObject resJson) { - SmsResponse smsResponse = new SmsResponse(); - smsResponse.setSuccess("success".equals(resJson.getStr("rspcod")) && resJson.getBool("success")); - smsResponse.setData(resJson); - smsResponse.setConfigId(getConfigId()); - return smsResponse; + return SmsRespUtils.resp(resJson, "success".equals(resJson.getStr("rspcod")) && resJson.getBool("success"), getConfigId()); } } \ No newline at end of file diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/netease/service/NeteaseSmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/netease/service/NeteaseSmsImpl.java index 45ca581c..b32fb9fe 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/netease/service/NeteaseSmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/netease/service/NeteaseSmsImpl.java @@ -9,6 +9,7 @@ import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import lombok.extern.slf4j.Slf4j; import org.dromara.sms4j.api.entity.SmsResponse; +import org.dromara.sms4j.api.utils.SmsRespUtils; import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.delayedTime.DelayedTime; @@ -142,9 +143,7 @@ public class NeteaseSmsImpl extends AbstractSmsBlend { try { smsResponse = getResponse(http.postFrom(requestUrl, headers, body)); } catch (SmsBlendException e) { - smsResponse = new SmsResponse(); - smsResponse.setSuccess(false); - smsResponse.setData(e.getMessage()); + smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId()); } if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { retry = 0; @@ -161,11 +160,7 @@ public class NeteaseSmsImpl extends AbstractSmsBlend { } private SmsResponse getResponse(JSONObject jsonObject) { - SmsResponse smsResponse = new SmsResponse(); - smsResponse.setSuccess(jsonObject.getInt("code") <= 200); - smsResponse.setData(jsonObject); - smsResponse.setConfigId(getConfigId()); - return smsResponse; + return SmsRespUtils.resp(jsonObject, jsonObject.getInt("code") <= 200, getConfigId()); } } diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/qiniu/service/QiNiuSmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/qiniu/service/QiNiuSmsImpl.java index d6c95fa5..b054ae86 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/qiniu/service/QiNiuSmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/qiniu/service/QiNiuSmsImpl.java @@ -1,11 +1,13 @@ package org.dromara.sms4j.qiniu.service; -import cn.hutool.core.util.ObjectUtil; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import org.dromara.sms4j.api.entity.SmsResponse; +import org.dromara.sms4j.api.utils.SmsRespUtils; import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.delayedTime.DelayedTime; +import org.dromara.sms4j.comm.exception.SmsBlendException; +import org.dromara.sms4j.comm.utils.SmsUtils; import org.dromara.sms4j.provider.service.AbstractSmsBlend; import org.dromara.sms4j.qiniu.config.QiNiuConfig; import org.dromara.sms4j.qiniu.util.QiNiuUtils; @@ -71,7 +73,6 @@ public class QiNiuSmsImpl extends AbstractSmsBlend { return senMassMsg(phones, templateId, messages); } - /** * @return SmsResponse * @author 初拥。 @@ -79,11 +80,14 @@ public class QiNiuSmsImpl extends AbstractSmsBlend { * @Description: 统一处理返回结果 */ public SmsResponse handleRes(String url, HashMap params) { - JSONObject jsonObject = http.postJson(url, QiNiuUtils.getHeaderAndSign(url, params, getConfig()), params); - SmsResponse smsResponse = new SmsResponse(); - smsResponse.setSuccess(ObjectUtil.isEmpty(jsonObject.getStr("error"))); - smsResponse.setData(jsonObject); - smsResponse.setConfigId(getConfigId()); + JSONObject jsonObject; + SmsResponse smsResponse; + try { + jsonObject = http.postJson(url, QiNiuUtils.getHeaderAndSign(url, params, getConfig()), params); + smsResponse = SmsRespUtils.resp(jsonObject, SmsUtils.isEmpty(jsonObject.getStr("error")), getConfigId()); + }catch (SmsBlendException e){ + smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId()); + } if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { retry = 0; return smsResponse; diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/tencent/service/TencentSmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/tencent/service/TencentSmsImpl.java index f915e8f2..36f035a7 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/tencent/service/TencentSmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/tencent/service/TencentSmsImpl.java @@ -5,6 +5,7 @@ import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import org.dromara.sms4j.api.entity.SmsResponse; +import org.dromara.sms4j.api.utils.SmsRespUtils; import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.delayedTime.DelayedTime; @@ -88,9 +89,7 @@ public class TencentSmsImpl extends AbstractSmsBlend { try { smsResponse = getResponse(http.postJson(url, headsMap, requestBody)); } catch (SmsBlendException e) { - smsResponse = new SmsResponse(); - smsResponse.setSuccess(false); - smsResponse.setData(e.getMessage()); + smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId()); } if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { retry = 0; @@ -107,15 +106,12 @@ public class TencentSmsImpl extends AbstractSmsBlend { } private SmsResponse getResponse(JSONObject resJson) { - SmsResponse smsResponse = new SmsResponse(); JSONObject response = resJson.getJSONObject("Response"); // 根据 Error 判断是否配置错误 - String error = response.getStr("Error"); - smsResponse.setSuccess(StrUtil.isBlank(error)); + boolean success = StrUtil.isBlank(response.getStr("Error")); // 根据 SendStatusSet 判断是否不为Ok JSONArray sendStatusSet = response.getJSONArray("SendStatusSet"); if (sendStatusSet != null) { - boolean success = true; for (Object obj : sendStatusSet) { JSONObject jsonObject = (JSONObject) obj; String code = jsonObject.getStr("Code"); @@ -124,11 +120,8 @@ public class TencentSmsImpl extends AbstractSmsBlend { break; } } - smsResponse.setSuccess(success); } - smsResponse.setData(resJson); - smsResponse.setConfigId(getConfigId()); - return smsResponse; + return SmsRespUtils.resp(resJson, success, getConfigId()); } } \ No newline at end of file diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/unisms/core/UniResponse.java b/sms4j-provider/src/main/java/org/dromara/sms4j/unisms/core/UniResponse.java index 33f1c415..4dd2e33e 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/unisms/core/UniResponse.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/unisms/core/UniResponse.java @@ -6,7 +6,6 @@ import org.dromara.sms4j.comm.exception.SmsBlendException; import java.util.Objects; public class UniResponse { - public static final String REQUEST_ID_HEADER_KEY = "x-uni-request-id"; public String requestId; public String code; public String message; diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/unisms/service/UniSmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/unisms/service/UniSmsImpl.java index 090b1bb5..d316ed08 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/unisms/service/UniSmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/unisms/service/UniSmsImpl.java @@ -3,6 +3,7 @@ package org.dromara.sms4j.unisms.service; import cn.hutool.core.map.MapUtil; import lombok.extern.slf4j.Slf4j; import org.dromara.sms4j.api.entity.SmsResponse; +import org.dromara.sms4j.api.utils.SmsRespUtils; import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.exception.SmsBlendException; @@ -96,16 +97,12 @@ public class UniSmsImpl extends AbstractSmsBlend { } private SmsResponse getSmsResponse(Map data) { - SmsResponse smsResponse = new SmsResponse(); try { UniResponse send = Uni.getClient(getConfig().getRetryInterval(), getConfig().getMaxRetries()).request("sms.message.send", data); - smsResponse.setSuccess("0".equals(send.code)); - smsResponse.setData(send); - smsResponse.setConfigId(getConfigId()); + return SmsRespUtils.resp(send, "0".equals(send.code), getConfigId()); } catch (Exception e) { - smsResponse.setSuccess(false); + return SmsRespUtils.error(e.getMessage(), getConfigId()); } - return smsResponse; } } diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/yunpian/service/YunPianSmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/yunpian/service/YunPianSmsImpl.java index b7b9e20a..debdf8b1 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/yunpian/service/YunPianSmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/yunpian/service/YunPianSmsImpl.java @@ -3,6 +3,7 @@ package org.dromara.sms4j.yunpian.service; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import org.dromara.sms4j.api.entity.SmsResponse; +import org.dromara.sms4j.api.utils.SmsRespUtils; import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.delayedTime.DelayedTime; @@ -40,15 +41,10 @@ public class YunPianSmsImpl extends AbstractSmsBlend { } private SmsResponse getResponse(JSONObject execute) { - SmsResponse smsResponse = new SmsResponse(); if (execute == null) { - smsResponse.setSuccess(false); - return smsResponse; + return SmsRespUtils.error(getConfigId()); } - smsResponse.setSuccess(execute.getInt("code") == 0); - smsResponse.setData(execute); - smsResponse.setConfigId(getConfigId()); - return smsResponse; + return SmsRespUtils.resp(execute, execute.getInt("code") == 0, getConfigId()); } @Override @@ -60,9 +56,7 @@ public class YunPianSmsImpl extends AbstractSmsBlend { try { smsResponse = getResponse(http.postFrom(Constant.YUNPIAN_URL + "/sms/tpl_single_send.json", headers, body)); } catch (SmsBlendException e) { - smsResponse = new SmsResponse(); - smsResponse.setSuccess(false); - smsResponse.setData(e.getMessage()); + smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId()); } if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { retry = 0; diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/zhutong/service/ZhutongSmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/zhutong/service/ZhutongSmsImpl.java index 1c39904e..aa2ca1d8 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/zhutong/service/ZhutongSmsImpl.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/zhutong/service/ZhutongSmsImpl.java @@ -10,6 +10,7 @@ import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import org.dromara.sms4j.api.entity.SmsResponse; +import org.dromara.sms4j.api.utils.SmsRespUtils; import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.delayedTime.DelayedTime; @@ -152,9 +153,7 @@ public class ZhutongSmsImpl extends AbstractSmsBlend { try { smsResponse = getResponse(http.postJson(url, headers, json)); } catch (SmsBlendException e) { - smsResponse = new SmsResponse(); - smsResponse.setSuccess(false); - smsResponse.setData(e.getMessage()); + smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId()); } if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { retry = 0; @@ -240,9 +239,7 @@ public class ZhutongSmsImpl extends AbstractSmsBlend { try { smsResponse = getResponse(http.postJson(url, headers, requestJson.toString())); } catch (SmsBlendException e) { - smsResponse = new SmsResponse(); - smsResponse.setSuccess(false); - smsResponse.setData(e.getMessage()); + smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId()); } if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { retry = 0; @@ -263,11 +260,7 @@ public class ZhutongSmsImpl extends AbstractSmsBlend { } private SmsResponse getResponse(JSONObject jsonObject) { - SmsResponse smsResponse = new SmsResponse(); - smsResponse.setSuccess(jsonObject.getInt("code", -1) <= 200); - smsResponse.setData(jsonObject); - smsResponse.setConfigId(getConfigId()); - return smsResponse; + return SmsRespUtils.resp(jsonObject, jsonObject.getInt("code", -1) <= 200, getConfigId()); } private void validator(String requestUrl, String username, String password) { diff --git a/sms4j-spring-boot-example/src/main/java/org/dromara/sms4j/example/zhangjun/ZhangJunSmsImpl.java b/sms4j-spring-boot-example/src/main/java/org/dromara/sms4j/example/zhangjun/ZhangJunSmsImpl.java index 55f9192b..d3b387b9 100644 --- a/sms4j-spring-boot-example/src/main/java/org/dromara/sms4j/example/zhangjun/ZhangJunSmsImpl.java +++ b/sms4j-spring-boot-example/src/main/java/org/dromara/sms4j/example/zhangjun/ZhangJunSmsImpl.java @@ -4,6 +4,7 @@ import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import lombok.extern.slf4j.Slf4j; import org.dromara.sms4j.api.entity.SmsResponse; +import org.dromara.sms4j.api.utils.SmsRespUtils; import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.utils.SmsUtils; @@ -90,9 +91,7 @@ public class ZhangJunSmsImpl extends AbstractSmsBlend { try { smsResponse = getResponse(http.postJson(getConfig().getUrl(), null, message)); } catch (SmsBlendException e) { - smsResponse = new SmsResponse(); - smsResponse.setSuccess(false); - smsResponse.setData(e.getMessage()); + smsResponse = SmsRespUtils.error(e.getMessage(), getConfigId()); } if (smsResponse.isSuccess() || retry == getConfig().getMaxRetries()) { retry = 0; @@ -109,11 +108,7 @@ public class ZhangJunSmsImpl extends AbstractSmsBlend { } private SmsResponse getResponse(JSONObject resJson) { - SmsResponse smsResponse = new SmsResponse(); - smsResponse.setSuccess("OK".equals(resJson.getStr("Code"))); - smsResponse.setData(resJson); - smsResponse.setConfigId(getConfigId()); - return smsResponse; + return SmsRespUtils.resp(resJson, "OK".equals(resJson.getStr("Code")), getConfigId()); } } \ No newline at end of file