From 236ae38016e9485a91a5a643c495fded14624990 Mon Sep 17 00:00:00 2001
From: heng <835217326@qq.com>
Date: Sat, 5 Aug 2023 19:06:42 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BE=9B=E5=BA=94=E5=95=86?=
=?UTF-8?q?=E5=88=9B=E5=BB=BA=E7=9B=B8=E5=85=B3=E4=BB=A3=E7=A0=81=EF=BC=8C?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9SE=E5=88=9D=E5=A7=8B=E5=8C=96=E6=96=B9?=
=?UTF-8?q?=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../api/universal/SmsRestrictedUtil.java | 8 +-
.../dromara/sms4j/comm/constant/Constant.java | 5 ++
.../org/dromara/sms4j/comm/utils/SmsUtil.java | 24 ++++++
.../sms4j/core/factory/SmsFactory.java | 2 +-
.../sms4j/javase/config/SEInitializer.java | 75 +++++++------------
.../sms4j/aliyun/config/AlibabaFactory.java | 4 +-
.../sms4j/cloopen/config/CloopenFactory.java | 4 +-
.../sms4j/ctyun/config/CtyunFactory.java | 4 +-
.../sms4j/emay/config/EmayFactory.java | 4 +-
.../sms4j/huawei/config/HuaweiFactory.java | 4 +-
.../sms4j/jdcloud/config/JdCloudFactory.java | 4 +-
.../sms4j/netease/config/NeteaseFactory.java | 4 +-
.../factory/AbstractProviderFactory.java | 32 ++++++++
.../provider/factory/BaseProviderFactory.java | 6 +-
.../factory/ProviderFactoryHolder.java | 4 +-
.../sms4j/tencent/config/TencentFactory.java | 4 +-
.../sms4j/unisms/config/UniFactory.java | 4 +-
.../sms4j/yunpian/config/YunPianFactory.java | 4 +-
.../sms4j/zhutong/config/ZhutongFactory.java | 4 +-
19 files changed, 119 insertions(+), 81 deletions(-)
create mode 100644 sms4j-provider/src/main/java/org/dromara/sms4j/provider/factory/AbstractProviderFactory.java
diff --git a/sms4j-api/src/main/java/org/dromara/sms4j/api/universal/SmsRestrictedUtil.java b/sms4j-api/src/main/java/org/dromara/sms4j/api/universal/SmsRestrictedUtil.java
index 9e463b7a..68ac8ebf 100644
--- a/sms4j-api/src/main/java/org/dromara/sms4j/api/universal/SmsRestrictedUtil.java
+++ b/sms4j-api/src/main/java/org/dromara/sms4j/api/universal/SmsRestrictedUtil.java
@@ -17,7 +17,7 @@ public interface SmsRestrictedUtil {
* @param time 过期时间(秒级单位)
* @author :Wind
*/
- public boolean setOrTime(String key, Object value, Long time) throws RuntimeException;
+ boolean setOrTime(String key, Object value, Long time) throws RuntimeException;
/**
* set
@@ -26,7 +26,7 @@ public interface SmsRestrictedUtil {
* @param value 缓存value值
* @author :Wind
*/
- public boolean set(String key, Object value) throws RuntimeException;
+ boolean set(String key, Object value) throws RuntimeException;
/**
* getByKey
@@ -34,12 +34,12 @@ public interface SmsRestrictedUtil {
* @param key redis的key
* @author :Wind
*/
- public Object getByKey(String key) throws RuntimeException;
+ Object getByKey(String key) throws RuntimeException;
/**
* clear
*
清除缓存
* @author :Wind
*/
- public void clean() throws RuntimeException;
+ void clean() throws RuntimeException;
}
diff --git a/sms4j-comm/src/main/java/org/dromara/sms4j/comm/constant/Constant.java b/sms4j-comm/src/main/java/org/dromara/sms4j/comm/constant/Constant.java
index 7b65d83d..3eb52eb2 100644
--- a/sms4j-comm/src/main/java/org/dromara/sms4j/comm/constant/Constant.java
+++ b/sms4j-comm/src/main/java/org/dromara/sms4j/comm/constant/Constant.java
@@ -43,6 +43,11 @@ public abstract class Constant {
*/
public static final String HTTPS_PREFIX = "https://";
+ /**
+ * 供应商配置键名
+ */
+ public static final String SUPPLIER_KEY = "supplier";
+
private Constant() {
}
}
diff --git a/sms4j-comm/src/main/java/org/dromara/sms4j/comm/utils/SmsUtil.java b/sms4j-comm/src/main/java/org/dromara/sms4j/comm/utils/SmsUtil.java
index d91b6da9..1a017746 100644
--- a/sms4j-comm/src/main/java/org/dromara/sms4j/comm/utils/SmsUtil.java
+++ b/sms4j-comm/src/main/java/org/dromara/sms4j/comm/utils/SmsUtil.java
@@ -4,11 +4,13 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
+import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Map;
/**
* @author wind
@@ -139,4 +141,26 @@ public class SmsUtil {
return toStr.toArray(new String[list.size()]);
}
+ /**
+ * 将Map中所有key的分隔符转换为新的分隔符
+ * @param map map对象
+ * @param seperator 旧分隔符
+ * @param newSeperator 新分隔符
+ */
+ public static void replaceKeysSeperator(Map map, String seperator, String newSeperator) {
+ if(CollUtil.isEmpty(map)) {
+ return;
+ }
+ List keySet = new ArrayList<>(map.keySet());
+ for(String key : keySet) {
+ if(StrUtil.isEmpty(key) || !key.contains(seperator)) {
+ continue;
+ }
+ String value = map.get(key);
+ String newKey = key.replaceAll(seperator, newSeperator);
+ map.putIfAbsent(newKey, value);
+ map.remove(key);
+ }
+ }
+
}
\ No newline at end of file
diff --git a/sms4j-core/src/main/java/org/dromara/sms4j/core/factory/SmsFactory.java b/sms4j-core/src/main/java/org/dromara/sms4j/core/factory/SmsFactory.java
index 6bb038aa..40512351 100644
--- a/sms4j-core/src/main/java/org/dromara/sms4j/core/factory/SmsFactory.java
+++ b/sms4j-core/src/main/java/org/dromara/sms4j/core/factory/SmsFactory.java
@@ -69,7 +69,7 @@ public abstract class SmsFactory {
}
private static SmsBlend create(SupplierConfig config) {
- BaseProviderFactory factory = ProviderFactoryHolder.requireForConfig(config);
+ BaseProviderFactory factory = ProviderFactoryHolder.requireForSupplier(config.getSupplier());
if (factory == null) {
throw new SmsBlendException("不支持当前供应商配置");
}
diff --git a/sms4j-javase-plugin/src/main/java/org/dromara/sms4j/javase/config/SEInitializer.java b/sms4j-javase-plugin/src/main/java/org/dromara/sms4j/javase/config/SEInitializer.java
index f570c43e..6a804dfb 100644
--- a/sms4j-javase-plugin/src/main/java/org/dromara/sms4j/javase/config/SEInitializer.java
+++ b/sms4j-javase-plugin/src/main/java/org/dromara/sms4j/javase/config/SEInitializer.java
@@ -2,27 +2,38 @@ package org.dromara.sms4j.javase.config;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.io.resource.ClassPathResource;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.aliyun.config.AlibabaConfig;
+import org.dromara.sms4j.api.SmsBlend;
+import org.dromara.sms4j.api.universal.SupplierConfig;
import org.dromara.sms4j.cloopen.config.CloopenConfig;
import org.dromara.sms4j.comm.config.SmsConfig;
+import org.dromara.sms4j.comm.constant.Constant;
import org.dromara.sms4j.comm.exception.SmsBlendException;
import org.dromara.sms4j.comm.factory.BeanFactory;
+import org.dromara.sms4j.comm.utils.SmsUtil;
import org.dromara.sms4j.core.factory.SmsFactory;
import org.dromara.sms4j.emay.config.EmayConfig;
import org.dromara.sms4j.huawei.config.HuaweiConfig;
import org.dromara.sms4j.javase.util.YamlUtil;
import org.dromara.sms4j.jdcloud.config.JdCloudConfig;
import org.dromara.sms4j.netease.config.NeteaseConfig;
+import org.dromara.sms4j.provider.config.BaseConfig;
+import org.dromara.sms4j.provider.factory.BaseProviderFactory;
+import org.dromara.sms4j.provider.factory.ProviderFactoryHolder;
import org.dromara.sms4j.tencent.config.TencentConfig;
import org.dromara.sms4j.unisms.config.UniConfig;
import org.dromara.sms4j.yunpian.config.YunpianConfig;
import org.dromara.sms4j.zhutong.config.ZhutongConfig;
+import java.util.Map;
+
/**
* 初始化类
*/
@@ -88,45 +99,20 @@ public class SEInitializer {
}
this.initSmsConfig(smsConfig);
- AlibabaConfig alibabaConfig = smsConfig.getAlibaba();
- if (alibabaConfig != null) {
- SmsFactory.createSmsBlend(alibabaConfig);
- }
- CloopenConfig cloopenConfig = smsConfig.getCloopen();
- if (cloopenConfig != null) {
- SmsFactory.createSmsBlend(cloopenConfig);
- }
- EmayConfig emayConfig = smsConfig.getEmay();
- if (emayConfig != null) {
- SmsFactory.createSmsBlend(emayConfig);
- }
- HuaweiConfig huaweiConfig = smsConfig.getHuawei();
- if (huaweiConfig != null) {
- SmsFactory.createSmsBlend(huaweiConfig);
- }
- JdCloudConfig jdCloudConfig = smsConfig.getJdCloud();
- if (jdCloudConfig != null) {
- SmsFactory.createSmsBlend(jdCloudConfig);
- }
- TencentConfig tencentConfig = smsConfig.getTencent();
- if (tencentConfig != null) {
- SmsFactory.createSmsBlend(tencentConfig);
- }
- UniConfig uniConfig = smsConfig.getUni();
- if (uniConfig != null) {
- SmsFactory.createSmsBlend(uniConfig);
- }
- YunpianConfig yunpianConfig = smsConfig.getYunpian();
- if (yunpianConfig != null) {
- SmsFactory.createSmsBlend(yunpianConfig);
- }
- NeteaseConfig neteaseConfig = smsConfig.getNeteaseConfig();
- if (neteaseConfig != null){
- SmsFactory.createSmsBlend(neteaseConfig);
- }
- ZhutongConfig zhutongConfig = smsConfig.getZhutongConfig();
- if (zhutongConfig != null){
- SmsFactory.createSmsBlend(zhutongConfig);
+ // 解析供应商配置
+ Map> blends = smsConfig.getBlends();
+ for(String configId : blends.keySet()) {
+ Map configMap = blends.get(configId);
+ String supplier = configMap.get(Constant.SUPPLIER_KEY);
+ supplier = StrUtil.isEmpty(supplier) ? configId : supplier;
+ BaseProviderFactory providerFactory = (BaseProviderFactory) ProviderFactoryHolder.requireForSupplier(supplier);
+ if(providerFactory == null) {
+ log.warn("创建\"{}\"的短信服务失败,未找到供应商为\"{}\"的服务", configId, supplier);
+ }
+ SmsUtil.replaceKeysSeperator(configMap, "-", "_");
+ JSONObject configJson = new JSONObject(configMap);
+ SupplierConfig supplierConfig = JSONUtil.toBean(configJson, providerFactory.getConfigClass());
+ providerFactory.createSms(supplierConfig);
}
}
@@ -147,16 +133,7 @@ public class SEInitializer {
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public static class InitSmsConfig extends SmsConfig {
- private AlibabaConfig alibaba;
- private CloopenConfig cloopen;
- private EmayConfig emay;
- private HuaweiConfig huawei;
- private JdCloudConfig jdCloud;
- private TencentConfig tencent;
- private UniConfig uni;
- private YunpianConfig yunpian;
- private NeteaseConfig neteaseConfig;
- private ZhutongConfig zhutongConfig;
+ private Map> blends;
}
}
diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/aliyun/config/AlibabaFactory.java b/sms4j-provider/src/main/java/org/dromara/sms4j/aliyun/config/AlibabaFactory.java
index 5dea7060..f7fbb317 100644
--- a/sms4j-provider/src/main/java/org/dromara/sms4j/aliyun/config/AlibabaFactory.java
+++ b/sms4j-provider/src/main/java/org/dromara/sms4j/aliyun/config/AlibabaFactory.java
@@ -3,7 +3,7 @@ package org.dromara.sms4j.aliyun.config;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.dromara.sms4j.aliyun.service.AlibabaSmsImpl;
-import org.dromara.sms4j.provider.factory.BaseProviderFactory;
+import org.dromara.sms4j.provider.factory.AbstractProviderFactory;
import org.dromara.sms4j.provider.factory.ProviderFactoryHolder;
/**
@@ -14,7 +14,7 @@ import org.dromara.sms4j.provider.factory.ProviderFactoryHolder;
* 2023/4/8 14:54
**/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public class AlibabaFactory implements BaseProviderFactory {
+public class AlibabaFactory extends AbstractProviderFactory {
private static final AlibabaFactory INSTANCE = new AlibabaFactory();
diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/cloopen/config/CloopenFactory.java b/sms4j-provider/src/main/java/org/dromara/sms4j/cloopen/config/CloopenFactory.java
index 4d674dc6..35f45ee7 100644
--- a/sms4j-provider/src/main/java/org/dromara/sms4j/cloopen/config/CloopenFactory.java
+++ b/sms4j-provider/src/main/java/org/dromara/sms4j/cloopen/config/CloopenFactory.java
@@ -3,7 +3,7 @@ package org.dromara.sms4j.cloopen.config;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.dromara.sms4j.cloopen.service.CloopenSmsImpl;
-import org.dromara.sms4j.provider.factory.BaseProviderFactory;
+import org.dromara.sms4j.provider.factory.AbstractProviderFactory;
import org.dromara.sms4j.provider.factory.ProviderFactoryHolder;
/**
@@ -13,7 +13,7 @@ import org.dromara.sms4j.provider.factory.ProviderFactoryHolder;
* @since 2023/4/10 22:10
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public class CloopenFactory implements BaseProviderFactory {
+public class CloopenFactory extends AbstractProviderFactory {
private static final CloopenFactory INSTANCE = new CloopenFactory();
diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/ctyun/config/CtyunFactory.java b/sms4j-provider/src/main/java/org/dromara/sms4j/ctyun/config/CtyunFactory.java
index ff16e402..84188e80 100644
--- a/sms4j-provider/src/main/java/org/dromara/sms4j/ctyun/config/CtyunFactory.java
+++ b/sms4j-provider/src/main/java/org/dromara/sms4j/ctyun/config/CtyunFactory.java
@@ -3,7 +3,7 @@ package org.dromara.sms4j.ctyun.config;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.dromara.sms4j.ctyun.service.CtyunSmsImpl;
-import org.dromara.sms4j.provider.factory.BaseProviderFactory;
+import org.dromara.sms4j.provider.factory.AbstractProviderFactory;
import org.dromara.sms4j.provider.factory.ProviderFactoryHolder;
/**
@@ -14,7 +14,7 @@ import org.dromara.sms4j.provider.factory.ProviderFactoryHolder;
* 2023/5/12 15:06
**/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public class CtyunFactory implements BaseProviderFactory {
+public class CtyunFactory extends AbstractProviderFactory {
private static final CtyunFactory INSTANCE = new CtyunFactory();
diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/emay/config/EmayFactory.java b/sms4j-provider/src/main/java/org/dromara/sms4j/emay/config/EmayFactory.java
index acdc8a21..fa808012 100644
--- a/sms4j-provider/src/main/java/org/dromara/sms4j/emay/config/EmayFactory.java
+++ b/sms4j-provider/src/main/java/org/dromara/sms4j/emay/config/EmayFactory.java
@@ -3,7 +3,7 @@ package org.dromara.sms4j.emay.config;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.dromara.sms4j.emay.service.EmaySmsImpl;
-import org.dromara.sms4j.provider.factory.BaseProviderFactory;
+import org.dromara.sms4j.provider.factory.AbstractProviderFactory;
import org.dromara.sms4j.provider.factory.ProviderFactoryHolder;
/**
@@ -14,7 +14,7 @@ import org.dromara.sms4j.provider.factory.ProviderFactoryHolder;
* @date 2023/04/11 12:00
* */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public class EmayFactory implements BaseProviderFactory {
+public class EmayFactory extends AbstractProviderFactory {
private static final EmayFactory INSTANCE = new EmayFactory();
diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/huawei/config/HuaweiFactory.java b/sms4j-provider/src/main/java/org/dromara/sms4j/huawei/config/HuaweiFactory.java
index 66eab431..1e4cc84a 100644
--- a/sms4j-provider/src/main/java/org/dromara/sms4j/huawei/config/HuaweiFactory.java
+++ b/sms4j-provider/src/main/java/org/dromara/sms4j/huawei/config/HuaweiFactory.java
@@ -4,7 +4,7 @@ import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.dromara.sms4j.aliyun.service.AlibabaSmsImpl;
import org.dromara.sms4j.huawei.service.HuaweiSmsImpl;
-import org.dromara.sms4j.provider.factory.BaseProviderFactory;
+import org.dromara.sms4j.provider.factory.AbstractProviderFactory;
import org.dromara.sms4j.provider.factory.ProviderFactoryHolder;
/**
@@ -15,7 +15,7 @@ import org.dromara.sms4j.provider.factory.ProviderFactoryHolder;
* 2023/4/8 15:27
**/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public class HuaweiFactory implements BaseProviderFactory {
+public class HuaweiFactory extends AbstractProviderFactory {
private static final HuaweiFactory INSTANCE = new HuaweiFactory();
diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/jdcloud/config/JdCloudFactory.java b/sms4j-provider/src/main/java/org/dromara/sms4j/jdcloud/config/JdCloudFactory.java
index 5fe2d7a1..209c292c 100644
--- a/sms4j-provider/src/main/java/org/dromara/sms4j/jdcloud/config/JdCloudFactory.java
+++ b/sms4j-provider/src/main/java/org/dromara/sms4j/jdcloud/config/JdCloudFactory.java
@@ -8,7 +8,7 @@ import com.jdcloud.sdk.service.sms.client.SmsClient;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.dromara.sms4j.jdcloud.service.JdCloudSmsImpl;
-import org.dromara.sms4j.provider.factory.BaseProviderFactory;
+import org.dromara.sms4j.provider.factory.AbstractProviderFactory;
import org.dromara.sms4j.provider.factory.ProviderFactoryHolder;
/**
@@ -18,7 +18,7 @@ import org.dromara.sms4j.provider.factory.ProviderFactoryHolder;
* @since 2023/4/10 20:01
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public class JdCloudFactory implements BaseProviderFactory {
+public class JdCloudFactory extends AbstractProviderFactory {
private static final JdCloudFactory INSTANCE = new JdCloudFactory();
diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/netease/config/NeteaseFactory.java b/sms4j-provider/src/main/java/org/dromara/sms4j/netease/config/NeteaseFactory.java
index 66f30d02..bcdefd4f 100644
--- a/sms4j-provider/src/main/java/org/dromara/sms4j/netease/config/NeteaseFactory.java
+++ b/sms4j-provider/src/main/java/org/dromara/sms4j/netease/config/NeteaseFactory.java
@@ -3,7 +3,7 @@ package org.dromara.sms4j.netease.config;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.dromara.sms4j.netease.service.NeteaseSmsImpl;
-import org.dromara.sms4j.provider.factory.BaseProviderFactory;
+import org.dromara.sms4j.provider.factory.AbstractProviderFactory;
import org.dromara.sms4j.provider.factory.ProviderFactoryHolder;
/**
@@ -14,7 +14,7 @@ import org.dromara.sms4j.provider.factory.ProviderFactoryHolder;
* 2023-05-30
**/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public class NeteaseFactory implements BaseProviderFactory {
+public class NeteaseFactory extends AbstractProviderFactory {
private static final NeteaseFactory INSTANCE = new NeteaseFactory();
diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/provider/factory/AbstractProviderFactory.java b/sms4j-provider/src/main/java/org/dromara/sms4j/provider/factory/AbstractProviderFactory.java
new file mode 100644
index 00000000..d3a22f5b
--- /dev/null
+++ b/sms4j-provider/src/main/java/org/dromara/sms4j/provider/factory/AbstractProviderFactory.java
@@ -0,0 +1,32 @@
+package org.dromara.sms4j.provider.factory;
+
+import org.dromara.sms4j.api.SmsBlend;
+import org.dromara.sms4j.api.universal.SupplierConfig;
+
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+
+public abstract class AbstractProviderFactory implements BaseProviderFactory {
+
+ private Class configClass;
+
+ public AbstractProviderFactory() {
+ Type genericSuperclass = getClass().getGenericSuperclass();
+ if(genericSuperclass instanceof ParameterizedType) {
+ ParameterizedType paramType = (ParameterizedType) genericSuperclass;
+ Type[] typeArguments = paramType.getActualTypeArguments();
+ if(typeArguments.length > 1 && typeArguments[1] instanceof Class) {
+ configClass = (Class) typeArguments[1];
+ }
+ }
+ }
+
+ /**
+ * 获取配置类
+ * @return 配置类
+ */
+ public Class getConfigClass() {
+ return configClass;
+ }
+
+}
diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/provider/factory/BaseProviderFactory.java b/sms4j-provider/src/main/java/org/dromara/sms4j/provider/factory/BaseProviderFactory.java
index e42f1fcb..af21783a 100644
--- a/sms4j-provider/src/main/java/org/dromara/sms4j/provider/factory/BaseProviderFactory.java
+++ b/sms4j-provider/src/main/java/org/dromara/sms4j/provider/factory/BaseProviderFactory.java
@@ -19,10 +19,10 @@ public interface BaseProviderFactory getConfigClass();
/**
* 获取供应商
diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/provider/factory/ProviderFactoryHolder.java b/sms4j-provider/src/main/java/org/dromara/sms4j/provider/factory/ProviderFactoryHolder.java
index 4c5bfb8b..b6c1e2e5 100644
--- a/sms4j-provider/src/main/java/org/dromara/sms4j/provider/factory/ProviderFactoryHolder.java
+++ b/sms4j-provider/src/main/java/org/dromara/sms4j/provider/factory/ProviderFactoryHolder.java
@@ -20,9 +20,9 @@ public class ProviderFactoryHolder {
factories.add(factory);
}
- public static BaseProviderFactory extends SmsBlend, ? extends SupplierConfig> requireForConfig(SupplierConfig config) {
+ public static BaseProviderFactory extends SmsBlend, ? extends SupplierConfig> requireForSupplier(String supplier) {
return factories.stream()
- .filter(f -> f.getSupplier().equals(config.getSupplier()))
+ .filter(f -> f.getSupplier().equals(supplier))
.findFirst()
.orElse(null);
}
diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/tencent/config/TencentFactory.java b/sms4j-provider/src/main/java/org/dromara/sms4j/tencent/config/TencentFactory.java
index 8ca7a808..aae52301 100644
--- a/sms4j-provider/src/main/java/org/dromara/sms4j/tencent/config/TencentFactory.java
+++ b/sms4j-provider/src/main/java/org/dromara/sms4j/tencent/config/TencentFactory.java
@@ -1,6 +1,6 @@
package org.dromara.sms4j.tencent.config;
-import org.dromara.sms4j.provider.factory.BaseProviderFactory;
+import org.dromara.sms4j.provider.factory.AbstractProviderFactory;
import org.dromara.sms4j.provider.factory.ProviderFactoryHolder;
import org.dromara.sms4j.tencent.service.TencentSmsImpl;
@@ -11,7 +11,7 @@ import org.dromara.sms4j.tencent.service.TencentSmsImpl;
* @author :Wind
* 2023/4/8 16:05
**/
-public class TencentFactory implements BaseProviderFactory {
+public class TencentFactory extends AbstractProviderFactory {
private static final TencentFactory INSTANCE = new TencentFactory();
diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/unisms/config/UniFactory.java b/sms4j-provider/src/main/java/org/dromara/sms4j/unisms/config/UniFactory.java
index 5f31cd4a..09feaa93 100644
--- a/sms4j-provider/src/main/java/org/dromara/sms4j/unisms/config/UniFactory.java
+++ b/sms4j-provider/src/main/java/org/dromara/sms4j/unisms/config/UniFactory.java
@@ -2,7 +2,7 @@ package org.dromara.sms4j.unisms.config;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import org.dromara.sms4j.provider.factory.BaseProviderFactory;
+import org.dromara.sms4j.provider.factory.AbstractProviderFactory;
import org.dromara.sms4j.provider.factory.ProviderFactoryHolder;
import org.dromara.sms4j.unisms.core.Uni;
import org.dromara.sms4j.unisms.service.UniSmsImpl;
@@ -14,7 +14,7 @@ import org.dromara.sms4j.unisms.service.UniSmsImpl;
* 2023/4/8 15:46
**/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public class UniFactory implements BaseProviderFactory {
+public class UniFactory extends AbstractProviderFactory {
private static final UniFactory INSTANCE = new UniFactory();
diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/yunpian/config/YunPianFactory.java b/sms4j-provider/src/main/java/org/dromara/sms4j/yunpian/config/YunPianFactory.java
index f4069481..f2cf41c9 100644
--- a/sms4j-provider/src/main/java/org/dromara/sms4j/yunpian/config/YunPianFactory.java
+++ b/sms4j-provider/src/main/java/org/dromara/sms4j/yunpian/config/YunPianFactory.java
@@ -2,12 +2,12 @@ package org.dromara.sms4j.yunpian.config;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import org.dromara.sms4j.provider.factory.BaseProviderFactory;
+import org.dromara.sms4j.provider.factory.AbstractProviderFactory;
import org.dromara.sms4j.provider.factory.ProviderFactoryHolder;
import org.dromara.sms4j.yunpian.service.YunPianSmsImpl;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public class YunPianFactory implements BaseProviderFactory {
+public class YunPianFactory extends AbstractProviderFactory {
private static final YunPianFactory INSTANCE = new YunPianFactory();
diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/zhutong/config/ZhutongFactory.java b/sms4j-provider/src/main/java/org/dromara/sms4j/zhutong/config/ZhutongFactory.java
index b35f3a71..23f4f881 100644
--- a/sms4j-provider/src/main/java/org/dromara/sms4j/zhutong/config/ZhutongFactory.java
+++ b/sms4j-provider/src/main/java/org/dromara/sms4j/zhutong/config/ZhutongFactory.java
@@ -2,12 +2,12 @@ package org.dromara.sms4j.zhutong.config;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
-import org.dromara.sms4j.provider.factory.BaseProviderFactory;
+import org.dromara.sms4j.provider.factory.AbstractProviderFactory;
import org.dromara.sms4j.provider.factory.ProviderFactoryHolder;
import org.dromara.sms4j.zhutong.service.ZhutongSmsImpl;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public class ZhutongFactory implements BaseProviderFactory {
+public class ZhutongFactory extends AbstractProviderFactory {
private static final ZhutongFactory INSTANCE = new ZhutongFactory();
static {