diff --git a/sms4j-api/src/main/java/org/dromara/sms4j/api/entity/SmsResponse.java b/sms4j-api/src/main/java/org/dromara/sms4j/api/entity/SmsResponse.java index 9d6a58a7..904e5b3f 100644 --- a/sms4j-api/src/main/java/org/dromara/sms4j/api/entity/SmsResponse.java +++ b/sms4j-api/src/main/java/org/dromara/sms4j/api/entity/SmsResponse.java @@ -25,4 +25,11 @@ public class SmsResponse { * @since 2.3.0 */ private Object data; + + /** + * 配置标识名 如未配置取对应渠道名例如 Alibaba + * + * @since 3.0.0 + */ + private String configId; } diff --git a/sms4j-comm/src/main/java/org/dromara/sms4j/comm/config/BaseConfig.java b/sms4j-comm/src/main/java/org/dromara/sms4j/comm/config/BaseConfig.java index bc652878..a0e1bf60 100644 --- a/sms4j-comm/src/main/java/org/dromara/sms4j/comm/config/BaseConfig.java +++ b/sms4j-comm/src/main/java/org/dromara/sms4j/comm/config/BaseConfig.java @@ -38,7 +38,14 @@ public class BaseConfig { /** * 权重 - * */ + */ @Builder.Default private Integer weight = 1; + + /** + * 配置标识名 如未配置取对应渠道名例如 Alibaba + * + * @since 3.0.0 + */ + private String configId; } 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 ac57873e..996627ed 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 @@ -28,7 +28,7 @@ import java.util.concurrent.Executor; @Slf4j public class AlibabaSmsImpl extends AbstractSmsBlend { - private final AlibabaConfig alibabaSmsConfig; + private final AlibabaConfig config; /** * AlibabaSmsImpl @@ -36,17 +36,17 @@ public class AlibabaSmsImpl extends AbstractSmsBlend { * * @author :Wind */ - public AlibabaSmsImpl(AlibabaConfig alibabaSmsConfig, Executor pool, DelayedTime delayedTime) { + public AlibabaSmsImpl(AlibabaConfig config, Executor pool, DelayedTime delayedTime) { super(pool, delayedTime); - this.alibabaSmsConfig = alibabaSmsConfig; + this.config = config; } @Override @Restricted public SmsResponse sendMessage(String phone, String message) { LinkedHashMap map = new LinkedHashMap<>(); - map.put(alibabaSmsConfig.getTemplateName(), message); - return sendMessage(phone, alibabaSmsConfig.getTemplateId(), map); + map.put(config.getTemplateName(), message); + return sendMessage(phone, config.getTemplateId(), map); } @Override @@ -60,8 +60,8 @@ public class AlibabaSmsImpl extends AbstractSmsBlend { @Restricted public SmsResponse massTexting(List phones, String message) { LinkedHashMap map = new LinkedHashMap<>(); - map.put(alibabaSmsConfig.getTemplateName(), message); - return massTexting(phones, alibabaSmsConfig.getTemplateId(), map); + map.put(config.getTemplateName(), message); + return massTexting(phones, config.getTemplateId(), map); } @Override @@ -75,8 +75,8 @@ public class AlibabaSmsImpl extends AbstractSmsBlend { String requestUrl; String paramStr; try { - requestUrl = AliyunUtils.generateSendSmsRequestUrl(this.alibabaSmsConfig, message, phone, templateId); - paramStr = AliyunUtils.generateParamBody(alibabaSmsConfig, phone, message, templateId); + requestUrl = AliyunUtils.generateSendSmsRequestUrl(this.config, message, phone, templateId); + paramStr = AliyunUtils.generateParamBody(config, phone, message, templateId); } catch (Exception e) { log.error("aliyun send message error", e); throw new SmsBlendException(e.getMessage()); @@ -95,6 +95,7 @@ public class AlibabaSmsImpl extends AbstractSmsBlend { SmsResponse smsResponse = new SmsResponse(); smsResponse.setSuccess("OK".equals(resJson.getStr("Code"))); smsResponse.setData(resJson); + smsResponse.setConfigId(this.config.getConfigId()); return smsResponse; } 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 b2aa1397..d670038e 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 @@ -51,6 +51,7 @@ public class CloopenHelper { SmsResponse smsResponse = new SmsResponse(); smsResponse.setSuccess("000000".equals(resJson.getStr("statusCode"))); smsResponse.setData(resJson); + smsResponse.setConfigId(this.config.getConfigId()); return smsResponse; } 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 c23b03e0..71c97b62 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 @@ -28,19 +28,19 @@ import java.util.concurrent.Executor; @Slf4j public class CtyunSmsImpl extends AbstractSmsBlend { - private final CtyunConfig ctyunConfig; + private final CtyunConfig config; - public CtyunSmsImpl(CtyunConfig ctyunConfig, Executor pool, DelayedTime delayedTime) { + public CtyunSmsImpl(CtyunConfig config, Executor pool, DelayedTime delayedTime) { super(pool, delayedTime); - this.ctyunConfig = ctyunConfig; + this.config = config; } @Override @Restricted public SmsResponse sendMessage(String phone, String message) { LinkedHashMap map = new LinkedHashMap<>(); - map.put(ctyunConfig.getTemplateName(), message); - return sendMessage(phone, ctyunConfig.getTemplateId(), map); + map.put(config.getTemplateName(), message); + return sendMessage(phone, config.getTemplateId(), map); } @Override @@ -54,8 +54,8 @@ public class CtyunSmsImpl extends AbstractSmsBlend { @Restricted public SmsResponse massTexting(List phones, String message) { LinkedHashMap map = new LinkedHashMap<>(); - map.put(ctyunConfig.getTemplateName(), message); - return massTexting(phones, ctyunConfig.getTemplateId(), map); + map.put(config.getTemplateName(), message); + return massTexting(phones, config.getTemplateId(), map); } @Override @@ -69,15 +69,15 @@ public class CtyunSmsImpl extends AbstractSmsBlend { String requestUrl; String paramStr; try { - requestUrl = ctyunConfig.getRequestUrl(); - paramStr = CtyunUtils.generateParamJsonStr(ctyunConfig, 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()); } log.debug("requestUrl {}", requestUrl); try(HttpResponse response = HttpRequest.post(requestUrl) - .addHeaders(CtyunUtils.signHeader(paramStr, ctyunConfig.getAccessKeyId(), ctyunConfig.getAccessKeySecret())) + .addHeaders(CtyunUtils.signHeader(paramStr, config.getAccessKeyId(), config.getAccessKeySecret())) .body(paramStr) .execute()){ JSONObject body = JSONUtil.parseObj(response.body()); @@ -89,6 +89,7 @@ public class CtyunSmsImpl extends AbstractSmsBlend { SmsResponse smsResponse = new SmsResponse(); smsResponse.setSuccess("OK".equals(resJson.getStr("code"))); smsResponse.setData(resJson); + smsResponse.setConfigId(this.config.getConfigId()); return smsResponse; } diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/emay/config/EmayConfig.java b/sms4j-provider/src/main/java/org/dromara/sms4j/emay/config/EmayConfig.java index e6d581cc..197b52f7 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/emay/config/EmayConfig.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/emay/config/EmayConfig.java @@ -23,4 +23,11 @@ public class EmayConfig implements SupplierConfig { private String secretKey ; /** APP接入地址*/ private String requestUrl; + + /** + * 配置标识名 如未配置取对应渠道名例如 Alibaba + * + * @since 3.0.0 + */ + private String configId; } 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 0666d84d..38c8d0e2 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 @@ -94,6 +94,7 @@ public class EmaySmsImpl extends AbstractSmsBlend { SmsResponse smsResponse = new SmsResponse(); smsResponse.setSuccess("success".equalsIgnoreCase(resJson.getStr("code"))); smsResponse.setData(resJson); + smsResponse.setConfigId(this.config.getConfigId()); return smsResponse; } diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/huawei/config/HuaweiConfig.java b/sms4j-provider/src/main/java/org/dromara/sms4j/huawei/config/HuaweiConfig.java index 50bc9916..deb4c6fa 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/huawei/config/HuaweiConfig.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/huawei/config/HuaweiConfig.java @@ -28,4 +28,11 @@ public class HuaweiConfig implements SupplierConfig { private String statusCallBack; /** APP接入地址*/ private String url; + + /** + * 配置标识名 如未配置取对应渠道名例如 Alibaba + * + * @since 3.0.0 + */ + private String configId; } 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 73136448..3ce28a9a 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 @@ -78,6 +78,7 @@ public class HuaweiSmsImpl extends AbstractSmsBlend { SmsResponse smsResponse = new SmsResponse(); smsResponse.setSuccess("000000".equals(resJson.getStr("Code"))); smsResponse.setData(resJson); + smsResponse.setConfigId(this.config.getConfigId()); return smsResponse; } 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 069975fe..0fb362dd 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 @@ -87,6 +87,7 @@ public class JdCloudSmsImpl extends AbstractSmsBlend { SmsResponse smsResponse = new SmsResponse(); smsResponse.setSuccess(res.getStatus() != null && res.getStatus()); smsResponse.setData(res); + smsResponse.setConfigId(this.config.getConfigId()); return smsResponse; } } 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 4d9a1bd1..10aebdd3 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 @@ -118,10 +118,11 @@ public class NeteaseSmsImpl extends AbstractSmsBlend { } private SmsResponse getResponse(JSONObject jsonObject) { - SmsResponse response = new SmsResponse(); - response.setSuccess(jsonObject.getInt("code") <= 200); - response.setData(jsonObject); - return response; + SmsResponse smsResponse = new SmsResponse(); + smsResponse.setSuccess(jsonObject.getInt("code") <= 200); + smsResponse.setData(jsonObject); + smsResponse.setConfigId(this.config.getConfigId()); + 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 6b18ff55..b2f7c490 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 @@ -28,11 +28,11 @@ import java.util.concurrent.Executor; @Slf4j public class TencentSmsImpl extends AbstractSmsBlend { - private final TencentConfig tencentSmsConfig; + private final TencentConfig config; public TencentSmsImpl(TencentConfig tencentSmsConfig, Executor pool, DelayedTime delayed) { super(pool, delayed); - this.tencentSmsConfig = tencentSmsConfig; + this.config = tencentSmsConfig; } @Override @@ -43,7 +43,7 @@ public class TencentSmsImpl extends AbstractSmsBlend { for (int i = 0; i < split.length; i++) { map.put(String.valueOf(i), split[i]); } - return sendMessage(phone, tencentSmsConfig.getTemplateId(), map); + return sendMessage(phone, config.getTemplateId(), map); } @Override @@ -65,7 +65,7 @@ public class TencentSmsImpl extends AbstractSmsBlend { for (int i = 0; i < split.length; i++) { map.put(String.valueOf(i), split[i]); } - return massTexting(phones, tencentSmsConfig.getTemplateId(), map); + return massTexting(phones, config.getTemplateId(), map); } @Override @@ -83,16 +83,16 @@ public class TencentSmsImpl extends AbstractSmsBlend { String timestamp = String.valueOf(System.currentTimeMillis() / 1000); String signature; try { - signature = TencentUtils.generateSignature(this.tencentSmsConfig, templateId, messages, phones, timestamp); + signature = TencentUtils.generateSignature(this.config, templateId, messages, phones, timestamp); } catch (Exception e) { log.error("tencent send message error", e); throw new SmsBlendException(e.getMessage()); } - Map headsMap = TencentUtils.generateHeadsMap(signature, timestamp, tencentSmsConfig.getAction(), - tencentSmsConfig.getVersion(), tencentSmsConfig.getTerritory(), tencentSmsConfig.getRequestUrl()); - Map requestBody = TencentUtils.generateRequestBody(phones, tencentSmsConfig.getSdkAppId(), - tencentSmsConfig.getSignature(), templateId, messages); - String url = Constant.HTTPS_PREFIX + tencentSmsConfig.getRequestUrl(); + Map headsMap = TencentUtils.generateHeadsMap(signature, timestamp, config.getAction(), + config.getVersion(), config.getTerritory(), config.getRequestUrl()); + Map requestBody = TencentUtils.generateRequestBody(phones, config.getSdkAppId(), + config.getSignature(), templateId, messages); + String url = Constant.HTTPS_PREFIX + config.getRequestUrl(); try(HttpResponse response = HttpRequest.post(url) .addHeaders(headsMap) .body(JSONUtil.toJsonStr(requestBody)) @@ -108,6 +108,7 @@ public class TencentSmsImpl extends AbstractSmsBlend { String error = response.getStr("Error"); smsResponse.setSuccess(StringUtils.isBlank(error)); smsResponse.setData(resJson); + smsResponse.setConfigId(this.config.getConfigId()); return smsResponse; } } \ No newline at end of file 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 84e2a642..4c831463 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 @@ -87,6 +87,7 @@ public class UniSmsImpl extends AbstractSmsBlend { UniResponse send = Uni.getClient().request("sms.message.send", data); smsResponse.setSuccess("Success".equals(send.message)); smsResponse.setData(send); + smsResponse.setConfigId(this.config.getConfigId()); } catch (Exception e) { smsResponse.setSuccess(false); } 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 3bc14351..cecb7691 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 @@ -31,7 +31,7 @@ public class YunPianSmsImpl extends AbstractSmsBlend { private final YunpianConfig config; - private static SmsResponse getResponse(JSONObject execute) { + private SmsResponse getResponse(JSONObject execute) { SmsResponse smsResponse = new SmsResponse(); if (execute == null) { smsResponse.setSuccess(false); @@ -39,6 +39,7 @@ public class YunPianSmsImpl extends AbstractSmsBlend { } smsResponse.setSuccess(execute.getInt("code") == 0); smsResponse.setData(execute); + smsResponse.setConfigId(this.config.getConfigId()); return smsResponse; } diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/zhutong/config/ZhutongConfig.java b/sms4j-provider/src/main/java/org/dromara/sms4j/zhutong/config/ZhutongConfig.java index 43e560c5..2aea094f 100644 --- a/sms4j-provider/src/main/java/org/dromara/sms4j/zhutong/config/ZhutongConfig.java +++ b/sms4j-provider/src/main/java/org/dromara/sms4j/zhutong/config/ZhutongConfig.java @@ -1,6 +1,10 @@ package org.dromara.sms4j.zhutong.config; -import lombok.*; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; import lombok.experimental.SuperBuilder; import org.dromara.sms4j.api.universal.SupplierConfig; import org.dromara.sms4j.comm.config.BaseConfig; 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 8c3098d4..4831e4cc 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 @@ -33,7 +33,7 @@ import java.util.concurrent.Executor; @Slf4j public class ZhutongSmsImpl extends AbstractSmsBlend { - private final ZhutongConfig zhutongConfig; + private final ZhutongConfig config; /** * ZhutongSmsImpl @@ -41,20 +41,20 @@ public class ZhutongSmsImpl extends AbstractSmsBlend { */ public ZhutongSmsImpl(ZhutongConfig zhutongConfig, Executor pool, DelayedTime delayedTime) { super(pool, delayedTime); - this.zhutongConfig = zhutongConfig; + this.config = zhutongConfig; } @Override @Restricted public SmsResponse sendMessage(String phone, String message) { //如果模板id为空 or 模板变量名称为空,使用无模板的自定义短信发送 - if (StrUtil.hasBlank(zhutongConfig.getSignature(), zhutongConfig.getTemplateId(), zhutongConfig.getTemplateName())) { + if (StrUtil.hasBlank(config.getSignature(), config.getTemplateId(), config.getTemplateName())) { return getSmsResponse(phone, message); } LinkedHashMap map = new LinkedHashMap<>(); - map.put(zhutongConfig.getTemplateName(), message); - return sendMessage(phone, zhutongConfig.getTemplateId(), map); + map.put(config.getTemplateName(), message); + return sendMessage(phone, config.getTemplateId(), map); } @Override @@ -67,13 +67,13 @@ public class ZhutongSmsImpl extends AbstractSmsBlend { @Restricted public SmsResponse massTexting(List phones, String message) { //如果模板id为空 or 模板变量名称为空,使用无模板的自定义短信发送 - if (StrUtil.hasBlank(zhutongConfig.getSignature(), zhutongConfig.getTemplateId(), zhutongConfig.getTemplateName())) { + if (StrUtil.hasBlank(config.getSignature(), config.getTemplateId(), config.getTemplateName())) { return getSmsResponse(phones, message); } LinkedHashMap map = new LinkedHashMap<>(); - map.put(zhutongConfig.getTemplateName(), message); - return massTexting(phones, zhutongConfig.getTemplateId(), map); + map.put(config.getTemplateName(), message); + return massTexting(phones, config.getTemplateId(), map); } @Override @@ -86,9 +86,9 @@ public class ZhutongSmsImpl extends AbstractSmsBlend { * 发送 自定义短信:https://doc.zthysms.com/web/#/1/14 */ protected SmsResponse getSmsResponse(List phones, String content) { - String requestUrl = zhutongConfig.getRequestUrl(); - String username = zhutongConfig.getAccessKeyId(); - String password = zhutongConfig.getAccessKeySecret(); + String requestUrl = config.getRequestUrl(); + String username = config.getAccessKeyId(); + String password = config.getAccessKeySecret(); validator(requestUrl, username, password); if (CollectionUtil.isEmpty(phones)) { @@ -139,10 +139,10 @@ public class ZhutongSmsImpl extends AbstractSmsBlend { * 发送 模板短信:https://doc.zthysms.com/web/#/1/13 */ protected SmsResponse getSmsResponseTemplate(String templateId, List phones, LinkedHashMap messages) { - String requestUrl = zhutongConfig.getRequestUrl(); - String username = zhutongConfig.getAccessKeyId(); - String password = zhutongConfig.getAccessKeySecret(); - String signature = zhutongConfig.getSignature(); + String requestUrl = config.getRequestUrl(); + String username = config.getAccessKeyId(); + String password = config.getAccessKeySecret(); + String signature = config.getSignature(); validator(requestUrl, username, password); if (StrUtil.isBlank(signature)) { @@ -208,10 +208,11 @@ public class ZhutongSmsImpl extends AbstractSmsBlend { } private SmsResponse getResponse(JSONObject jsonObject) { - SmsResponse response = new SmsResponse(); - response.setSuccess(jsonObject.getInt("code", -1) <= 200); - response.setData(jsonObject); - return response; + SmsResponse smsResponse = new SmsResponse(); + smsResponse.setSuccess(jsonObject.getInt("code", -1) <= 200); + smsResponse.setData(jsonObject); + smsResponse.setConfigId(this.config.getConfigId()); + return smsResponse; } private void validator(String requestUrl, String username, String password) {