mirror of
https://gitee.com/dromara/sms4j.git
synced 2025-12-06 08:58:38 +08:00
1.修改多框架自动查找Smsdao时的error日志为info
2.修复在springboot的依赖下,使用smsReadConfig配置会发生渠道级上线拦截器异常的问题
This commit is contained in:
parent
b325d2ac0d
commit
6494ea506a
@ -89,7 +89,7 @@ public abstract class SmsProxyFactory {
|
||||
if (null != smsDao) {
|
||||
return smsDao;
|
||||
}
|
||||
log.error("尝试框架加载失败,最终使用默认SmsDao!");
|
||||
log.info("尝试框架加载失败,最终使用默认SmsDao!");
|
||||
return SmsDaoDefaultImpl.getInstance();
|
||||
}
|
||||
|
||||
@ -100,7 +100,7 @@ public abstract class SmsProxyFactory {
|
||||
Method getSmsDao = clazz.getMethod("getSmsDao", null);
|
||||
return (SmsDao) getSmsDao.invoke(null, null);
|
||||
} catch (ClassNotFoundException | NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
|
||||
log.error("{}:加载SmsDao失败,尝试其他框架加载......", frameworkName);
|
||||
log.info("{}:加载SmsDao失败,尝试其他框架加载......", frameworkName);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -52,6 +52,10 @@ public class SingleBlendRestrictedProcessor implements SmsProcessor, SmsDaoAware
|
||||
String configId = smsBlend.getConfigId();
|
||||
Map targetConfig = (Map) smsBlendsConfig.get(configId);
|
||||
Object maximumObj = targetConfig.get("maximum");
|
||||
if (null == maximumObj) {
|
||||
log.info("配置信息未能加载到本拦截器,跳过渠道级上限前置拦截执行器");
|
||||
return param;
|
||||
}
|
||||
if (SmsUtils.isEmpty(maximumObj)) {
|
||||
return param;
|
||||
}
|
||||
|
||||
@ -0,0 +1,41 @@
|
||||
package org.dromara.sms4j.starter.adepter;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import org.dromara.sms4j.core.datainterface.SmsReadConfig;
|
||||
import org.dromara.sms4j.provider.config.BaseConfig;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
public class ConfigCombineMapAdeptor<S, M> extends HashMap {
|
||||
public M get(Object key) {
|
||||
Object o = super.get(key);
|
||||
if (null == o){
|
||||
Set configKeySet = this.keySet();
|
||||
for (Object insideMapKey : configKeySet) {
|
||||
if (((String)insideMapKey).startsWith(SmsReadConfig.class.getSimpleName())){
|
||||
Map smsBlendsConfigInsideMap = (Map) this.get(insideMapKey);
|
||||
SmsReadConfig config = (SmsReadConfig) smsBlendsConfigInsideMap.get(insideMapKey);
|
||||
BaseConfig supplierConfig = config.getSupplierConfig((String)key);
|
||||
List<BaseConfig> supplierConfigList = config.getSupplierConfigList();
|
||||
if (null == supplierConfigList){
|
||||
supplierConfigList = new ArrayList<>();
|
||||
}
|
||||
if (null != supplierConfig){
|
||||
supplierConfigList.add(supplierConfig);
|
||||
}
|
||||
for (BaseConfig baseConfig : supplierConfigList) {
|
||||
if (key.equals(baseConfig.getConfigId())){
|
||||
Map<String, Object> configMap = BeanUtil.beanToMap(baseConfig);
|
||||
this.put(baseConfig.getConfigId(),configMap);
|
||||
return (M)configMap;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
return (M)o;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -11,6 +11,7 @@ import org.dromara.sms4j.cloopen.config.CloopenFactory;
|
||||
import org.dromara.sms4j.comm.constant.Constant;
|
||||
import org.dromara.sms4j.comm.enumerate.ConfigType;
|
||||
import org.dromara.sms4j.comm.utils.SmsUtils;
|
||||
import org.dromara.sms4j.core.datainterface.SmsReadConfig;
|
||||
import org.dromara.sms4j.core.proxy.EnvirmentHolder;
|
||||
import org.dromara.sms4j.core.factory.SmsFactory;
|
||||
import org.dromara.sms4j.core.proxy.processor.*;
|
||||
@ -25,11 +26,14 @@ import org.dromara.sms4j.netease.config.NeteaseFactory;
|
||||
import org.dromara.sms4j.provider.config.SmsConfig;
|
||||
import org.dromara.sms4j.provider.factory.BaseProviderFactory;
|
||||
import org.dromara.sms4j.provider.factory.ProviderFactoryHolder;
|
||||
import org.dromara.sms4j.starter.adepter.ConfigCombineMapAdeptor;
|
||||
import org.dromara.sms4j.tencent.config.TencentFactory;
|
||||
import org.dromara.sms4j.unisms.config.UniFactory;
|
||||
import org.dromara.sms4j.yunpian.config.YunPianFactory;
|
||||
import org.dromara.sms4j.zhutong.config.ZhutongFactory;
|
||||
import org.springframework.beans.factory.ObjectProvider;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@ -40,14 +44,16 @@ public class SmsBlendsInitializer {
|
||||
|
||||
private final SmsConfig smsConfig;
|
||||
private final Map<String, Map<String, Object>> blends;
|
||||
private final ObjectProvider<SmsReadConfig> extendsSmsConfigs;
|
||||
|
||||
public SmsBlendsInitializer(List<BaseProviderFactory<? extends SmsBlend, ? extends SupplierConfig>> factoryList,
|
||||
SmsConfig smsConfig,
|
||||
Map<String, Map<String, Object>> blends
|
||||
){
|
||||
Map<String, Map<String, Object>> blends,
|
||||
ObjectProvider<SmsReadConfig> extendsSmsConfigs){
|
||||
this.factoryList = factoryList;
|
||||
this.smsConfig = smsConfig;
|
||||
this.blends = blends;
|
||||
this.extendsSmsConfigs = extendsSmsConfigs;
|
||||
onApplicationEvent();
|
||||
}
|
||||
|
||||
@ -58,7 +64,33 @@ public class SmsBlendsInitializer {
|
||||
|
||||
if(ConfigType.YAML.equals(this.smsConfig.getConfigType())) {
|
||||
//持有初始化配置信息
|
||||
EnvirmentHolder.frozenEnvirmet(smsConfig, blends);
|
||||
Map<String, Map<String, Object>> blendsInclude = new ConfigCombineMapAdeptor<String, Map<String, Object>>();
|
||||
blendsInclude.putAll(this.blends);
|
||||
int num = 0;
|
||||
for (SmsReadConfig smsReadConfig : extendsSmsConfigs) {
|
||||
String key = SmsReadConfig.class.getSimpleName() + num;
|
||||
Map<String, Object> insideMap = new HashMap<>();
|
||||
insideMap.put(key,smsReadConfig);
|
||||
blendsInclude.put(key,insideMap);
|
||||
num++;
|
||||
/* BaseConfig supplierConfig = smsReadConfig.getSupplierConfig("");
|
||||
List<BaseConfig> supplierConfigList = smsReadConfig.getSupplierConfigList();
|
||||
if(null != supplierConfigList){
|
||||
supplierConfigList.add(supplierConfig);
|
||||
for (BaseConfig config : supplierConfigList) {
|
||||
String key = SmsReadConfig.class.getSimpleName() + num;
|
||||
Map<String, Object> insideMap = new HashMap<>();
|
||||
insideMap.put(key,supplierConfig);
|
||||
blendsInclude.put(key,insideMap);
|
||||
num++;
|
||||
}
|
||||
}else {
|
||||
if(null != supplierConfig){
|
||||
|
||||
}
|
||||
}*/
|
||||
}
|
||||
EnvirmentHolder.frozenEnvirmet(smsConfig, blendsInclude);
|
||||
//注册执行器实现
|
||||
SmsProxyFactory.addProcessor(new RestrictedProcessor());
|
||||
SmsProxyFactory.addProcessor(new BlackListProcessor());
|
||||
|
||||
@ -5,8 +5,10 @@ import lombok.SneakyThrows;
|
||||
import org.dromara.sms4j.api.SmsBlend;
|
||||
import org.dromara.sms4j.comm.constant.Constant;
|
||||
import org.dromara.sms4j.comm.enumerate.ConfigType;
|
||||
import org.dromara.sms4j.core.datainterface.SmsReadConfig;
|
||||
import org.dromara.sms4j.provider.config.SmsConfig;
|
||||
import org.dromara.sms4j.provider.factory.BaseProviderFactory;
|
||||
import org.springframework.beans.factory.ObjectProvider;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
@ -53,8 +55,9 @@ public class SupplierConfig {
|
||||
@Bean
|
||||
protected SmsBlendsInitializer smsBlendsInitializer(List<BaseProviderFactory<? extends SmsBlend, ? extends org.dromara.sms4j.api.universal.SupplierConfig>> factoryList,
|
||||
SmsConfig smsConfig,
|
||||
Map<String, Map<String, Object>> blends) {
|
||||
return new SmsBlendsInitializer(factoryList, smsConfig, blends);
|
||||
Map<String, Map<String, Object>> blends,
|
||||
ObjectProvider<SmsReadConfig> extendsSmsConfigs) {
|
||||
return new SmsBlendsInitializer(factoryList, smsConfig, blends, extendsSmsConfigs);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user