fastjson移除,使用huTool的json替代

使用idea的自动导包优化现在的导入
This commit is contained in:
handy 2023-05-22 18:41:05 +08:00
parent 1f1d99f20a
commit 1fcb67eaf7
34 changed files with 147 additions and 112 deletions

View File

@ -2,7 +2,6 @@ package org.dromara.sms4j.api.smsProxy;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.SmsBlend; import org.dromara.sms4j.api.SmsBlend;
import org.dromara.sms4j.comm.config.SmsConfig; import org.dromara.sms4j.comm.config.SmsConfig;
import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.exception.SmsBlendException;

View File

@ -1,20 +1,19 @@
package org.dromara.sms4j.autoimmit.aop; package org.dromara.sms4j.autoimmit.aop;
import org.dromara.sms4j.comm.exception.SmsBlendException;
import org.dromara.sms4j.comm.config.SmsConfig;
import org.dromara.sms4j.autoimmit.utils.RedisUtils;
import org.dromara.sms4j.comm.utils.SmsUtil;
import org.dromara.sms4j.comm.utils.TimeExpiredPoolCache;
import org.dromara.sms4j.autoimmit.utils.SpringUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.annotation.Pointcut;
import org.dromara.sms4j.autoimmit.utils.RedisUtils;
import org.dromara.sms4j.autoimmit.utils.SpringUtil;
import org.dromara.sms4j.comm.config.SmsConfig;
import org.dromara.sms4j.comm.exception.SmsBlendException;
import org.dromara.sms4j.comm.utils.SmsUtil;
import org.dromara.sms4j.comm.utils.TimeExpiredPoolCache;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import javax.annotation.PostConstruct;
import java.util.ArrayList; import java.util.ArrayList;
@Aspect @Aspect

View File

@ -1,5 +1,6 @@
package org.dromara.sms4j.autoimmit.config; package org.dromara.sms4j.autoimmit.config;
import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.smsProxy.SmsInvocationHandler; import org.dromara.sms4j.api.smsProxy.SmsInvocationHandler;
import org.dromara.sms4j.autoimmit.aop.AopAdvice; import org.dromara.sms4j.autoimmit.aop.AopAdvice;
import org.dromara.sms4j.autoimmit.aop.RestrictedProcessImpl; import org.dromara.sms4j.autoimmit.aop.RestrictedProcessImpl;
@ -12,7 +13,6 @@ import org.dromara.sms4j.comm.config.SmsSqlConfig;
import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.constant.Constant;
import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.delayedTime.DelayedTime;
import org.dromara.sms4j.comm.factory.BeanFactory; import org.dromara.sms4j.comm.factory.BeanFactory;
import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.core.SupplierSqlConfig; import org.dromara.sms4j.core.SupplierSqlConfig;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;

View File

@ -1,10 +1,10 @@
package org.dromara.sms4j.autoimmit.config; package org.dromara.sms4j.autoimmit.config;
import org.dromara.sms4j.ctyun.config.CtyunConfig;
import org.dromara.sms4j.emay.config.EmayConfig;
import org.dromara.sms4j.aliyun.config.AlibabaConfig; import org.dromara.sms4j.aliyun.config.AlibabaConfig;
import org.dromara.sms4j.cloopen.config.CloopenConfig; import org.dromara.sms4j.cloopen.config.CloopenConfig;
import org.dromara.sms4j.core.config.SupplierFactory; import org.dromara.sms4j.core.config.SupplierFactory;
import org.dromara.sms4j.ctyun.config.CtyunConfig;
import org.dromara.sms4j.emay.config.EmayConfig;
import org.dromara.sms4j.huawei.config.HuaweiConfig; import org.dromara.sms4j.huawei.config.HuaweiConfig;
import org.dromara.sms4j.jdcloud.config.JdCloudConfig; import org.dromara.sms4j.jdcloud.config.JdCloudConfig;
import org.dromara.sms4j.tencent.config.TencentConfig; import org.dromara.sms4j.tencent.config.TencentConfig;

View File

@ -8,7 +8,11 @@ import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer; import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer;
import java.util.*; import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;

View File

@ -1,8 +1,8 @@
package org.dromara.sms4j.comm.config; package org.dromara.sms4j.comm.config;
import org.dromara.sms4j.comm.enumerate.ConfigType;
import lombok.Data; import lombok.Data;
import org.dromara.sms4j.comm.enumerate.ConfigType;
@Data @Data
public class SmsConfig { public class SmsConfig {

View File

@ -1,9 +1,6 @@
package org.dromara.sms4j.comm.constant; package org.dromara.sms4j.comm.constant;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
/** /**
* Constant * Constant
* <p> 短信应用常量 * <p> 短信应用常量

View File

@ -1,6 +1,7 @@
package org.dromara.sms4j.comm.delayedTime; package org.dromara.sms4j.comm.delayedTime;
import java.util.*; import java.util.Timer;
import java.util.TimerTask;
/** /**
* <p>类名: DelayedTime * <p>类名: DelayedTime

View File

@ -5,7 +5,11 @@ import org.dromara.sms4j.comm.config.SmsSqlConfig;
import org.dromara.sms4j.comm.exception.SmsSqlException; import org.dromara.sms4j.comm.exception.SmsSqlException;
import org.dromara.sms4j.comm.factory.BeanFactory; import org.dromara.sms4j.comm.factory.BeanFactory;
import java.sql.*; import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Hashtable; import java.util.Hashtable;
import java.util.Map; import java.util.Map;

View File

@ -2,17 +2,12 @@ package org.dromara.sms4j.comm.utils;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Random;
/** /**
* @author wind * @author wind

View File

@ -2,7 +2,6 @@ package org.dromara.sms4j.core;
import org.dromara.sms4j.aliyun.config.AlibabaConfig; import org.dromara.sms4j.aliyun.config.AlibabaConfig;
import org.dromara.sms4j.cloopen.config.CloopenConfig; import org.dromara.sms4j.cloopen.config.CloopenConfig;
import org.dromara.sms4j.provider.enumerate.SupplierType;
import org.dromara.sms4j.comm.utils.JDBCTool; import org.dromara.sms4j.comm.utils.JDBCTool;
import org.dromara.sms4j.comm.utils.SmsUtil; import org.dromara.sms4j.comm.utils.SmsUtil;
import org.dromara.sms4j.core.config.SupplierFactory; import org.dromara.sms4j.core.config.SupplierFactory;
@ -10,6 +9,7 @@ import org.dromara.sms4j.ctyun.config.CtyunConfig;
import org.dromara.sms4j.emay.config.EmayConfig; import org.dromara.sms4j.emay.config.EmayConfig;
import org.dromara.sms4j.huawei.config.HuaweiConfig; import org.dromara.sms4j.huawei.config.HuaweiConfig;
import org.dromara.sms4j.jdcloud.config.JdCloudConfig; import org.dromara.sms4j.jdcloud.config.JdCloudConfig;
import org.dromara.sms4j.provider.enumerate.SupplierType;
import org.dromara.sms4j.tencent.config.TencentConfig; import org.dromara.sms4j.tencent.config.TencentConfig;
import org.dromara.sms4j.unisms.config.UniConfig; import org.dromara.sms4j.unisms.config.UniConfig;
import org.dromara.sms4j.yunpian.config.YunpianConfig; import org.dromara.sms4j.yunpian.config.YunpianConfig;

View File

@ -5,17 +5,17 @@ import org.dromara.sms4j.aliyun.config.AlibabaFactory;
import org.dromara.sms4j.api.universal.SupplierConfig; import org.dromara.sms4j.api.universal.SupplierConfig;
import org.dromara.sms4j.cloopen.config.CloopenConfig; import org.dromara.sms4j.cloopen.config.CloopenConfig;
import org.dromara.sms4j.cloopen.config.CloopenFactory; import org.dromara.sms4j.cloopen.config.CloopenFactory;
import org.dromara.sms4j.ctyun.config.CtyunFactory;
import org.dromara.sms4j.emay.config.EmayFactory;
import org.dromara.sms4j.huawei.config.HuaweiFactory;
import org.dromara.sms4j.jdcloud.config.JdCloudFactory;
import org.dromara.sms4j.provider.enumerate.SupplierType;
import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.exception.SmsBlendException;
import org.dromara.sms4j.core.factory.SmsFactory; import org.dromara.sms4j.core.factory.SmsFactory;
import org.dromara.sms4j.ctyun.config.CtyunConfig; import org.dromara.sms4j.ctyun.config.CtyunConfig;
import org.dromara.sms4j.ctyun.config.CtyunFactory;
import org.dromara.sms4j.emay.config.EmayConfig; import org.dromara.sms4j.emay.config.EmayConfig;
import org.dromara.sms4j.emay.config.EmayFactory;
import org.dromara.sms4j.huawei.config.HuaweiConfig; import org.dromara.sms4j.huawei.config.HuaweiConfig;
import org.dromara.sms4j.huawei.config.HuaweiFactory;
import org.dromara.sms4j.jdcloud.config.JdCloudConfig; import org.dromara.sms4j.jdcloud.config.JdCloudConfig;
import org.dromara.sms4j.jdcloud.config.JdCloudFactory;
import org.dromara.sms4j.provider.enumerate.SupplierType;
import org.dromara.sms4j.tencent.config.TencentConfig; import org.dromara.sms4j.tencent.config.TencentConfig;
import org.dromara.sms4j.tencent.config.TencentFactory; import org.dromara.sms4j.tencent.config.TencentFactory;
import org.dromara.sms4j.unisms.config.UniConfig; import org.dromara.sms4j.unisms.config.UniConfig;

View File

@ -2,7 +2,8 @@ package org.dromara.sms4j.core.load;
import org.dromara.sms4j.api.SmsBlend; import org.dromara.sms4j.api.SmsBlend;
import java.util.*; import java.util.ArrayList;
import java.util.List;
/** /**
* SmsLoad * SmsLoad

View File

@ -1,6 +1,6 @@
package org.dromara.sms4j.aliyun.service; package org.dromara.sms4j.aliyun.service;
import com.alibaba.fastjson.JSON; import cn.hutool.json.JSONUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.aliyun.config.AlibabaConfig; import org.dromara.sms4j.aliyun.config.AlibabaConfig;
import org.dromara.sms4j.aliyun.utils.AliyunUtils; import org.dromara.sms4j.aliyun.utils.AliyunUtils;
@ -19,6 +19,7 @@ import java.util.concurrent.atomic.AtomicReference;
/** /**
* <p>类名: AlibabaSmsImpl * <p>类名: AlibabaSmsImpl
* <p>说明 阿里云短信实现 * <p>说明 阿里云短信实现
*
* @author :Wind * @author :Wind
* 2023/3/26 17:16 * 2023/3/26 17:16
**/ **/
@ -31,6 +32,7 @@ public class AlibabaSmsImpl extends AbstractSmsBlend {
/** /**
* AlibabaSmsImpl * AlibabaSmsImpl
* <p>构造器用于构造短信实现模块 * <p>构造器用于构造短信实现模块
*
* @author :Wind * @author :Wind
*/ */
public AlibabaSmsImpl(AlibabaConfig alibabaSmsConfig, Executor pool, DelayedTime delayedTime) { public AlibabaSmsImpl(AlibabaConfig alibabaSmsConfig, Executor pool, DelayedTime delayedTime) {
@ -49,7 +51,7 @@ public class AlibabaSmsImpl extends AbstractSmsBlend {
@Override @Override
@Restricted @Restricted
public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) { public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) {
String messageStr = JSON.toJSONString(messages); String messageStr = JSONUtil.toJsonStr(messages);
return getSmsResponse(phone, messageStr, templateId); return getSmsResponse(phone, messageStr, templateId);
} }
@ -64,7 +66,7 @@ public class AlibabaSmsImpl extends AbstractSmsBlend {
@Override @Override
@Restricted @Restricted
public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) { public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) {
String messageStr = JSON.toJSONString(messages); String messageStr = JSONUtil.toJsonStr(messages);
return getSmsResponse(arrayToString(phones), messageStr, templateId); return getSmsResponse(arrayToString(phones), messageStr, templateId);
} }
@ -97,14 +99,14 @@ public class AlibabaSmsImpl extends AbstractSmsBlend {
private static SmsResponse getResponse(Map map) { private static SmsResponse getResponse(Map map) {
SmsResponse smsResponse = new SmsResponse(); SmsResponse smsResponse = new SmsResponse();
if (map == null){ if (map == null) {
smsResponse.setErrorCode("500"); smsResponse.setErrorCode("500");
smsResponse.setErrMessage("aliyun send sms response is null.check param"); smsResponse.setErrMessage("aliyun send sms response is null.check param");
return smsResponse; return smsResponse;
} }
smsResponse.setCode((String) map.get("Code")); smsResponse.setCode((String) map.get("Code"));
smsResponse.setMessage((String) map.get("Message")); smsResponse.setMessage((String) map.get("Message"));
if ("OK".equals(smsResponse.getCode())){ if ("OK".equals(smsResponse.getCode())) {
smsResponse.setBizId((String) map.get("BizId")); smsResponse.setBizId((String) map.get("BizId"));
} }
return smsResponse; return smsResponse;

View File

@ -8,7 +8,13 @@ import org.dromara.sms4j.comm.constant.Constant;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.SimpleTimeZone;
import java.util.TreeMap;
import java.util.UUID;
/** /**
* @author Richard * @author Richard

View File

@ -12,7 +12,10 @@ import org.dromara.sms4j.cloopen.util.CloopenHelper;
import org.dromara.sms4j.comm.annotation.Restricted; import org.dromara.sms4j.comm.annotation.Restricted;
import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.delayedTime.DelayedTime;
import java.util.*; import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
/** /**

View File

@ -1,6 +1,6 @@
package org.dromara.sms4j.ctyun.service; package org.dromara.sms4j.ctyun.service;
import com.alibaba.fastjson.JSON; import cn.hutool.json.JSONUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.AbstractSmsBlend; import org.dromara.sms4j.api.AbstractSmsBlend;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
@ -19,6 +19,7 @@ import java.util.concurrent.atomic.AtomicReference;
/** /**
* <p>类名: CtyunSmsImpl * <p>类名: CtyunSmsImpl
* <p>说明 天翼云短信实现 * <p>说明 天翼云短信实现
*
* @author :bleachhtred * @author :bleachhtred
* 2023/5/12 15:06 * 2023/5/12 15:06
**/ **/
@ -29,7 +30,7 @@ public class CtyunSmsImpl extends AbstractSmsBlend {
public CtyunSmsImpl(CtyunConfig ctyunConfig, Executor pool, DelayedTime delayedTime) { public CtyunSmsImpl(CtyunConfig ctyunConfig, Executor pool, DelayedTime delayedTime) {
super(pool,delayedTime); super(pool, delayedTime);
this.ctyunConfig = ctyunConfig; this.ctyunConfig = ctyunConfig;
} }
@ -44,7 +45,7 @@ public class CtyunSmsImpl extends AbstractSmsBlend {
@Override @Override
@Restricted @Restricted
public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) { public SmsResponse sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages) {
String messageStr = JSON.toJSONString(messages); String messageStr = JSONUtil.toJsonStr(messages);
return getSmsResponse(phone, messageStr, templateId); return getSmsResponse(phone, messageStr, templateId);
} }
@ -59,7 +60,7 @@ public class CtyunSmsImpl extends AbstractSmsBlend {
@Override @Override
@Restricted @Restricted
public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) { public SmsResponse massTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages) {
String messageStr = JSON.toJSONString(messages); String messageStr = JSONUtil.toJsonStr(messages);
return getSmsResponse(arrayToString(phones), messageStr, templateId); return getSmsResponse(arrayToString(phones), messageStr, templateId);
} }

View File

@ -2,7 +2,7 @@ package org.dromara.sms4j.ctyun.utils;
import cn.hutool.crypto.digest.HMac; import cn.hutool.crypto.digest.HMac;
import cn.hutool.crypto.digest.HmacAlgorithm; import cn.hutool.crypto.digest.HmacAlgorithm;
import com.alibaba.fastjson.JSONObject; import cn.hutool.json.JSONUtil;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.exception.SmsBlendException;
@ -12,7 +12,12 @@ import java.nio.charset.StandardCharsets;
import java.security.MessageDigest; import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; 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.Locale;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
@NoArgsConstructor(access = AccessLevel.PRIVATE) @NoArgsConstructor(access = AccessLevel.PRIVATE)
@ -75,7 +80,7 @@ public class CtyunUtils {
paramMap.put("signName", ctyunConfig.getSignature()); paramMap.put("signName", ctyunConfig.getSignature());
paramMap.put("templateParam", message); paramMap.put("templateParam", message);
paramMap.put("templateCode", templateId); paramMap.put("templateCode", templateId);
return JSONObject.toJSONString(paramMap); return JSONUtil.toJsonStr(paramMap);
} }
private static String toHex(byte[] data) { private static String toHex(byte[] data) {

View File

@ -1,18 +1,21 @@
package org.dromara.sms4j.emay.service; package org.dromara.sms4j.emay.service;
import com.alibaba.fastjson.JSONArray; import cn.hutool.json.JSONArray;
import com.alibaba.fastjson.JSONObject; import cn.hutool.json.JSONObject;
import org.dromara.sms4j.api.AbstractSmsBlend;
import org.dromara.sms4j.comm.utils.SmsUtil;
import org.dromara.sms4j.emay.config.EmayConfig;
import org.dromara.sms4j.emay.util.EmayBuilder;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.AbstractSmsBlend;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.comm.annotation.Restricted; import org.dromara.sms4j.comm.annotation.Restricted;
import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.delayedTime.DelayedTime;
import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.exception.SmsBlendException;
import org.dromara.sms4j.comm.utils.SmsUtil;
import org.dromara.sms4j.emay.config.EmayConfig;
import org.dromara.sms4j.emay.util.EmayBuilder;
import java.util.*; import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
@ -103,7 +106,7 @@ public class EmaySmsImpl extends AbstractSmsBlend {
smsResponse.setErrMessage("emay send sms response is null.check param"); smsResponse.setErrMessage("emay send sms response is null.check param");
return smsResponse; return smsResponse;
} }
String code = execute.getString("code"); String code = execute.getStr("code");
if (SmsUtil.isEmpty(code)) { if (SmsUtil.isEmpty(code)) {
smsResponse.setErrorCode("emay response code is null"); smsResponse.setErrorCode("emay response code is null");
smsResponse.setErrMessage("emay is error"); smsResponse.setErrMessage("emay is error");
@ -112,7 +115,7 @@ public class EmaySmsImpl extends AbstractSmsBlend {
if ("success".equalsIgnoreCase(code)) { if ("success".equalsIgnoreCase(code)) {
JSONArray data = execute.getJSONArray("data"); JSONArray data = execute.getJSONArray("data");
JSONObject result = (JSONObject) data.get(0); JSONObject result = (JSONObject) data.get(0);
String smsId = result.getString("smsId"); String smsId = result.getStr("smsId");
smsResponse.setBizId(smsId); smsResponse.setBizId(smsId);
} }
smsResponse.setData(execute); smsResponse.setData(execute);

View File

@ -2,8 +2,6 @@ package org.dromara.sms4j.huawei.entity;
import lombok.Data; import lombok.Data;
import java.util.Date;
/** /**
* SmsId * SmsId
* <p> 短信ID列表 * <p> 短信ID列表

View File

@ -1,5 +1,7 @@
package org.dromara.sms4j.huawei.service; package org.dromara.sms4j.huawei.service;
import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.AbstractSmsBlend;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.comm.annotation.Restricted; import org.dromara.sms4j.comm.annotation.Restricted;
import org.dromara.sms4j.comm.constant.Constant; import org.dromara.sms4j.comm.constant.Constant;
@ -7,10 +9,12 @@ import org.dromara.sms4j.comm.delayedTime.DelayedTime;
import org.dromara.sms4j.huawei.config.HuaweiConfig; import org.dromara.sms4j.huawei.config.HuaweiConfig;
import org.dromara.sms4j.huawei.entity.HuaweiResponse; import org.dromara.sms4j.huawei.entity.HuaweiResponse;
import org.dromara.sms4j.huawei.utils.HuaweiBuilder; import org.dromara.sms4j.huawei.utils.HuaweiBuilder;
import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.AbstractSmsBlend;
import java.util.*; import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import static org.dromara.sms4j.huawei.utils.HuaweiBuilder.listToString; import static org.dromara.sms4j.huawei.utils.HuaweiBuilder.listToString;

View File

@ -14,7 +14,12 @@ import java.security.cert.CertificateException;
import java.security.cert.X509Certificate; import java.security.cert.X509Certificate;
import java.text.ParseException; import java.text.ParseException;
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.List;
import java.util.Map;
import java.util.UUID;
public class HuaweiBuilder { public class HuaweiBuilder {
private HuaweiBuilder(){} private HuaweiBuilder(){}

View File

@ -2,7 +2,6 @@ package org.dromara.sms4j.provider.base;
import org.dromara.sms4j.api.SmsBlend; import org.dromara.sms4j.api.SmsBlend;
import org.dromara.sms4j.api.universal.SupplierConfig; import org.dromara.sms4j.api.universal.SupplierConfig;
import org.dromara.sms4j.comm.config.BaseConfig;
/** /**
* AlibabaSmsConfig * AlibabaSmsConfig

View File

@ -1,7 +1,7 @@
package org.dromara.sms4j.tencent.service; package org.dromara.sms4j.tencent.service;
import com.alibaba.fastjson.JSONArray; import cn.hutool.json.JSONArray;
import com.alibaba.fastjson.JSONObject; import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.AbstractSmsBlend; import org.dromara.sms4j.api.AbstractSmsBlend;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
@ -12,7 +12,10 @@ import org.dromara.sms4j.comm.exception.SmsBlendException;
import org.dromara.sms4j.tencent.config.TencentConfig; import org.dromara.sms4j.tencent.config.TencentConfig;
import org.dromara.sms4j.tencent.utils.TencentUtils; import org.dromara.sms4j.tencent.utils.TencentUtils;
import java.util.*; import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
@Slf4j @Slf4j
@ -91,9 +94,9 @@ public class TencentSmsImpl extends AbstractSmsBlend {
JSONObject jsonBody = res.get(JSONObject.class); JSONObject jsonBody = res.get(JSONObject.class);
JSONObject response = jsonBody.getJSONObject("Response"); JSONObject response = jsonBody.getJSONObject("Response");
JSONArray sendStatusSet = response.getJSONArray("SendStatusSet"); JSONArray sendStatusSet = response.getJSONArray("SendStatusSet");
smsResponse.setBizId(sendStatusSet.getJSONObject(0).getString("SerialNo")); smsResponse.setBizId(sendStatusSet.getJSONObject(0).getStr("SerialNo"));
smsResponse.setMessage(sendStatusSet.getJSONObject(0).getString("Message")); smsResponse.setMessage(sendStatusSet.getJSONObject(0).getStr("Message"));
smsResponse.setCode(sendStatusSet.getJSONObject(0).getString("Code")); smsResponse.setCode(sendStatusSet.getJSONObject(0).getStr("Code"));
})) }))
.onError((ex, req, res) -> { .onError((ex, req, res) -> {
JSONObject jsonBody = res.get(JSONObject.class); JSONObject jsonBody = res.get(JSONObject.class);
@ -103,8 +106,8 @@ public class TencentSmsImpl extends AbstractSmsBlend {
} else { } else {
JSONObject response = jsonBody.getJSONObject("Response"); JSONObject response = jsonBody.getJSONObject("Response");
JSONArray sendStatusSet = response.getJSONArray("SendStatusSet"); JSONArray sendStatusSet = response.getJSONArray("SendStatusSet");
smsResponse.setErrMessage(sendStatusSet.getJSONObject(0).getString("Message")); smsResponse.setErrMessage(sendStatusSet.getJSONObject(0).getStr("Message"));
smsResponse.setErrorCode(sendStatusSet.getJSONObject(0).getString("Code")); smsResponse.setErrorCode(sendStatusSet.getJSONObject(0).getStr("Code"));
} }
}) })
.execute(); .execute();

View File

@ -2,7 +2,7 @@ package org.dromara.sms4j.tencent.utils;
import cn.hutool.crypto.digest.HMac; import cn.hutool.crypto.digest.HMac;
import cn.hutool.crypto.digest.HmacAlgorithm; import cn.hutool.crypto.digest.HmacAlgorithm;
import com.alibaba.fastjson.JSON; import cn.hutool.json.JSONUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.tencent.config.TencentConfig; import org.dromara.sms4j.tencent.config.TencentConfig;
@ -71,7 +71,7 @@ public class TencentUtils {
params.put("SignName", tencentConfig.getSignature()); params.put("SignName", tencentConfig.getSignature());
params.put("TemplateId", templateId); params.put("TemplateId", templateId);
params.put("TemplateParamSet", messages); params.put("TemplateParamSet", messages);
String payload = JSON.toJSONString(params); String payload = JSONUtil.toJsonStr(params);
String hashedRequestPayload = sha256Hex(payload); String hashedRequestPayload = sha256Hex(payload);
String canonicalRequest = HTTP_REQUEST_METHOD + "\n" + canonicalUri + "\n" + canonicalQueryString + "\n" String canonicalRequest = HTTP_REQUEST_METHOD + "\n" + canonicalUri + "\n" + canonicalQueryString + "\n"
+ canonicalHeaders + "\n" + signedHeaders + "\n" + hashedRequestPayload; + canonicalHeaders + "\n" + signedHeaders + "\n" + hashedRequestPayload;

View File

@ -1,6 +1,6 @@
package org.dromara.sms4j.unisms.core; package org.dromara.sms4j.unisms.core;
import com.alibaba.fastjson.JSONObject; import cn.hutool.json.JSONUtil;
import com.dtflys.forest.config.ForestConfiguration; import com.dtflys.forest.config.ForestConfiguration;
import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.exception.SmsBlendException;
import org.dromara.sms4j.comm.factory.BeanFactory; import org.dromara.sms4j.comm.factory.BeanFactory;
@ -79,6 +79,7 @@ public class UniClient {
/** /**
* request * request
* <p> uni-sms发送请求 * <p> uni-sms发送请求
*
* @param action 接口名称 * @param action 接口名称
* @author :Wind * @author :Wind
*/ */
@ -91,21 +92,19 @@ public class UniClient {
headers.put("User-Agent", USER_AGENT); headers.put("User-Agent", USER_AGENT);
headers.put("Content-Type", "application/json;charset=utf-8"); headers.put("Content-Type", "application/json;charset=utf-8");
headers.put("Accept", "application/json"); headers.put("Accept", "application/json");
return new UniResponse( String str = http.post(this.endpoint)
JSONObject.parseObject( .addHeader(headers)
http.post(this.endpoint) .addQuery(this.sign(query))
.addHeader(headers) .addBody(JSONUtil.toJsonStr(data))
.addQuery(this.sign(query)) .successWhen(((req, res) -> {
.addBody(JSONObject.toJSONString(data)) return res.noException() && // 请求过程没有异常
.successWhen(((req, res) -> { res.statusIsNot(500); // 不能是 500
return res.noException() && // 请求过程没有异常 }))
res.statusIsNot(500); // 不能是 500 .onError((ex, req, res) -> {
})) throw new SmsBlendException(ex.getMessage());
.onError((ex, req, res) -> { })
throw new SmsBlendException(ex.getMessage()); .executeAsString();
}) return new UniResponse(JSONUtil.parseObj(str));
.executeAsString()
));
} }
public static class Builder { public static class Builder {

View File

@ -1,6 +1,6 @@
package org.dromara.sms4j.unisms.core; package org.dromara.sms4j.unisms.core;
import com.alibaba.fastjson.JSONObject; import cn.hutool.json.JSONObject;
import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.exception.SmsBlendException;
import java.util.Objects; import java.util.Objects;
@ -22,23 +22,23 @@ public class UniResponse {
*/ */
public UniResponse(final JSONObject response) throws SmsBlendException { public UniResponse(final JSONObject response) throws SmsBlendException {
JSONObject body = response.getJSONObject("data"); JSONObject body = response.getJSONObject("data");
if (!Objects.isNull(body)){ if (!Objects.isNull(body)) {
this.status = body.getJSONArray("messages").getJSONObject(0).getString("status"); this.status = body.getJSONArray("messages").getJSONObject(0).getStr("status");
this.requestId = body.getJSONArray("messages").getJSONObject(0).getString("id"); this.requestId = body.getJSONArray("messages").getJSONObject(0).getStr("id");
this.raw = body; this.raw = body;
this.data = body; this.data = body;
} }
if (this.status != "400") { if (this.status != "400") {
String code = response.getString("code"); String code = response.getStr("code");
if (!"0".equals(code)) { if (!"0".equals(code)) {
this.message = response.getString("message"); this.message = response.getStr("message");
}else { } else {
this.message = body.getJSONArray("messages").getString(0);; this.message = body.getJSONArray("messages").getStr(0);
;
} }
this.code = code; this.code = code;
} } else {
else { throw new SmsBlendException(response.getStr("message"), "-1");
throw new SmsBlendException(response.getString("message"), "-1");
} }
} }

View File

@ -1,12 +1,12 @@
package org.dromara.sms4j.unisms.service; package org.dromara.sms4j.unisms.service;
import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.api.AbstractSmsBlend; import org.dromara.sms4j.api.AbstractSmsBlend;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.comm.annotation.Restricted; import org.dromara.sms4j.comm.annotation.Restricted;
import org.dromara.sms4j.comm.delayedTime.DelayedTime; import org.dromara.sms4j.comm.delayedTime.DelayedTime;
import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.exception.SmsBlendException;
import org.dromara.sms4j.unisms.config.UniConfig; import org.dromara.sms4j.unisms.config.UniConfig;
import lombok.extern.slf4j.Slf4j;
import org.dromara.sms4j.unisms.core.Uni; import org.dromara.sms4j.unisms.core.Uni;
import org.dromara.sms4j.unisms.core.UniResponse; import org.dromara.sms4j.unisms.core.UniResponse;

View File

@ -1,6 +1,6 @@
package org.dromara.sms4j.yunpian.service; package org.dromara.sms4j.yunpian.service;
import com.alibaba.fastjson.JSONObject; import cn.hutool.json.JSONObject;
import org.dromara.sms4j.api.AbstractSmsBlend; import org.dromara.sms4j.api.AbstractSmsBlend;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.comm.annotation.Restricted; import org.dromara.sms4j.comm.annotation.Restricted;
@ -9,7 +9,10 @@ import org.dromara.sms4j.comm.delayedTime.DelayedTime;
import org.dromara.sms4j.comm.exception.SmsBlendException; import org.dromara.sms4j.comm.exception.SmsBlendException;
import org.dromara.sms4j.yunpian.config.YunpianConfig; import org.dromara.sms4j.yunpian.config.YunpianConfig;
import java.util.*; import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
@ -31,11 +34,11 @@ public class YunPianSmsImpl extends AbstractSmsBlend {
smsResponse.setErrMessage("yunpian send sms response is null.check param"); smsResponse.setErrMessage("yunpian send sms response is null.check param");
return smsResponse; return smsResponse;
} }
smsResponse.setCode(execute.getString("code")); smsResponse.setCode(execute.getStr("code"));
smsResponse.setMessage(execute.getString("msg")); smsResponse.setMessage(execute.getStr("msg"));
smsResponse.setBizId(execute.getString("sid")); smsResponse.setBizId(execute.getStr("sid"));
if (execute.getInteger("code") != 0) { if (execute.getInt("code") != 0) {
smsResponse.setErrMessage(execute.getString("msg")); smsResponse.setErrMessage(execute.getStr("msg"));
} }
smsResponse.setData(execute); smsResponse.setData(execute);
return smsResponse; return smsResponse;

View File

@ -1,7 +1,6 @@
package org.dromara.sms4j.solon; package org.dromara.sms4j.solon;
import org.dromara.sms4j.comm.annotation.Restricted; import org.dromara.sms4j.comm.annotation.Restricted;
import org.dromara.sms4j.comm.factory.BeanFactory;
import org.dromara.sms4j.solon.aop.AopAdvice; import org.dromara.sms4j.solon.aop.AopAdvice;
import org.dromara.sms4j.solon.config.SmsAutowiredConfig; import org.dromara.sms4j.solon.config.SmsAutowiredConfig;
import org.noear.solon.core.AopContext; import org.noear.solon.core.AopContext;

View File

@ -11,7 +11,10 @@ import org.dromara.sms4j.core.SupplierSqlConfig;
import org.dromara.sms4j.solon.utils.RedisUtils; import org.dromara.sms4j.solon.utils.RedisUtils;
import org.noear.solon.Solon; import org.noear.solon.Solon;
import org.noear.solon.Utils; import org.noear.solon.Utils;
import org.noear.solon.annotation.*; import org.noear.solon.annotation.Bean;
import org.noear.solon.annotation.Condition;
import org.noear.solon.annotation.Configuration;
import org.noear.solon.annotation.Inject;
import org.noear.solon.core.Props; import org.noear.solon.core.Props;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;

View File

@ -4,7 +4,8 @@ import lombok.extern.slf4j.Slf4j;
import org.noear.solon.Solon; import org.noear.solon.Solon;
import org.redisson.api.RedissonClient; import org.redisson.api.RedissonClient;
import java.util.*; import java.util.Map;
import java.util.Objects;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;

View File

@ -1,9 +1,9 @@
package org.dromara.sms4j.test; package org.dromara.sms4j.test;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.provider.enumerate.SupplierType;
import org.dromara.sms4j.core.config.SupplierFactory; import org.dromara.sms4j.core.config.SupplierFactory;
import org.dromara.sms4j.core.factory.SmsFactory; import org.dromara.sms4j.core.factory.SmsFactory;
import org.dromara.sms4j.provider.enumerate.SupplierType;
import org.dromara.sms4j.unisms.config.UniConfig; import org.dromara.sms4j.unisms.config.UniConfig;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;

View File

@ -3,9 +3,10 @@ package org.dromara.sms4j.example;
import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import org.dromara.sms4j.api.entity.SmsResponse; import org.dromara.sms4j.api.entity.SmsResponse;
import org.dromara.sms4j.provider.enumerate.SupplierType; import org.dromara.sms4j.comm.utils.SmsUtil;
import org.dromara.sms4j.core.config.SupplierFactory; import org.dromara.sms4j.core.config.SupplierFactory;
import org.dromara.sms4j.core.factory.SmsFactory; import org.dromara.sms4j.core.factory.SmsFactory;
import org.dromara.sms4j.provider.enumerate.SupplierType;
import org.dromara.sms4j.unisms.config.UniConfig; import org.dromara.sms4j.unisms.config.UniConfig;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
@ -35,11 +36,11 @@ class Sms4jTest {
@Test @Test
public void alibabaSmsTest() { public void alibabaSmsTest() {
String phone = ""; String phone = "13546606929";
if (StrUtil.isBlank(phone)) { if (StrUtil.isBlank(phone)) {
return; return;
} }
SmsResponse smsResponse = SmsFactory.createSmsBlend(SupplierType.ALIBABA).sendMessage(phone, "123456"); SmsResponse smsResponse = SmsFactory.createSmsBlend(SupplierType.ALIBABA).sendMessage(phone, SmsUtil.getRandomInt(6));
Assert.isTrue("OK".equals(smsResponse.getCode())); Assert.isTrue("OK".equals(smsResponse.getCode()));
} }