From 39dc0f94d6a172df226d1f22b0e39b296c38cf4e Mon Sep 17 00:00:00 2001 From: heng <835217326@qq.com> Date: Mon, 18 Sep 2023 21:44:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=8D=E5=BC=95=E5=85=A5?= =?UTF-8?q?=E4=BA=AC=E4=B8=9C=E4=BE=9D=E8=B5=96=E5=8A=A0=E8=BD=BD=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/dromara/sms4j/api/SmsBlend.java | 109 ++++++++++++++++++ .../dromara/sms4j/comm/utils/SmsUtils.java | 9 ++ .../sms4j/javase/config/SEInitializer.java | 4 +- .../starter/config/SmsBlendsInitializer.java | 11 +- .../main/resources/META-INF/spring.factories | 3 +- ...ot.autoconfigure.AutoConfiguration.imports | 3 +- 6 files changed, 132 insertions(+), 7 deletions(-) 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 287de4b5..fd341541 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 @@ -14,32 +14,141 @@ import java.util.List; **/ public interface SmsBlend { + /** + * 获取短信实例唯一标识 + * @return + */ String getConfigId(); + /** + * 获取供应商标识 + * @return + */ String getSupplier(); + /** + *

说明:发送固定消息模板短信 + *

此方法将使用配置文件中预设的短信模板进行短信发送 + *

该方法指定的模板变量只能存在一个(配置文件中) + *

如使用的是腾讯的短信,参数字符串中可以同时存在多个参数,使用 & 分隔例如:您的验证码为{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-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 7b3c83c1..b4f3de24 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 @@ -163,4 +163,13 @@ public class SmsUtils { } } + public static boolean isClassExists(String className) { + try { + Class.forName(className); + return true; + } catch (ClassNotFoundException e) { + return false; + } + } + } \ No newline at end of file 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 7f2abb52..ba1b3bb7 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 @@ -175,12 +175,14 @@ public class SEInitializer { ProviderFactoryHolder.registerFactory(CtyunFactory.instance()); ProviderFactoryHolder.registerFactory(EmayFactory.instance()); ProviderFactoryHolder.registerFactory(HuaweiFactory.instance()); - ProviderFactoryHolder.registerFactory(JdCloudFactory.instance()); ProviderFactoryHolder.registerFactory(NeteaseFactory.instance()); ProviderFactoryHolder.registerFactory(TencentFactory.instance()); ProviderFactoryHolder.registerFactory(UniFactory.instance()); ProviderFactoryHolder.registerFactory(YunPianFactory.instance()); ProviderFactoryHolder.registerFactory(ZhutongFactory.instance()); + if(SmsUtils.isClassExists("com.jdcloud.sdk.auth.CredentialsProvider")) { + ProviderFactoryHolder.registerFactory(JdCloudFactory.instance()); + } } /** diff --git a/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SmsBlendsInitializer.java b/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SmsBlendsInitializer.java index 6e93d41b..19602d0b 100644 --- a/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SmsBlendsInitializer.java +++ b/sms4j-spring-boot-starter/src/main/java/org/dromara/sms4j/starter/config/SmsBlendsInitializer.java @@ -88,12 +88,15 @@ public class SmsBlendsInitializer implements ApplicationListener