!150 移除多余导入,部分字段设置为final,移除多余泛型,注释调整不使用尾行注释

Merge pull request !150 from handy/dev-3.0.x
This commit is contained in:
风如歌 2024-03-13 01:58:04 +00:00 committed by Gitee
commit 8b788fa127
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
34 changed files with 92 additions and 81 deletions

View File

@ -50,23 +50,23 @@ public class MailSmtpConfig {
* 是否开启ssl 默认开启 * 是否开启ssl 默认开启
* */ * */
@Builder.Default @Builder.Default
private String isSSL = "true"; private final String isSSL = "true";
/** /**
* 是否开启验证 默认开启 * 是否开启验证 默认开启
* */ * */
@Builder.Default @Builder.Default
private String isAuth = "true"; private final String isAuth = "true";
/** /**
* 重试间隔单位默认为5秒 * 重试间隔单位默认为5秒
*/ */
@Builder.Default @Builder.Default
private int retryInterval = 5; private final int retryInterval = 5;
/** /**
* 重试次数默认为1次 * 重试次数默认为1次
*/ */
@Builder.Default @Builder.Default
private int maxRetries = 1; private final int maxRetries = 1;
} }

View File

@ -34,8 +34,8 @@ import java.util.logging.Logger;
public class MailService implements MailClient { public class MailService implements MailClient {
private static Logger logger = Logger.getLogger("mailLog"); private static final Logger logger = Logger.getLogger("mailLog");
private MailBuild mailBuild; private final MailBuild mailBuild;
private MailService(MailBuild mailBuild) { private MailService(MailBuild mailBuild) {
this.mailBuild = mailBuild; this.mailBuild = mailBuild;
@ -137,7 +137,8 @@ public class MailService implements MailClient {
List<String> cc, List<String> cc,
List<String> bcc) { List<String> bcc) {
int maxRetries = mailBuild.getMaxRetries(); int maxRetries = mailBuild.getMaxRetries();
int retryCount = 1; // 初始值为1则while循环中少发送一次最后一次发送在判断 retryCount >= maxRetries 这里 // 初始值为1则while循环中少发送一次最后一次发送在判断 retryCount >= maxRetries 这里
int retryCount = 1;
boolean retryOnFailure = true; boolean retryOnFailure = true;
while (retryOnFailure && retryCount < maxRetries) { while (retryOnFailure && retryCount < maxRetries) {
@ -150,7 +151,8 @@ public class MailService implements MailClient {
message = messageBuild(mailAddress, title, body, null, null, zipName, cc, bcc, files); message = messageBuild(mailAddress, title, body, null, null, zipName, cc, bcc, files);
} }
Transport.send(message); Transport.send(message);
retryOnFailure = false; // 发送成功停止重试 // 发送成功停止重试
retryOnFailure = false;
} catch (MessagingException | IOException e) { } catch (MessagingException | IOException e) {
retryCount++; retryCount++;
try { try {

View File

@ -1,7 +1,6 @@
package org.dromara.sms4j.api.proxy; package org.dromara.sms4j.api.proxy;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
/** /**
* 执行器接口 * 执行器接口

View File

@ -5,9 +5,14 @@ import lombok.Data;
import java.util.TimerTask; import java.util.TimerTask;
@Data @Data
public class Task{ public class Task {
/**
private TimerTask runnable;//描述要执行的任务 * 描述要执行的任务
private Long time;//什么时间执行,用时间戳来表示 */
private TimerTask runnable;
/**
* 什么时间执行,用时间戳来表示
*/
private Long time;
} }

View File

@ -2,7 +2,7 @@ package org.dromara.sms4j.comm.exception;
public class SmsBlendException extends RuntimeException{ public class SmsBlendException extends RuntimeException{
public String code; public String code;
public String message; public final String message;
public String requestId; public String requestId;
public SmsBlendException(String message) { public SmsBlendException(String message) {

View File

@ -5,7 +5,6 @@ import org.dromara.sms4j.api.SmsBlend;
import org.dromara.sms4j.api.proxy.SmsProcessor; import org.dromara.sms4j.api.proxy.SmsProcessor;
import java.lang.reflect.InvocationHandler; import java.lang.reflect.InvocationHandler;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.LinkedList; import java.util.LinkedList;
@ -28,7 +27,7 @@ public class SmsInvocationHandler implements InvocationHandler {
} }
@Override @Override
public Object invoke(Object o, Method method, Object[] objects) throws Throwable { public Object invoke(Object o, Method method, Object[] objects) {
Object result = null; Object result = null;
//前置执行器 //前置执行器
objects = doPreProcess(smsBlend, method, objects); objects = doPreProcess(smsBlend, method, objects);

View File

@ -62,12 +62,21 @@ public class BlackListRecordingProcessor implements SmsProcessor, SmsDaoAware, S
return param; return param;
} }
//构建cachekey /**
* 构建CacheKey
*
* @return CacheKey
*/
public String getCacheKey(){ public String getCacheKey(){
return "sms:blacklist:global"; return "sms:blacklist:global";
} }
//获取黑名单没有就新建 /**
* 获取黑名单没有就新建
*
* @param cacheKey 缓存key
* @return 黑名单
*/
public ArrayList<String> getBlackList(String cacheKey) { public ArrayList<String> getBlackList(String cacheKey) {
ArrayList<String> blackList; ArrayList<String> blackList;
Object cache = smsDao.get(cacheKey); Object cache = smsDao.get(cacheKey);
@ -80,7 +89,12 @@ public class BlackListRecordingProcessor implements SmsProcessor, SmsDaoAware, S
return blackList; return blackList;
} }
//让黑名单生效 /**
* 让黑名单生效
*
* @param cacheKey 缓存key
* @param blackList 黑命令
*/
public void flushBlackList(String cacheKey ,ArrayList<String> blackList) { public void flushBlackList(String cacheKey ,ArrayList<String> blackList) {
smsDao.set(cacheKey, blackList); smsDao.set(cacheKey, blackList);
} }

View File

@ -68,10 +68,13 @@ public class RestrictedProcessor implements CoreMethodProcessor, SmsDaoAware {
if (!config.getRestricted()){ if (!config.getRestricted()){
return; return;
} }
Integer accountMax = config.getAccountMax(); // 每日最大发送量 // 每日最大发送量
Integer minuteMax = config.getMinuteMax(); // 每分钟最大发送量 Integer accountMax = config.getAccountMax();
// 每分钟最大发送量
Integer minuteMax = config.getMinuteMax();
for (String phone : phones) { for (String phone : phones) {
if (SmsUtils.isNotEmpty(accountMax)) { // 是否配置了每日限制 // 是否配置了每日限制
if (SmsUtils.isNotEmpty(accountMax)) {
Integer i = (Integer) smsDao.get(REDIS_KEY + phone + "max"); Integer i = (Integer) smsDao.get(REDIS_KEY + phone + "max");
if (SmsUtils.isEmpty(i)) { if (SmsUtils.isEmpty(i)) {
smsDao.set(REDIS_KEY + phone + "max", 1, accTimer / 1000); smsDao.set(REDIS_KEY + phone + "max", 1, accTimer / 1000);
@ -82,7 +85,8 @@ public class RestrictedProcessor implements CoreMethodProcessor, SmsDaoAware {
smsDao.set(REDIS_KEY + phone + "max", i + 1, accTimer / 1000); smsDao.set(REDIS_KEY + phone + "max", i + 1, accTimer / 1000);
} }
} }
if (SmsUtils.isNotEmpty(minuteMax)) { // 是否配置了每分钟最大限制 // 是否配置了每分钟最大限制
if (SmsUtils.isNotEmpty(minuteMax)) {
Integer o = (Integer) smsDao.get(REDIS_KEY + phone); Integer o = (Integer) smsDao.get(REDIS_KEY + phone);
if (SmsUtils.isNotEmpty(o)) { if (SmsUtils.isNotEmpty(o)) {
if (o < minuteMax) { if (o < minuteMax) {

View File

@ -50,23 +50,23 @@ public class MailSmtpConfig {
* 是否开启ssl 默认开启 * 是否开启ssl 默认开启
* */ * */
@Builder.Default @Builder.Default
private String isSSL = "true"; private final String isSSL = "true";
/** /**
* 是否开启验证 默认开启 * 是否开启验证 默认开启
* */ * */
@Builder.Default @Builder.Default
private String isAuth = "true"; private final String isAuth = "true";
/** /**
* 重试间隔单位默认为5秒 * 重试间隔单位默认为5秒
*/ */
@Builder.Default @Builder.Default
private int retryInterval = 5; private final int retryInterval = 5;
/** /**
* 重试次数默认为1次 * 重试次数默认为1次
*/ */
@Builder.Default @Builder.Default
private int maxRetries = 1; private final int maxRetries = 1;
} }

View File

@ -33,8 +33,8 @@ import java.util.logging.Logger;
public class MailService implements MailClient { public class MailService implements MailClient {
private static Logger logger = Logger.getLogger("mailLog"); private static final Logger logger = Logger.getLogger("mailLog");
private MailBuild mailBuild; private final MailBuild mailBuild;
private MailService(MailBuild mailBuild) { private MailService(MailBuild mailBuild) {
this.mailBuild = mailBuild; this.mailBuild = mailBuild;
@ -130,7 +130,8 @@ public class MailService implements MailClient {
List<String> cc, List<String> cc,
List<String> bcc) { List<String> bcc) {
int maxRetries = mailBuild.getMaxRetries(); int maxRetries = mailBuild.getMaxRetries();
int retryCount = 1; // 初始值为1则while循环中少发送一次最后一次发送在判断 retryCount >= maxRetries 这里 // 初始值为1则while循环中少发送一次最后一次发送在判断 retryCount >= maxRetries 这里
int retryCount = 1;
boolean retryOnFailure = true; boolean retryOnFailure = true;
while (retryOnFailure && retryCount < maxRetries) { while (retryOnFailure && retryCount < maxRetries) {
@ -143,7 +144,8 @@ public class MailService implements MailClient {
message = messageBuild(mailAddress, title, body, null, null, zipName, cc, bcc, files); message = messageBuild(mailAddress, title, body, null, null, zipName, cc, bcc, files);
} }
Transport.send(message); Transport.send(message);
retryOnFailure = false; // 发送成功停止重试 // 发送成功停止重试
retryOnFailure = false;
} catch (MessagingException | IOException e) { } catch (MessagingException | IOException e) {
retryCount++; retryCount++;
try { try {

View File

@ -25,7 +25,7 @@ import static org.dromara.oa.comm.enums.OaType.BYTETALK;
@Slf4j @Slf4j
public class ByteTalkOaImpl extends AbstractOaBlend<ByteTalkConfig> { public class ByteTalkOaImpl extends AbstractOaBlend<ByteTalkConfig> {
private HttpClientImpl httpClient = new HttpClientImpl(); private final HttpClientImpl httpClient = new HttpClientImpl();
public ByteTalkOaImpl(ByteTalkConfig config) { public ByteTalkOaImpl(ByteTalkConfig config) {
super(config); super(config);

View File

@ -26,7 +26,7 @@ import java.util.Map;
@Slf4j @Slf4j
public class OaBlendsInitializer { public class OaBlendsInitializer {
private List<OaBaseProviderFactory<? extends OaSender, ? extends OaSupplierConfig>> factoryList; private final List<OaBaseProviderFactory<? extends OaSender, ? extends OaSupplierConfig>> factoryList;
private final OaConfig oaConfig; private final OaConfig oaConfig;
private final Map<String, Map<String, Object>> blends; private final Map<String, Map<String, Object>> blends;

View File

@ -25,7 +25,7 @@ import static org.dromara.oa.comm.enums.OaType.DINGTALK;
@Slf4j @Slf4j
public class DingTalkOaImpl extends AbstractOaBlend<DingTalkConfig> { public class DingTalkOaImpl extends AbstractOaBlend<DingTalkConfig> {
private HttpClientImpl httpClient = new HttpClientImpl(); private final HttpClientImpl httpClient = new HttpClientImpl();
/** /**
* 建造一个微信通知对象服务 * 建造一个微信通知对象服务

View File

@ -2,7 +2,6 @@ package org.dromara.oa.core.support;
import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import java.util.Map; import java.util.Map;

View File

@ -25,7 +25,7 @@ import static org.dromara.oa.comm.enums.OaType.WETALK;
@Slf4j @Slf4j
public class WeTalkOaImpl extends AbstractOaBlend<WeTalkConfig> { public class WeTalkOaImpl extends AbstractOaBlend<WeTalkConfig> {
private HttpClientImpl httpClient = new HttpClientImpl(); private final HttpClientImpl httpClient = new HttpClientImpl();
public WeTalkOaImpl(WeTalkConfig config) { public WeTalkOaImpl(WeTalkConfig config) {
super(config); super(config);

View File

@ -73,7 +73,7 @@ public class AlibabaSmsImpl extends AbstractSmsBlend<AlibabaConfig> {
@Override @Override
public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) { public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) {
if (Objects.isNull(messages)){ if (Objects.isNull(messages)){
messages = new LinkedHashMap<String, String>(); messages = new LinkedHashMap<>();
} }
String messageStr = JSONUtil.toJsonStr(messages); String messageStr = JSONUtil.toJsonStr(messages);
return getSmsResponse(phone, messageStr, templateId); return getSmsResponse(phone, messageStr, templateId);
@ -89,7 +89,7 @@ public class AlibabaSmsImpl extends AbstractSmsBlend<AlibabaConfig> {
@Override @Override
public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) { public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) {
if (Objects.isNull(messages)){ if (Objects.isNull(messages)){
messages = new LinkedHashMap<String, String>(); messages = new LinkedHashMap<>();
} }
String messageStr = JSONUtil.toJsonStr(messages); String messageStr = JSONUtil.toJsonStr(messages);
return getSmsResponse(SmsUtils.arrayToString(phones), messageStr, templateId); return getSmsResponse(SmsUtils.arrayToString(phones), messageStr, templateId);

View File

@ -55,7 +55,7 @@ public class CloopenSmsImpl extends AbstractSmsBlend<CloopenConfig> {
@Override @Override
public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) { public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) {
if (Objects.isNull(messages)){ if (Objects.isNull(messages)){
messages = new LinkedHashMap<String, String>(); messages = new LinkedHashMap<>();
} }
return massTexting(Collections.singletonList(phone), templateId, messages); return massTexting(Collections.singletonList(phone), templateId, messages);
} }
@ -70,7 +70,7 @@ public class CloopenSmsImpl extends AbstractSmsBlend<CloopenConfig> {
@Override @Override
public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) { public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) {
if (Objects.isNull(messages)){ if (Objects.isNull(messages)){
messages = new LinkedHashMap<String, String>(); messages = new LinkedHashMap<>();
} }
CloopenHelper helper = new CloopenHelper(getConfig(), http); CloopenHelper helper = new CloopenHelper(getConfig(), http);
Map<String, Object> paramMap = MapUtil.newHashMap(4, true); Map<String, Object> paramMap = MapUtil.newHashMap(4, true);

View File

@ -60,7 +60,7 @@ public class CtyunSmsImpl extends AbstractSmsBlend<CtyunConfig> {
@Override @Override
public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) { public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) {
if (Objects.isNull(messages)){ if (Objects.isNull(messages)){
messages = new LinkedHashMap<String, String>(); messages = new LinkedHashMap<>();
} }
String messageStr = JSONUtil.toJsonStr(messages); String messageStr = JSONUtil.toJsonStr(messages);
return getSmsResponse(phone, messageStr, templateId); return getSmsResponse(phone, messageStr, templateId);
@ -76,7 +76,7 @@ public class CtyunSmsImpl extends AbstractSmsBlend<CtyunConfig> {
@Override @Override
public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) { public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) {
if (Objects.isNull(messages)){ if (Objects.isNull(messages)){
messages = new LinkedHashMap<String, String>(); messages = new LinkedHashMap<>();
} }
String messageStr = JSONUtil.toJsonStr(messages); String messageStr = JSONUtil.toJsonStr(messages);
return getSmsResponse(SmsUtils.arrayToString(phones), messageStr, templateId); return getSmsResponse(SmsUtils.arrayToString(phones), messageStr, templateId);

View File

@ -70,7 +70,7 @@ public class DingZhongSmsImpl extends AbstractSmsBlend<DingZhongConfig> {
@Override @Override
public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) { public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) {
if (Objects.isNull(messages)){ if (Objects.isNull(messages)){
messages = new LinkedHashMap<String, String>(); messages = new LinkedHashMap<>();
} }
DingZhongHelper helper = new DingZhongHelper(getConfig(), http); DingZhongHelper helper = new DingZhongHelper(getConfig(), http);
Map<String, Object> paramMap = MapUtil.newHashMap(5, true); Map<String, Object> paramMap = MapUtil.newHashMap(5, true);

View File

@ -83,7 +83,7 @@ public class EmaySmsImpl extends AbstractSmsBlend<EmayConfig> {
@Override @Override
public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) { public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) {
if (Objects.isNull(messages)){ if (Objects.isNull(messages)){
messages = new LinkedHashMap<String, String>(); messages = new LinkedHashMap<>();
} }
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
for (Map.Entry<String, String> entry : messages.entrySet()) { for (Map.Entry<String, String> entry : messages.entrySet()) {

View File

@ -59,7 +59,7 @@ public class HuaweiSmsImpl extends AbstractSmsBlend<HuaweiConfig> {
@Override @Override
public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) { public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) {
if (Objects.isNull(messages)){ if (Objects.isNull(messages)){
messages = new LinkedHashMap<String, String>(); messages = new LinkedHashMap<>();
} }
String url = getConfig().getUrl() + Constant.HUAWEI_REQUEST_URL; String url = getConfig().getUrl() + Constant.HUAWEI_REQUEST_URL;
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
@ -103,7 +103,7 @@ public class HuaweiSmsImpl extends AbstractSmsBlend<HuaweiConfig> {
@Override @Override
public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) { public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) {
if (Objects.isNull(messages)){ if (Objects.isNull(messages)){
messages = new LinkedHashMap<String, String>(); messages = new LinkedHashMap<>();
} }
return sendMessage(CollUtil.join(phones, ","), templateId, messages); return sendMessage(CollUtil.join(phones, ","), templateId, messages);
} }

View File

@ -35,7 +35,8 @@ public class HuaweiBuilder {
return null; return null;
} }
String time = dateFormat(new Date()); String time = dateFormat(new Date());
String nonce = UUID.randomUUID().toString().replace("-", ""); //Nonce // Nonce
String nonce = UUID.randomUUID().toString().replace("-", "");
MessageDigest md; MessageDigest md;
byte[] passwordDigest = null; byte[] passwordDigest = null;
@ -46,8 +47,8 @@ public class HuaweiBuilder {
} catch (NoSuchAlgorithmException e) { } catch (NoSuchAlgorithmException e) {
e.printStackTrace(); e.printStackTrace();
} }
// PasswordDigest
String passwordDigestBase64Str = Base64.encode(passwordDigest); //PasswordDigest String passwordDigestBase64Str = Base64.encode(passwordDigest);
//若passwordDigestBase64Str中包含换行符,请执行如下代码进行修正 //若passwordDigestBase64Str中包含换行符,请执行如下代码进行修正
//passwordDigestBase64Str = passwordDigestBase64Str.replaceAll("[\\s*\t\n\r]", ""); //passwordDigestBase64Str = passwordDigestBase64Str.replaceAll("[\\s*\t\n\r]", "");
return String.format(Constant.HUAWEI_WSSE_HEADER_FORMAT, appKey, passwordDigestBase64Str, nonce, time); return String.format(Constant.HUAWEI_WSSE_HEADER_FORMAT, appKey, passwordDigestBase64Str, nonce, time);

View File

@ -75,7 +75,7 @@ public class JdCloudSmsImpl extends AbstractSmsBlend<JdCloudConfig> {
@Override @Override
public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) { public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) {
if (Objects.isNull(messages)){ if (Objects.isNull(messages)){
messages = new LinkedHashMap<String, String>(); messages = new LinkedHashMap<>();
} }
BatchSendRequest request; BatchSendRequest request;
try { try {

View File

@ -84,7 +84,7 @@ public class LianLuSmsImpl extends AbstractSmsBlend<LianLuConfig> {
@Override @Override
public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) { public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) {
if (Objects.isNull(messages)){ if (Objects.isNull(messages)){
messages = new LinkedHashMap<String, String>(); messages = new LinkedHashMap<>();
} }
LianLuRequest req = getRequest(); LianLuRequest req = getRequest();
req.setType(TEMPLATE_MSG) req.setType(TEMPLATE_MSG)

View File

@ -79,7 +79,7 @@ public class NeteaseSmsImpl extends AbstractSmsBlend<NeteaseConfig> {
@Override @Override
public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) { public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) {
if (Objects.isNull(messages)){ if (Objects.isNull(messages)){
messages = new LinkedHashMap<String, String>(); messages = new LinkedHashMap<>();
} }
Optional.ofNullable(phone).orElseThrow(() -> new SmsBlendException("手机号不能为空")); Optional.ofNullable(phone).orElseThrow(() -> new SmsBlendException("手机号不能为空"));
Optional.ofNullable(getConfig().getTemplateId()).orElseThrow(() -> new SmsBlendException("模板ID不能为空")); Optional.ofNullable(getConfig().getTemplateId()).orElseThrow(() -> new SmsBlendException("模板ID不能为空"));
@ -102,7 +102,7 @@ public class NeteaseSmsImpl extends AbstractSmsBlend<NeteaseConfig> {
@Override @Override
public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) { public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) {
if (Objects.isNull(messages)){ if (Objects.isNull(messages)){
messages = new LinkedHashMap<String, String>(); messages = new LinkedHashMap<>();
} }
if (phones.size() > 100) { if (phones.size() > 100) {
throw new SmsBlendException("单次发送超过最大发送上限建议每次群发短信人数低于100"); throw new SmsBlendException("单次发送超过最大发送上限建议每次群发短信人数低于100");

View File

@ -133,9 +133,7 @@ public abstract class AbstractSmsBlend<C extends SupplierConfig> implements SmsB
*/ */
@Override @Override
public final void sendMessageAsync(String phone, String message){ public final void sendMessageAsync(String phone, String message){
pool.execute(() -> { pool.execute(() -> sendMessage(phone, message));
sendMessage(phone, message);
});
} }
/** /**
@ -164,9 +162,7 @@ public abstract class AbstractSmsBlend<C extends SupplierConfig> implements SmsB
*/ */
@Override @Override
public final void sendMessageAsync(String phone, String templateId, LinkedHashMap<String, String> messages){ public final void sendMessageAsync(String phone, String templateId, LinkedHashMap<String, String> messages){
pool.execute(() -> { pool.execute(() -> sendMessage(phone, templateId, messages));
sendMessage(phone, templateId, messages);
});
} }
/** /**

View File

@ -1,12 +1,8 @@
package org.dromara.sms4j.qiniu.config; package org.dromara.sms4j.qiniu.config;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.dromara.sms4j.comm.constant.SupplierConstant; import org.dromara.sms4j.comm.constant.SupplierConstant;
import org.dromara.sms4j.netease.config.NeteaseConfig;
import org.dromara.sms4j.netease.config.NeteaseFactory;
import org.dromara.sms4j.netease.service.NeteaseSmsImpl;
import org.dromara.sms4j.provider.factory.AbstractProviderFactory; import org.dromara.sms4j.provider.factory.AbstractProviderFactory;
import org.dromara.sms4j.qiniu.service.QiNiuSmsImpl; import org.dromara.sms4j.qiniu.service.QiNiuSmsImpl;

View File

@ -10,14 +10,14 @@ import org.dromara.sms4j.comm.constant.Constant;
import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.exception.SmsBlendException;
import org.dromara.sms4j.qiniu.config.QiNiuConfig; import org.dromara.sms4j.qiniu.config.QiNiuConfig;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URI; import java.net.URI;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.Base64;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.TimeZone;
/** /**
* @author Administrator * @author Administrator
@ -30,7 +30,7 @@ public class QiNiuUtils {
private static final String HMAC_SHA1_ALGORITHM = "HmacSHA1"; private static final String HMAC_SHA1_ALGORITHM = "HmacSHA1";
public static String getSignature(String method, String url, QiNiuConfig qiNiuConfig, String body, String signDate) throws NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException, MalformedURLException { public static String getSignature(String method, String url, QiNiuConfig qiNiuConfig, String body, String signDate) {
URI reqUrl = URI.create(url); URI reqUrl = URI.create(url);
StringBuilder dataToSign = new StringBuilder(); StringBuilder dataToSign = new StringBuilder();
dataToSign.append(method.toUpperCase()).append(" ").append(reqUrl.getPath()); dataToSign.append(method.toUpperCase()).append(" ").append(reqUrl.getPath());

View File

@ -60,7 +60,7 @@ public class TencentSmsImpl extends AbstractSmsBlend<TencentConfig> {
@Override @Override
public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) { public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) {
if (Objects.isNull(messages)){ if (Objects.isNull(messages)){
messages = new LinkedHashMap<String, String>(); messages = new LinkedHashMap<>();
} }
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
for (Map.Entry<String, String> entry : messages.entrySet()) { for (Map.Entry<String, String> entry : messages.entrySet()) {
@ -83,7 +83,7 @@ public class TencentSmsImpl extends AbstractSmsBlend<TencentConfig> {
@Override @Override
public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) { public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) {
if (Objects.isNull(messages)){ if (Objects.isNull(messages)){
messages = new LinkedHashMap<String, String>(); messages = new LinkedHashMap<>();
} }
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
for (Map.Entry<String, String> entry : messages.entrySet()) { for (Map.Entry<String, String> entry : messages.entrySet()) {

View File

@ -8,7 +8,7 @@ public class Uni {
/** 模仿SDK版本*/ /** 模仿SDK版本*/
public static final String VERSION = "0.0.4"; public static final String VERSION = "0.0.4";
public static String signingAlgorithm = "hmac-sha256"; public static final String signingAlgorithm = "hmac-sha256";
public static String endpoint = System.getenv().getOrDefault("UNI_ENDPOINT", "https://uni.apistd.com"); public static String endpoint = System.getenv().getOrDefault("UNI_ENDPOINT", "https://uni.apistd.com");
public static String accessKeyId = System.getenv("UNI_ACCESS_KEY_ID"); public static String accessKeyId = System.getenv("UNI_ACCESS_KEY_ID");

View File

@ -118,7 +118,7 @@ public class UniClient {
} }
public static class Builder { public static class Builder {
private String accessKeyId; private final String accessKeyId;
private String accessKeySecret; private String accessKeySecret;
private String endpoint; private String endpoint;
private String signingAlgorithm; private String signingAlgorithm;

View File

@ -41,7 +41,7 @@ import java.util.Map;
@Slf4j @Slf4j
public class SmsBlendsInitializer { public class SmsBlendsInitializer {
private List<BaseProviderFactory<? extends SmsBlend, ? extends SupplierConfig>> factoryList; private final List<BaseProviderFactory<? extends SmsBlend, ? extends SupplierConfig>> factoryList;
private final SmsConfig smsConfig; private final SmsConfig smsConfig;
private final Map<String, Map<String, Object>> blends; private final Map<String, Map<String, Object>> blends;

View File

@ -1,14 +1,8 @@
package org.dromara.sms4j.example; package org.dromara.sms4j.example;
import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.comm.constant.SupplierConstant;
import org.dromara.sms4j.core.factory.SmsFactory;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import java.util.ArrayList;
import java.util.LinkedHashMap;
/** /**
* 主类 * 主类
* *

View File

@ -45,7 +45,7 @@ import java.util.Map;
@Slf4j @Slf4j
public class SmsBlendsInitializer { public class SmsBlendsInitializer {
private List<BaseProviderFactory<? extends SmsBlend, ? extends SupplierConfig>> factoryList; private final List<BaseProviderFactory<? extends SmsBlend, ? extends SupplierConfig>> factoryList;
private final SmsConfig smsConfig; private final SmsConfig smsConfig;
private final Map<String, Map<String, Object>> blends; private final Map<String, Map<String, Object>> blends;