diff --git a/sms4j-api/src/main/java/org/dromara/sms4j/api/AbstractSmsBlend.java b/sms4j-api/src/main/java/org/dromara/sms4j/api/AbstractSmsBlend.java
new file mode 100644
index 00000000..1d72bc53
--- /dev/null
+++ b/sms4j-api/src/main/java/org/dromara/sms4j/api/AbstractSmsBlend.java
@@ -0,0 +1,206 @@
+package org.dromara.sms4j.api;
+
+import com.dtflys.forest.config.ForestConfiguration;
+import org.dromara.sms4j.api.callback.CallBack;
+import org.dromara.sms4j.api.entity.SmsResponse;
+import org.dromara.sms4j.comm.annotation.Restricted;
+import org.dromara.sms4j.comm.delayedTime.DelayedTime;
+import org.dromara.sms4j.comm.factory.BeanFactory;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.TimerTask;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.Executor;
+
+public abstract class AbstractSmsBlend implements SmsBlend{
+
+ protected final Executor pool;
+ protected final DelayedTime delayed;
+
+ protected final ForestConfiguration http = BeanFactory.getForestConfiguration();
+ protected AbstractSmsBlend(Executor pool, DelayedTime delayed) {
+ this.pool = pool;
+ this.delayed = delayed;
+ }
+
+ /**
+ *
说明:发送固定消息模板短信
+ *
此方法将使用配置文件中预设的短信模板进行短信发送
+ *
该方法指定的模板变量只能存在一个(配置文件中)
+ *
如使用的是腾讯的短信,参数字符串中可以同时存在多个参数,使用 & 分隔例如:您的验证码为{1}在{2}分钟内有效,可以传为 message="xxxx"+"&"+"5"
+ * sendMessage
+ *
+ * @param phone 接收短信的手机号
+ * message 消息内容
+ * @author :Wind
+ */
+
+ public abstract SmsResponse sendMessage(String phone, String message);
+
+ /**
+ *
说明:使用自定义模板发送短信
+ * sendMessage
+ *
+ * @param templateId 模板id
+ * @param messages key为模板变量名称 value为模板变量值
+ * @author :Wind
+ */
+
+ public abstract SmsResponse sendMessage(String phone, String templateId, LinkedHashMap messages);
+
+ /**
+ * 说明:群发固定模板短信
+ * massTexting
+ *
+ * @author :Wind
+ */
+
+ public abstract SmsResponse massTexting(List phones, String message);
+
+ /**
+ * 说明:使用自定义模板群发短信
+ * massTexting
+ *
+ * @author :Wind
+ */
+
+ public abstract SmsResponse massTexting(List phones, String templateId, LinkedHashMap messages);
+
+ /**
+ * 说明:异步短信发送,固定消息模板短信
+ * sendMessageAsync
+ *
+ * @param phone 要发送的号码
+ * @param message 发送内容
+ * @param callBack 回调
+ * @author :Wind
+ */
+ @Restricted
+ public final void sendMessageAsync(String phone, String message, CallBack callBack){
+ CompletableFuture smsResponseCompletableFuture = CompletableFuture.supplyAsync(() -> sendMessage(phone, message), pool);
+ smsResponseCompletableFuture.thenAcceptAsync(callBack::callBack);
+ }
+
+ /**
+ * 说明:异步发送短信,不关注发送结果
+ * sendMessageAsync
+ *
+ * @param phone 要发送的号码
+ * @param message 发送内容
+ * @author :Wind
+ */
+ @Restricted
+ public final void sendMessageAsync(String phone, String message){
+ pool.execute(() -> {
+ sendMessage(phone, message);
+ });
+ }
+
+ /**
+ *
说明:异步短信发送,使用自定义模板发送短信
+ * sendMessage
+ *
+ * @param templateId 模板id
+ * @param messages key为模板变量名称 value为模板变量值
+ * @param callBack 回调
+ * @author :Wind
+ */
+
+ @Restricted
+ public final void sendMessageAsync(String phone, String templateId, LinkedHashMap messages, CallBack callBack){
+ CompletableFuture smsResponseCompletableFuture = CompletableFuture.supplyAsync(() -> sendMessage(phone,templateId, messages), pool);
+ smsResponseCompletableFuture.thenAcceptAsync(callBack::callBack);
+ }
+
+ /**
+ * 说明:异步短信发送,使用自定义模板发送短信,不关注发送结果
+ * sendMessageAsync
+ *
+ * @param templateId 模板id
+ * @param messages key为模板变量名称 value为模板变量值
+ * @author :Wind
+ */
+ @Restricted
+ public final void sendMessageAsync(String phone, String templateId, LinkedHashMap messages){
+ pool.execute(() -> {
+ sendMessage(phone, templateId, messages);
+ });
+ }
+
+ /**
+ * 说明:使用固定模板发送延时短信
+ * delayedMessage
+ *
+ * @param phone 接收短信的手机号
+ * @param message 要发送的短信
+ * @param delayedTime 延迟时间
+ * @author :Wind
+ */
+ @Restricted
+ public final void delayedMessage(String phone, String message, Long delayedTime){
+ this.delayed.schedule(new TimerTask() {
+ @Override
+ public void run() {
+ sendMessage(phone, message);
+ }
+ }, delayedTime);
+ }
+
+ /**
+ *
说明:使用自定义模板发送定时短信 sendMessage
+ * delayedMessage
+ *
+ * @param templateId 模板id
+ * @param messages key为模板变量名称 value为模板变量值
+ * @param phone 要发送的手机号
+ * @param delayedTime 延迟的时间
+ * @author :Wind
+ */
+ @Restricted
+ public final void delayedMessage(String phone, String templateId, LinkedHashMap messages, Long delayedTime){
+ this.delayed.schedule(new TimerTask() {
+ @Override
+ public void run() {
+ sendMessage(phone, templateId, messages);
+ }
+ }, delayedTime);
+ }
+
+ /**
+ * 说明:群发延迟短信
+ * delayMassTexting
+ *
+ * @param phones 要群体发送的手机号码
+ * @author :Wind
+ */
+ @Restricted
+ public final void delayMassTexting(List phones, String message, Long delayedTime){
+ this.delayed.schedule(new TimerTask() {
+ @Override
+ public void run() {
+ massTexting(phones, message);
+ }
+ }, delayedTime);
+ }
+
+ /**
+ * 说明:使用自定义模板发送群体延迟短信
+ * delayMassTexting
+ *
+ * @param phones 要群体发送的手机号码
+ * @param templateId 模板id
+ * @param messages key为模板变量名称 value为模板变量值
+ * @param delayedTime 延迟的时间
+ * @author :Wind
+ */
+ @Restricted
+ public final void delayMassTexting(List phones, String templateId, LinkedHashMap messages, Long delayedTime){
+ this.delayed.schedule(new TimerTask() {
+ @Override
+ public void run() {
+ massTexting(phones, templateId, messages);
+ }
+ }, delayedTime);
+ }
+}
diff --git a/sms4j-api/src/main/java/org/dromara/sms4j/api/SmsBlend.java b/sms4j-api/src/main/java/org/dromara/sms4j/api/SmsBlend.java
index 31042825..8ee351cf 100644
--- a/sms4j-api/src/main/java/org/dromara/sms4j/api/SmsBlend.java
+++ b/sms4j-api/src/main/java/org/dromara/sms4j/api/SmsBlend.java
@@ -6,136 +6,35 @@ import org.dromara.sms4j.api.entity.SmsResponse;
import java.util.LinkedHashMap;
import java.util.List;
+/**
+ * SmsBlend
+ * 通用接口,定义国内短信方法
+ * @author :Wind
+ * 2023/5/16 16:03
+ **/
public interface SmsBlend {
- /**
- *
说明:发送固定消息模板短信
- *
此方法将使用配置文件中预设的短信模板进行短信发送
- *
该方法指定的模板变量只能存在一个(配置文件中)
- *
如使用的是腾讯的短信,参数字符串中可以同时存在多个参数,使用 & 分隔例如:您的验证码为{1}在{2}分钟内有效,可以传为 message="xxxx"+"&"+"5"
- * sendMessage
- *
- * @param phone 接收短信的手机号
- * message 消息内容
- * @author :Wind
- */
-
SmsResponse sendMessage(String phone, String message);
- /**
- *
说明:使用自定义模板发送短信
- * sendMessage
- *
- * @param templateId 模板id
- * @param messages key为模板变量名称 value为模板变量值
- * @author :Wind
- */
-
SmsResponse sendMessage(String phone, String templateId, LinkedHashMap messages);
- /**
- * 说明:群发固定模板短信
- * massTexting
- *
- * @author :Wind
- */
-
SmsResponse massTexting(List phones, String message);
- /**
- * 说明:使用自定义模板群发短信
- * massTexting
- *
- * @author :Wind
- */
-
SmsResponse massTexting(List phones, String templateId, LinkedHashMap messages);
- /**
- * 说明:异步短信发送,固定消息模板短信
- * sendMessageAsync
- *
- * @param phone 要发送的号码
- * @param message 发送内容
- * @param callBack 回调
- * @author :Wind
- */
-
void sendMessageAsync(String phone, String message, CallBack callBack);
- /**
- *
说明:异步发送短信,不关注发送结果
- * sendMessageAsync
- *
- * @param phone 要发送的号码
- * @param message 发送内容
- * @author :Wind
- */
void sendMessageAsync(String phone, String message);
- /**
- *
说明:异步短信发送,使用自定义模板发送短信
- * sendMessage
- *
- * @param templateId 模板id
- * @param messages key为模板变量名称 value为模板变量值
- * @param callBack 回调
- * @author :Wind
- */
-
void sendMessageAsync(String phone, String templateId, LinkedHashMap messages, CallBack callBack);
- /**
- * 说明:异步短信发送,使用自定义模板发送短信,不关注发送结果
- * sendMessageAsync
- *
- * @param templateId 模板id
- * @param messages key为模板变量名称 value为模板变量值
- * @author :Wind
- */
void sendMessageAsync(String phone, String templateId, LinkedHashMap messages);
- /**
- * 说明:使用固定模板发送延时短信
- * delayedMessage
- *
- * @param phone 接收短信的手机号
- * @param message 要发送的短信
- * @param delayedTime 延迟时间
- * @author :Wind
- */
void delayedMessage(String phone, String message, Long delayedTime);
- /**
- *
说明:使用自定义模板发送定时短信 sendMessage
- * delayedMessage
- *
- * @param templateId 模板id
- * @param messages key为模板变量名称 value为模板变量值
- * @param phone 要发送的手机号
- * @param delayedTime 延迟的时间
- * @author :Wind
- */
void delayedMessage(String phone, String templateId, LinkedHashMap messages, Long delayedTime);
- /**
- * 说明:群发延迟短信
- * delayMassTexting
- *
- * @param phones 要群体发送的手机号码
- * @author :Wind
- */
void delayMassTexting(List phones, String message, Long delayedTime);
- /**
- * 说明:使用自定义模板发送群体延迟短信
- * delayMassTexting
- *
- * @param phones 要群体发送的手机号码
- * @param templateId 模板id
- * @param messages key为模板变量名称 value为模板变量值
- * @param delayedTime 延迟的时间
- * @author :Wind
- */
void delayMassTexting(List phones, String templateId, LinkedHashMap messages, Long delayedTime);
}
diff --git a/sms4j-core/src/main/java/org/dromara/sms4j/core/config/SupplierFactory.java b/sms4j-core/src/main/java/org/dromara/sms4j/core/config/SupplierFactory.java
index 564023d9..711ba560 100644
--- a/sms4j-core/src/main/java/org/dromara/sms4j/core/config/SupplierFactory.java
+++ b/sms4j-core/src/main/java/org/dromara/sms4j/core/config/SupplierFactory.java
@@ -19,7 +19,6 @@ import java.util.Objects;
/**
* SupplierFactory
* 差异化配置工厂
- *
* @author :Wind
* 2023/4/8 15:02
**/
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 54f521b8..fcd612e8 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
@@ -1,23 +1,18 @@
package org.dromara.sms4j.aliyun.service;
import com.alibaba.fastjson.JSON;
-import com.dtflys.forest.config.ForestConfiguration;
import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.aliyun.config.AlibabaConfig;
import org.dromara.sms4j.aliyun.utils.AliyunUtils;
-import org.dromara.sms4j.api.SmsBlend;
-import org.dromara.sms4j.api.callback.CallBack;
+import org.dromara.sms4j.api.AbstractSmsBlend;
import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.comm.annotation.Restricted;
import org.dromara.sms4j.comm.delayedTime.DelayedTime;
import org.dromara.sms4j.comm.exception.SmsBlendException;
-import org.dromara.sms4j.comm.factory.BeanFactory;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import java.util.TimerTask;
-import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import java.util.concurrent.atomic.AtomicReference;
@@ -29,25 +24,18 @@ import java.util.concurrent.atomic.AtomicReference;
**/
@Slf4j
-public class AlibabaSmsImpl implements SmsBlend {
+public class AlibabaSmsImpl extends AbstractSmsBlend {
private final AlibabaConfig alibabaSmsConfig;
- private final Executor pool;
-
- private final DelayedTime delayed;
-
- private final ForestConfiguration http = BeanFactory.getForestConfiguration();
-
/**
* AlibabaSmsImpl
*
构造器,用于构造短信实现模块
* @author :Wind
*/
public AlibabaSmsImpl(AlibabaConfig alibabaSmsConfig, Executor pool, DelayedTime delayedTime) {
+ super(pool, delayedTime);
this.alibabaSmsConfig = alibabaSmsConfig;
- this.pool = pool;
- this.delayed = delayedTime;
}
@Override
@@ -92,7 +80,7 @@ public class AlibabaSmsImpl implements SmsBlend {
throw new SmsBlendException(e.getMessage());
}
log.debug("requestUrl {}", requestUrl);
- http.post(requestUrl)
+ super.http.post(requestUrl)
.addHeader("Content-Type", "application/x-www-form-urlencoded")
.addBody(paramStr)
.onSuccess(((data, req, res) -> {
@@ -117,79 +105,6 @@ public class AlibabaSmsImpl implements SmsBlend {
return smsResponse;
}
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String message, CallBack callBack) {
- CompletableFuture smsResponseCompletableFuture = CompletableFuture.supplyAsync(() -> sendMessage(phone, message), pool);
- smsResponseCompletableFuture.thenAcceptAsync(callBack::callBack);
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String message) {
- pool.execute(() -> {
- sendMessage(phone, message);
- });
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String templateId, LinkedHashMap messages, CallBack callBack) {
- CompletableFuture smsResponseCompletableFuture = CompletableFuture.supplyAsync(() -> sendMessage(phone,templateId, messages), pool);
- smsResponseCompletableFuture.thenAcceptAsync(callBack::callBack);
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String templateId, LinkedHashMap messages) {
- pool.execute(() -> {
- sendMessage(phone, templateId, messages);
- });
- }
-
- @Override
- @Restricted
- public void delayedMessage(String phone, String message, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- sendMessage(phone, message);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayedMessage(String phone, String templateId, LinkedHashMap messages, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- sendMessage(phone, templateId, messages);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayMassTexting(List phones, String message, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- massTexting(phones, message);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayMassTexting(List phones, String templateId, LinkedHashMap messages, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- massTexting(phones, templateId, messages);
- }
- }, delayedTime);
- }
private String arrayToString(List list) {
StringBuilder sb = new StringBuilder();
diff --git a/sms4j-provider/src/main/java/org/dromara/sms4j/cloopen/service/CloopenSmsImpl.java b/sms4j-provider/src/main/java/org/dromara/sms4j/cloopen/service/CloopenSmsImpl.java
index 29c45ee7..f5f7bbb5 100644
--- a/sms4j-provider/src/main/java/org/dromara/sms4j/cloopen/service/CloopenSmsImpl.java
+++ b/sms4j-provider/src/main/java/org/dromara/sms4j/cloopen/service/CloopenSmsImpl.java
@@ -4,8 +4,7 @@ import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.IdUtil;
import com.dtflys.forest.Forest;
import lombok.extern.slf4j.Slf4j;
-import org.dromara.sms4j.api.SmsBlend;
-import org.dromara.sms4j.api.callback.CallBack;
+import org.dromara.sms4j.api.AbstractSmsBlend;
import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.cloopen.api.CloopenRestApi;
import org.dromara.sms4j.cloopen.config.CloopenConfig;
@@ -14,7 +13,6 @@ import org.dromara.sms4j.comm.annotation.Restricted;
import org.dromara.sms4j.comm.delayedTime.DelayedTime;
import java.util.*;
-import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
/**
@@ -24,20 +22,15 @@ import java.util.concurrent.Executor;
* @since 2023/4/10 22:10
*/
@Slf4j
-public class CloopenSmsImpl implements SmsBlend {
+public class CloopenSmsImpl extends AbstractSmsBlend {
private final CloopenRestApi restApi;
private final CloopenConfig config;
- private final Executor pool;
-
- private final DelayedTime delayed;
-
public CloopenSmsImpl(CloopenConfig config, Executor pool, DelayedTime delayed) {
+ super(pool,delayed);
this.config = config;
- this.pool = pool;
- this.delayed = delayed;
restApi = Forest.client(CloopenRestApi.class);
}
@@ -72,74 +65,4 @@ public class CloopenSmsImpl implements SmsBlend {
paramMap.put("datas", messages.keySet().stream().map(messages::get).toArray(String[]::new));
return helper.request(restApi::sendSms, paramMap);
}
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String message, CallBack callBack) {
- CompletableFuture smsResponseCompletableFuture = CompletableFuture.supplyAsync(() -> sendMessage(phone, message), pool);
- smsResponseCompletableFuture.thenAcceptAsync(callBack::callBack);
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String message) {
- pool.execute(() -> sendMessage(phone, message));
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String templateId, LinkedHashMap messages, CallBack callBack) {
- CompletableFuture smsResponseCompletableFuture = CompletableFuture.supplyAsync(() -> sendMessage(phone,templateId, messages), pool);
- smsResponseCompletableFuture.thenAcceptAsync(callBack::callBack);
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String templateId, LinkedHashMap messages) {
- pool.execute(() -> sendMessage(phone, templateId, messages));
- }
-
- @Override
- @Restricted
- public void delayedMessage(String phone, String message, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- sendMessage(phone, message);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayedMessage(String phone, String templateId, LinkedHashMap messages, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- sendMessage(phone, templateId, messages);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayMassTexting(List phones, String message, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- massTexting(phones, message);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayMassTexting(List phones, String templateId, LinkedHashMap messages, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- massTexting(phones, templateId, messages);
- }
- }, delayedTime);
- }
}
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 3821ff15..76c0a629 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
@@ -1,48 +1,36 @@
package org.dromara.sms4j.ctyun.service;
import com.alibaba.fastjson.JSON;
-import com.dtflys.forest.config.ForestConfiguration;
import lombok.extern.slf4j.Slf4j;
-import org.dromara.sms4j.api.SmsBlend;
-import org.dromara.sms4j.api.callback.CallBack;
+import org.dromara.sms4j.api.AbstractSmsBlend;
import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.comm.annotation.Restricted;
import org.dromara.sms4j.comm.delayedTime.DelayedTime;
import org.dromara.sms4j.comm.exception.SmsBlendException;
-import org.dromara.sms4j.comm.factory.BeanFactory;
import org.dromara.sms4j.ctyun.config.CtyunConfig;
import org.dromara.sms4j.ctyun.utils.CtyunUtils;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import java.util.TimerTask;
-import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import java.util.concurrent.atomic.AtomicReference;
/**
* 类名: CtyunSmsImpl
*
说明: 天翼云短信实现
- *
* @author :bleachhtred
* 2023/5/12 15:06
**/
@Slf4j
-public class CtyunSmsImpl implements SmsBlend {
+public class CtyunSmsImpl extends AbstractSmsBlend {
private final CtyunConfig ctyunConfig;
- private final Executor pool;
-
- private final DelayedTime delayed;
-
- private final ForestConfiguration http = BeanFactory.getForestConfiguration();
public CtyunSmsImpl(CtyunConfig ctyunConfig, Executor pool, DelayedTime delayedTime) {
+ super(pool,delayedTime);
this.ctyunConfig = ctyunConfig;
- this.pool = pool;
- this.delayed = delayedTime;
}
@Override
@@ -110,76 +98,6 @@ public class CtyunSmsImpl implements SmsBlend {
return smsResponse;
}
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String message, CallBack callBack) {
- CompletableFuture smsResponseCompletableFuture = CompletableFuture.supplyAsync(() -> sendMessage(phone, message), pool);
- smsResponseCompletableFuture.thenAcceptAsync(callBack::callBack);
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String message) {
- pool.execute(() -> sendMessage(phone, message));
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String templateId, LinkedHashMap messages, CallBack callBack) {
- CompletableFuture smsResponseCompletableFuture = CompletableFuture.supplyAsync(() -> sendMessage(phone,templateId, messages), pool);
- smsResponseCompletableFuture.thenAcceptAsync(callBack::callBack);
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String templateId, LinkedHashMap messages) {
- pool.execute(() -> sendMessage(phone, templateId, messages));
- }
-
- @Override
- @Restricted
- public void delayedMessage(String phone, String message, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- sendMessage(phone, message);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayedMessage(String phone, String templateId, LinkedHashMap messages, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- sendMessage(phone, templateId, messages);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayMassTexting(List phones, String message, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- massTexting(phones, message);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayMassTexting(List phones, String templateId, LinkedHashMap messages, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- massTexting(phones, templateId, messages);
- }
- }, delayedTime);
- }
-
private String arrayToString(List list) {
StringBuilder sb = new StringBuilder();
for (String s : list) {
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 4c96c7e0..9e8fd13f 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
@@ -1,20 +1,16 @@
package org.dromara.sms4j.emay.service;
import com.alibaba.fastjson.JSONObject;
-import com.dtflys.forest.config.ForestConfiguration;
+import org.dromara.sms4j.api.AbstractSmsBlend;
import org.dromara.sms4j.emay.config.EmayConfig;
import org.dromara.sms4j.emay.util.EmayBuilder;
import lombok.extern.slf4j.Slf4j;
-import org.dromara.sms4j.api.SmsBlend;
-import org.dromara.sms4j.api.callback.CallBack;
import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.comm.annotation.Restricted;
import org.dromara.sms4j.comm.delayedTime.DelayedTime;
import org.dromara.sms4j.comm.exception.SmsBlendException;
-import org.dromara.sms4j.comm.factory.BeanFactory;
import java.util.*;
-import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import java.util.concurrent.atomic.AtomicReference;
@@ -25,21 +21,14 @@ import static org.dromara.sms4j.comm.utils.SmsUtil.listToString;
* @date 2023-04-11 12:00
*/
@Slf4j
-public class EmaySmsImpl implements SmsBlend {
+public class EmaySmsImpl extends AbstractSmsBlend {
public EmaySmsImpl(EmayConfig config, Executor pool, DelayedTime delayed) {
+ super(pool,delayed);
this.config = config;
- this.pool = pool;
- this.delayed = delayed;
}
private EmayConfig config;
- private Executor pool;
-
- private DelayedTime delayed;
-
- private final ForestConfiguration http = BeanFactory.getForestConfiguration();
-
@Override
@Restricted
public SmsResponse sendMessage(String phone, String message) {
@@ -87,76 +76,6 @@ public class EmaySmsImpl implements SmsBlend {
return sendMessage(listToString(phones), EmayBuilder.listToString(list));
}
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String message, CallBack callBack) {
- CompletableFuture smsResponseCompletableFuture = CompletableFuture.supplyAsync(() -> sendMessage(phone, message), pool);
- smsResponseCompletableFuture.thenAcceptAsync(callBack::callBack);
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String message) {
- pool.execute(() -> sendMessage(phone, message));
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String templateId, LinkedHashMap messages, CallBack callBack) {
- CompletableFuture smsResponseCompletableFuture = CompletableFuture.supplyAsync(() -> sendMessage(phone, templateId, messages), pool);
- smsResponseCompletableFuture.thenAcceptAsync(callBack::callBack);
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String templateId, LinkedHashMap messages) {
- pool.execute(() -> sendMessage(phone, templateId, messages));
- }
-
- @Override
- @Restricted
- public void delayedMessage(String phone, String message, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- sendMessage(phone, message);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayedMessage(String phone, String templateId, LinkedHashMap messages, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- sendMessage(phone, templateId, messages);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayMassTexting(List phones, String message, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- massTexting(phones, message);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayMassTexting(List phones, String templateId, LinkedHashMap messages, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- massTexting(phones, templateId, messages);
- }
- }, delayedTime);
- }
-
private SmsResponse getSendResponse(Map body, String requestUrl) {
AtomicReference smsResponse = new AtomicReference<>();
http.post(requestUrl)
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 971f98c9..10d8acc7 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
@@ -1,42 +1,30 @@
package org.dromara.sms4j.huawei.service;
-import com.dtflys.forest.config.ForestConfiguration;
-
-import org.dromara.sms4j.api.callback.CallBack;
import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.comm.annotation.Restricted;
import org.dromara.sms4j.comm.constant.Constant;
import org.dromara.sms4j.comm.delayedTime.DelayedTime;
-import org.dromara.sms4j.comm.factory.BeanFactory;
import org.dromara.sms4j.huawei.config.HuaweiConfig;
import org.dromara.sms4j.huawei.entity.HuaweiResponse;
import org.dromara.sms4j.huawei.utils.HuaweiBuilder;
import lombok.extern.slf4j.Slf4j;
-import org.dromara.sms4j.api.SmsBlend;
+import org.dromara.sms4j.api.AbstractSmsBlend;
import java.util.*;
-import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import static org.dromara.sms4j.huawei.utils.HuaweiBuilder.listToString;
@Slf4j
-public class HuaweiSmsImpl implements SmsBlend {
+public class HuaweiSmsImpl extends AbstractSmsBlend {
public HuaweiSmsImpl(HuaweiConfig config, Executor pool, DelayedTime delayed) {
+ super(pool,delayed);
this.config = config;
- this.pool = pool;
- this.delayed = delayed;
}
private HuaweiConfig config;
- private Executor pool;
-
- private DelayedTime delayed;
-
- private final ForestConfiguration http = BeanFactory.getForestConfiguration();
-
@Override
@Restricted
public SmsResponse sendMessage(String phone, String message) {
@@ -91,76 +79,4 @@ public class HuaweiSmsImpl implements SmsBlend {
public SmsResponse massTexting(List phones, String templateId, LinkedHashMap messages) {
return sendMessage(listToString(phones), templateId, messages);
}
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String message, CallBack callBack) {
- CompletableFuture smsResponseCompletableFuture = CompletableFuture.supplyAsync(() -> sendMessage(phone, message), pool);
- smsResponseCompletableFuture.thenAcceptAsync(callBack::callBack);
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String message) {
- pool.execute(() -> sendMessage(phone, message));
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String templateId, LinkedHashMap messages, CallBack callBack) {
- CompletableFuture smsResponseCompletableFuture = CompletableFuture.supplyAsync(() -> sendMessage(phone, templateId, messages), pool);
- smsResponseCompletableFuture.thenAcceptAsync(callBack::callBack);
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String templateId, LinkedHashMap messages) {
- pool.execute(() -> {
- sendMessage(phone, templateId, messages);
- });
- }
-
- @Override
- @Restricted
- public void delayedMessage(String phone, String message, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- sendMessage(phone, message);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayedMessage(String phone, String templateId, LinkedHashMap messages, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- sendMessage(phone, templateId, messages);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayMassTexting(List phones, String message, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- massTexting(phones, message);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayMassTexting(List phones, String templateId, LinkedHashMap messages, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- massTexting(phones, templateId, messages);
- }
- }, delayedTime);
- }
}
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 5a7c94e0..54f0d846 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
@@ -5,8 +5,7 @@ import com.jdcloud.sdk.service.sms.client.SmsClient;
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.SmsBlend;
-import org.dromara.sms4j.api.callback.CallBack;
+import org.dromara.sms4j.api.AbstractSmsBlend;
import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.comm.annotation.Restricted;
import org.dromara.sms4j.comm.delayedTime.DelayedTime;
@@ -16,8 +15,6 @@ import org.dromara.sms4j.jdcloud.config.JdCloudConfig;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
-import java.util.TimerTask;
-import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import java.util.stream.Collectors;
@@ -28,21 +25,16 @@ import java.util.stream.Collectors;
* @since 2023/4/10 20:01
*/
@Slf4j
-public class JdCloudSmsImpl implements SmsBlend {
+public class JdCloudSmsImpl extends AbstractSmsBlend {
private final SmsClient client;
private final JdCloudConfig config;
- private final Executor pool;
-
- private final DelayedTime delayed;
-
public JdCloudSmsImpl(SmsClient client, JdCloudConfig config, Executor pool, DelayedTime delayed) {
+ super(pool,delayed);
this.client = client;
this.config = config;
- this.pool = pool;
- this.delayed = delayed;
}
@Override
@@ -85,76 +77,6 @@ public class JdCloudSmsImpl implements SmsBlend {
}
}
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String message, CallBack callBack) {
- CompletableFuture smsResponseCompletableFuture = CompletableFuture.supplyAsync(() -> sendMessage(phone, message), pool);
- smsResponseCompletableFuture.thenAcceptAsync(callBack::callBack);
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String message) {
- pool.execute(() -> sendMessage(phone, message));
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String templateId, LinkedHashMap messages, CallBack callBack) {
- CompletableFuture smsResponseCompletableFuture = CompletableFuture.supplyAsync(() -> sendMessage(phone, templateId, messages), pool);
- smsResponseCompletableFuture.thenAcceptAsync(callBack::callBack);
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String templateId, LinkedHashMap messages) {
- pool.execute(() -> sendMessage(phone, templateId, messages));
- }
-
- @Override
- @Restricted
- public void delayedMessage(String phone, String message, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- sendMessage(phone, message);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayedMessage(String phone, String templateId, LinkedHashMap messages, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- sendMessage(phone, templateId, messages);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayMassTexting(List phones, String message, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- massTexting(phones, message);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayMassTexting(List phones, String templateId, LinkedHashMap messages, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- massTexting(phones, templateId, messages);
- }
- }, delayedTime);
- }
-
/**
* 获取短信返回信息
*
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 3caeeafd..617d832f 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
@@ -2,38 +2,27 @@ package org.dromara.sms4j.tencent.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
-import com.dtflys.forest.config.ForestConfiguration;
import lombok.extern.slf4j.Slf4j;
-import org.dromara.sms4j.api.SmsBlend;
-import org.dromara.sms4j.api.callback.CallBack;
+import org.dromara.sms4j.api.AbstractSmsBlend;
import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.comm.annotation.Restricted;
import org.dromara.sms4j.comm.constant.Constant;
import org.dromara.sms4j.comm.delayedTime.DelayedTime;
import org.dromara.sms4j.comm.exception.SmsBlendException;
-import org.dromara.sms4j.comm.factory.BeanFactory;
import org.dromara.sms4j.tencent.config.TencentConfig;
import org.dromara.sms4j.tencent.utils.TencentUtils;
import java.util.*;
-import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
@Slf4j
-public class TencentSmsImpl implements SmsBlend {
+public class TencentSmsImpl extends AbstractSmsBlend {
private TencentConfig tencentSmsConfig;
- private Executor pool;
-
- private DelayedTime delayed;
-
- private final ForestConfiguration http = BeanFactory.getForestConfiguration();
-
public TencentSmsImpl(TencentConfig tencentSmsConfig, Executor pool, DelayedTime delayed) {
+ super(pool,delayed);
this.tencentSmsConfig = tencentSmsConfig;
- this.pool = pool;
- this.delayed = delayed;
}
@Override
@@ -117,80 +106,6 @@ public class TencentSmsImpl implements SmsBlend {
return smsResponse;
}
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String message, CallBack callBack) {
- CompletableFuture smsResponseCompletableFuture = CompletableFuture.supplyAsync(() -> sendMessage(phone, message), pool);
- smsResponseCompletableFuture.thenAcceptAsync(callBack::callBack);
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String message) {
- pool.execute(() -> {
- sendMessage(phone, message);
- });
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String templateId, LinkedHashMap messages, CallBack callBack) {
- CompletableFuture smsResponseCompletableFuture = CompletableFuture.supplyAsync(() -> sendMessage(phone, templateId, messages), pool);
- smsResponseCompletableFuture.thenAcceptAsync(callBack::callBack);
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String templateId, LinkedHashMap messages) {
- pool.execute(() -> {
- sendMessage(phone, templateId, messages);
- });
- }
-
- @Override
- @Restricted
- public void delayedMessage(String phone, String message, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- sendMessage(phone, message);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayedMessage(String phone, String templateId, LinkedHashMap messages, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- sendMessage(phone, templateId, messages);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayMassTexting(List phones, String message, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- massTexting(phones, message);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayMassTexting(List phones, String templateId, LinkedHashMap messages, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- massTexting(phones, templateId, messages);
- }
- }, delayedTime);
- }
-
private String[] arrayToString(List list) {
String[] strs = new String[list.size()];
List toStr = new ArrayList<>();
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 b17f4b2e..3c31a97d 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
@@ -1,7 +1,6 @@
package org.dromara.sms4j.unisms.service;
-import org.dromara.sms4j.api.SmsBlend;
-import org.dromara.sms4j.api.callback.CallBack;
+import org.dromara.sms4j.api.AbstractSmsBlend;
import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.comm.annotation.Restricted;
import org.dromara.sms4j.comm.delayedTime.DelayedTime;
@@ -16,11 +15,7 @@ import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import java.util.TimerTask;
-import java.util.concurrent.Callable;
-import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
-import java.util.function.Supplier;
/**
@@ -31,16 +26,13 @@ import java.util.function.Supplier;
**/
@Slf4j
-public class UniSmsImpl implements SmsBlend {
+public class UniSmsImpl extends AbstractSmsBlend {
private UniConfig config;
- private Executor pool;
- private DelayedTime delayed;
public UniSmsImpl(UniConfig config, Executor pool, DelayedTime delayed) {
+ super(pool,delayed);
this.config = config;
- this.pool = pool;
- this.delayed = delayed;
}
@Override
@@ -90,76 +82,6 @@ public class UniSmsImpl implements SmsBlend {
return getSmsResponse(data);
}
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String message, CallBack callBack) {
- CompletableFuture smsResponseCompletableFuture = CompletableFuture.supplyAsync(() -> sendMessage(phone, message), pool);
- smsResponseCompletableFuture.thenAcceptAsync(callBack::callBack);
- }
-
- @Override
- public void sendMessageAsync(String phone, String message) {
- pool.execute(()->{
- sendMessage(phone, message);
- });
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String templateId, LinkedHashMap messages, CallBack callBack) {
- CompletableFuture smsResponseCompletableFuture = CompletableFuture.supplyAsync(() -> sendMessage(phone, templateId, messages), pool);
- smsResponseCompletableFuture.thenAcceptAsync(callBack::callBack);
- }
-
- @Override
- public void sendMessageAsync(String phone, String templateId, LinkedHashMap messages) {
- pool.execute(()->{
- sendMessage(phone,templateId,messages);
- });
- }
-
- @Override
- @Restricted
- public void delayedMessage(String phone, String message, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- sendMessage(phone,message);
- }
- },delayedTime);
- }
-
- @Override
- @Restricted
- public void delayedMessage(String phone, String templateId, LinkedHashMap messages, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- sendMessage(phone,templateId,messages);
- }
- },delayedTime);
- }
-
- @Override
- public void delayMassTexting(List phones, String message, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- massTexting(phones,message);
- }
- },delayedTime);
- }
-
- @Override
- public void delayMassTexting(List phones, String templateId, LinkedHashMap messages, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- massTexting(phones,templateId,messages);
- }
- },delayedTime);
- }
-
private SmsResponse getSmsResponse( Map data) {
SmsResponse smsResponse = new SmsResponse();
try {
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 e75b775c..97f98c13 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
@@ -1,40 +1,29 @@
package org.dromara.sms4j.yunpian.service;
import com.alibaba.fastjson.JSONObject;
-import com.dtflys.forest.config.ForestConfiguration;
-import org.dromara.sms4j.api.SmsBlend;
-import org.dromara.sms4j.api.callback.CallBack;
+import org.dromara.sms4j.api.AbstractSmsBlend;
import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.comm.annotation.Restricted;
import org.dromara.sms4j.comm.constant.Constant;
import org.dromara.sms4j.comm.delayedTime.DelayedTime;
import org.dromara.sms4j.comm.exception.SmsBlendException;
-import org.dromara.sms4j.comm.factory.BeanFactory;
import org.dromara.sms4j.yunpian.config.YunpianConfig;
import java.util.*;
-import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
import java.util.concurrent.atomic.AtomicReference;
import static org.dromara.sms4j.comm.utils.SmsUtil.listToString;
-public class YunPianSmsImpl implements SmsBlend {
+public class YunPianSmsImpl extends AbstractSmsBlend {
public YunPianSmsImpl(Executor pool, DelayedTime delayed, YunpianConfig config) {
- this.pool = pool;
- this.delayed = delayed;
+ super(pool,delayed);
this.config = config;
}
- private Executor pool;
-
- private DelayedTime delayed;
-
private YunpianConfig config;
- private final ForestConfiguration http = BeanFactory.getForestConfiguration();
-
private static SmsResponse getSmsResponse(JSONObject execute) {
SmsResponse smsResponse = new SmsResponse();
smsResponse.setCode(execute.getString("code"));
@@ -79,78 +68,6 @@ public class YunPianSmsImpl implements SmsBlend {
return sendMessage(listToString(phones), templateId, messages);
}
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String message, CallBack callBack) {
- CompletableFuture smsResponseCompletableFuture = CompletableFuture.supplyAsync(() -> sendMessage(phone, message), pool);
- smsResponseCompletableFuture.thenAcceptAsync(callBack::callBack);
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String message) {
- pool.execute(() -> sendMessage(phone, message));
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String templateId, LinkedHashMap messages, CallBack callBack) {
- CompletableFuture smsResponseCompletableFuture = CompletableFuture.supplyAsync(() -> sendMessage(phone, templateId, messages), pool);
- smsResponseCompletableFuture.thenAcceptAsync(callBack::callBack);
- }
-
- @Override
- @Restricted
- public void sendMessageAsync(String phone, String templateId, LinkedHashMap messages) {
- pool.execute(() -> {
- sendMessage(phone, templateId, messages);
- });
- }
-
- @Override
- @Restricted
- public void delayedMessage(String phone, String message, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- sendMessage(phone, message);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayedMessage(String phone, String templateId, LinkedHashMap messages, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- sendMessage(phone, templateId, messages);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayMassTexting(List phones, String message, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- massTexting(phones, message);
- }
- }, delayedTime);
- }
-
- @Override
- @Restricted
- public void delayMassTexting(List phones, String templateId, LinkedHashMap messages, Long delayedTime) {
- this.delayed.schedule(new TimerTask() {
- @Override
- public void run() {
- massTexting(phones, templateId, messages);
- }
- }, delayedTime);
- }
-
private String formattingMap(Map messages) {
StringBuilder str = new StringBuilder();
for (Map.Entry entry : messages.entrySet()) {