diff --git a/config/nacos/ruoyi-resource.yml b/config/nacos/ruoyi-resource.yml index de082105..9c539725 100644 --- a/config/nacos/ruoyi-resource.yml +++ b/config/nacos/ruoyi-resource.yml @@ -66,47 +66,21 @@ sms: account-max: 30 # 以下配置来自于 org.dromara.sms4j.provider.config.BaseConfig类中 blends: - # 自定义的标识,也就是configId这里可以是任意值(最好不要是中文) - tx1: + # 唯一ID 用于发送短信寻找具体配置 随便定义别用中文即可 + # 可以同时存在两个相同厂商 例如: ali1 ali2 两个不同的阿里短信账号 也可用于区分租户 + config1: # 框架定义的厂商名称标识,标定此配置是哪个厂商,详细请看厂商标识介绍部分 - supplier: tencent + supplier: alibaba # 有些称为accessKey有些称之为apiKey,也有称为sdkKey或者appId。 access-key-id: 您的accessKey # 称为accessSecret有些称之为apiSecret access-key-secret: 您的accessKeySecret - # 您的短信签名 signature: 您的短信签名 - #模板ID 如果不需要简化的sendMessage方法可以不配置,如果使用sendMessage的快速发送需此配置 - template-id: xxxxxxxx - #您的sdkAppId sdk-app-id: 您的sdkAppId - # 随机权重,负载均衡的权重值依赖于此,默认为1,如不需要负载均衡可不进行配置 - weight: 1 - #短信自动重试间隔时间 默认五秒 - retry-interval: 3 - # 短信重试次数,默认0次不重试,如果你需要短信重试则根据自己的需求修改值即可 - max-retries: 1 - # 当前厂商的发送数量上限,默认不设置上限 - maximum: 10000 - # 自定义的标识,也就是configId这里可以是任意值(最好不要是中文) - tx2: - #厂商标识,标定此配置是哪个厂商,详细请看厂商标识介绍部分 + config2: + # 厂商标识,标定此配置是哪个厂商,详细请看厂商标识介绍部分 supplier: tencent - #您的accessKey access-key-id: 您的accessKey - #您的accessKeySecret access-key-secret: 您的accessKeySecret - #您的短信签名 signature: 您的短信签名 - #模板ID 非必须配置,如果使用sendMessage的快速发送需此配置 - template-id: xxxxxxxx - #您的sdkAppId sdk-app-id: 您的sdkAppId - # 随机权重,负载均衡的权重值依赖于此,默认为1,如不需要负载均衡可不进行配置 - weight: 1 - #短信自动重试间隔时间 默认五秒 - retry-interval: 3 - # 短信重试次数,默认0次不重试,如果你需要短信重试则根据自己的需求修改值即可 - max-retries: 1 - # 当前厂商的发送数量上限,默认不设置上限 - maximum: 10000 diff --git a/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/RemoteSmsService.java b/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/RemoteSmsService.java index 0a59d070..1a34eba1 100644 --- a/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/RemoteSmsService.java +++ b/ruoyi-api/ruoyi-api-resource/src/main/java/org/dromara/resource/api/RemoteSmsService.java @@ -47,7 +47,7 @@ public interface RemoteSmsService { * @param message 短信内容 * @return 封装了短信发送结果的 RemoteSms 对象 */ - RemoteSms massTexting(List phones, String message); + RemoteSms messageTexting(List phones, String message); /** * 同步方法:使用自定义模板群发短信 @@ -57,7 +57,7 @@ public interface RemoteSmsService { * @param messages 短信模板参数,使用 LinkedHashMap 以保持参数顺序 * @return 封装了短信发送结果的 RemoteSms 对象 */ - RemoteSms massTexting(List phones, String templateId, LinkedHashMap messages); + RemoteSms messageTexting(List phones, String templateId, LinkedHashMap messages); /** * 异步方法:发送固定消息模板短信 @@ -83,7 +83,7 @@ public interface RemoteSmsService { * @param message 短信内容 * @param delayedTime 延迟发送时间(毫秒) */ - void delayedMessage(String phone, String message, Long delayedTime); + void delayMessage(String phone, String message, Long delayedTime); /** * 延迟发送:使用自定义模板发送定时短信 @@ -93,7 +93,7 @@ public interface RemoteSmsService { * @param messages 短信模板参数,使用 LinkedHashMap 以保持参数顺序 * @param delayedTime 延迟发送时间(毫秒) */ - void delayedMessage(String phone, String templateId, LinkedHashMap messages, Long delayedTime); + void delayMessage(String phone, String templateId, LinkedHashMap messages, Long delayedTime); /** * 延迟群发:群发延迟短信 @@ -102,7 +102,7 @@ public interface RemoteSmsService { * @param message 短信内容 * @param delayedTime 延迟发送时间(毫秒) */ - void delayMassTexting(List phones, String message, Long delayedTime); + void delayMessageTexting(List phones, String message, Long delayedTime); /** * 延迟群发:使用自定义模板发送群体延迟短信 @@ -112,34 +112,34 @@ public interface RemoteSmsService { * @param messages 短信模板参数,使用 LinkedHashMap 以保持参数顺序 * @param delayedTime 延迟发送时间(毫秒) */ - void delayMassTexting(List phones, String templateId, LinkedHashMap messages, Long delayedTime); + void delayMessageTexting(List phones, String templateId, LinkedHashMap messages, Long delayedTime); /** * 加入黑名单 * * @param phone 手机号 */ - void joinInBlacklist(String phone); + void addBlacklist(String phone); /** * 加入黑名单 * * @param phones 手机号列表 */ - void joinInBlacklist(List phones); + void addBlacklist(List phones); /** * 移除黑名单 * * @param phone 手机号 */ - void removeFromBlacklist(String phone); + void removeBlacklist(String phone); /** * 移除黑名单 * * @param phones 手机号 */ - void removeFromBlacklist(List phones); + void removeBlacklist(List phones); } diff --git a/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/controller/SmsController.java b/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/controller/SmsController.java index 256c4383..ff36ebe4 100644 --- a/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/controller/SmsController.java +++ b/ruoyi-example/ruoyi-demo/src/main/java/org/dromara/demo/controller/SmsController.java @@ -34,7 +34,7 @@ public class SmsController { public R sendAliyun(String phones, String templateId) { LinkedHashMap map = new LinkedHashMap<>(1); map.put("code", "1234"); - SmsBlend smsBlend = SmsFactory.getSmsBlend("tx1"); + SmsBlend smsBlend = SmsFactory.getSmsBlend("config1"); SmsResponse smsResponse = smsBlend.sendMessage(phones, templateId, map); return R.ok(smsResponse); } @@ -50,19 +50,19 @@ public class SmsController { LinkedHashMap map = new LinkedHashMap<>(1); // map.put("2", "测试测试"); map.put("1", "1234"); - SmsBlend smsBlend = SmsFactory.getSmsBlend("tx1"); + SmsBlend smsBlend = SmsFactory.getSmsBlend("config2"); SmsResponse smsResponse = smsBlend.sendMessage(phones, templateId, map); return R.ok(smsResponse); } /** - * 加入黑名单 + * 添加黑名单 * * @param phone 手机号 */ - @GetMapping("/joinInBlacklist") - public R joinInBlacklist(String phone){ - SmsBlend smsBlend = SmsFactory.getSmsBlend("tx1"); + @GetMapping("/addBlacklist") + public R addBlacklist(String phone){ + SmsBlend smsBlend = SmsFactory.getSmsBlend("config1"); smsBlend.joinInBlacklist(phone); return R.ok(); } @@ -72,9 +72,9 @@ public class SmsController { * * @param phone 手机号 */ - @GetMapping("/removeFromBlacklist") - public R removeFromBlacklist(String phone){ - SmsBlend smsBlend = SmsFactory.getSmsBlend("tx1"); + @GetMapping("/removeBlacklist") + public R removeBlacklist(String phone){ + SmsBlend smsBlend = SmsFactory.getSmsBlend("config1"); smsBlend.removeFromBlacklist(phone); return R.ok(); } diff --git a/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/dubbo/RemoteSmsServiceImpl.java b/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/dubbo/RemoteSmsServiceImpl.java index 74e40c77..9f49421f 100644 --- a/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/dubbo/RemoteSmsServiceImpl.java +++ b/ruoyi-modules/ruoyi-resource/src/main/java/org/dromara/resource/dubbo/RemoteSmsServiceImpl.java @@ -30,7 +30,8 @@ public class RemoteSmsServiceImpl implements RemoteSmsService { * @return SmsBlend 实例,代表指定供应商类型 */ private SmsBlend getSmsBlend() { - return SmsFactory.getSmsBlend("tx1"); + // 可自定义厂商配置获取规则 例如根据租户获取 或 负载均衡多个厂商等 + return SmsFactory.getSmsBlend("config1"); } /** @@ -98,7 +99,7 @@ public class RemoteSmsServiceImpl implements RemoteSmsService { * @return 封装了短信发送结果的 RemoteSms 对象 */ @Override - public RemoteSms massTexting(List phones, String message) { + public RemoteSms messageTexting(List phones, String message) { // 调用 getSmsBlend 方法获取对应短信供应商的 SmsBlend 实例 SmsResponse smsResponse = getSmsBlend().massTexting(phones, message); return getRemoteSms(smsResponse); @@ -113,7 +114,7 @@ public class RemoteSmsServiceImpl implements RemoteSmsService { * @return 封装了短信发送结果的 RemoteSms 对象 */ @Override - public RemoteSms massTexting(List phones, String templateId, LinkedHashMap messages) { + public RemoteSms messageTexting(List phones, String templateId, LinkedHashMap messages) { // 调用 getSmsBlend 方法获取对应短信供应商的 SmsBlend 实例 SmsResponse smsResponse = getSmsBlend().massTexting(phones, templateId, messages); return getRemoteSms(smsResponse); @@ -150,7 +151,7 @@ public class RemoteSmsServiceImpl implements RemoteSmsService { * @param delayedTime 延迟发送时间(毫秒) */ @Override - public void delayedMessage(String phone, String message, Long delayedTime) { + public void delayMessage(String phone, String message, Long delayedTime) { getSmsBlend().delayedMessage(phone, message, delayedTime); } @@ -163,7 +164,7 @@ public class RemoteSmsServiceImpl implements RemoteSmsService { * @param delayedTime 延迟发送时间(毫秒) */ @Override - public void delayedMessage(String phone, String templateId, LinkedHashMap messages, Long delayedTime) { + public void delayMessage(String phone, String templateId, LinkedHashMap messages, Long delayedTime) { getSmsBlend().delayedMessage(phone, templateId, messages, delayedTime); } @@ -175,7 +176,7 @@ public class RemoteSmsServiceImpl implements RemoteSmsService { * @param delayedTime 延迟发送时间(毫秒) */ @Override - public void delayMassTexting(List phones, String message, Long delayedTime) { + public void delayMessageTexting(List phones, String message, Long delayedTime) { getSmsBlend().delayMassTexting(phones, message, delayedTime); } @@ -188,7 +189,7 @@ public class RemoteSmsServiceImpl implements RemoteSmsService { * @param delayedTime 延迟发送时间(毫秒) */ @Override - public void delayMassTexting(List phones, String templateId, LinkedHashMap messages, Long delayedTime) { + public void delayMessageTexting(List phones, String templateId, LinkedHashMap messages, Long delayedTime) { getSmsBlend().delayMassTexting(phones, templateId, messages, delayedTime); } @@ -198,7 +199,7 @@ public class RemoteSmsServiceImpl implements RemoteSmsService { * @param phone 手机号 */ @Override - public void joinInBlacklist(String phone) { + public void addBlacklist(String phone) { getSmsBlend().joinInBlacklist(phone); } @@ -208,7 +209,7 @@ public class RemoteSmsServiceImpl implements RemoteSmsService { * @param phones 手机号列表 */ @Override - public void joinInBlacklist(List phones) { + public void addBlacklist(List phones) { getSmsBlend().batchJoinBlacklist(phones); } @@ -218,7 +219,7 @@ public class RemoteSmsServiceImpl implements RemoteSmsService { * @param phone 手机号 */ @Override - public void removeFromBlacklist(String phone) { + public void removeBlacklist(String phone) { getSmsBlend().removeFromBlacklist(phone); } @@ -228,7 +229,7 @@ public class RemoteSmsServiceImpl implements RemoteSmsService { * @param phones 手机号 */ @Override - public void removeFromBlacklist(List phones) { + public void removeBlacklist(List phones) { getSmsBlend().batchRemovalFromBlacklist(phones); }