!185 重提PR(179 解决 Sms 和 Oa 的厂商配置信息Map会在同时存在时发生冲突的Bug)

Merge pull request !185 from 东风/oa-fix-bean
This commit is contained in:
风如歌 2024-10-21 06:36:51 +00:00 committed by Gitee
commit e81eeffe40
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
3 changed files with 8 additions and 6 deletions

View File

@ -3,6 +3,7 @@ package org.dromara.oa.core.config;
import org.dromara.oa.api.OaSender; import org.dromara.oa.api.OaSender;
import org.dromara.oa.core.provider.config.OaConfig; import org.dromara.oa.core.provider.config.OaConfig;
import org.dromara.oa.core.provider.factory.OaBaseProviderFactory; import org.dromara.oa.core.provider.factory.OaBaseProviderFactory;
import org.springframework.beans.factory.annotation.Qualifier;
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;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
@ -31,7 +32,7 @@ public class OaSupplierConfig {
protected OaBlendsInitializer smsOasInitializer( protected OaBlendsInitializer smsOasInitializer(
List<OaBaseProviderFactory<? extends OaSender, ? extends org.dromara.oa.comm.config.OaSupplierConfig>> factoryList, List<OaBaseProviderFactory<? extends OaSender, ? extends org.dromara.oa.comm.config.OaSupplierConfig>> factoryList,
OaConfig oaConfig, OaConfig oaConfig,
Map<String, Map<String, Object>> oas) { @Qualifier("oas") Map<String, Map<String, Object>> oas) {
return new OaBlendsInitializer(factoryList,oaConfig,oas); return new OaBlendsInitializer(factoryList,oaConfig,oas);
} }
} }

View File

@ -169,15 +169,15 @@ sms-oa:
oas: oas:
oaDingTalkByYaml: # configId oaDingTalkByYaml: # configId
isEnable: true # 表示该配置是否生效(默认生效,false表示不生效) isEnable: true # 表示该配置是否生效(默认生效,false表示不生效)
supplier: dingding # 厂商标识 supplier: ding_ding # 厂商标识
tokenId: 您的accessKey tokenId: 您的accessKey
sign: 您的sign sign: 您的sign
oaByteTalkByYaml: # configId oaByteTalkByYaml: # configId
supplier: feishu # 厂商标识 supplier: byte_talk # 厂商标识
tokenId: 您的accessKey tokenId: 您的accessKey
sign: 您的sign sign: 您的sign
oaWeTalkByYaml: oaWeTalkByYaml:
supplier: wetalk # 厂商标识 supplier: we_talk # 厂商标识
tokenId: 您的sign tokenId: 您的sign
core-pool-size: 20 core-pool-size: 20
queue-capacity: 20 queue-capacity: 20

View File

@ -9,6 +9,7 @@ import org.dromara.sms4j.core.datainterface.SmsReadConfig;
import org.dromara.sms4j.provider.config.SmsConfig; import org.dromara.sms4j.provider.config.SmsConfig;
import org.dromara.sms4j.provider.factory.BaseProviderFactory; import org.dromara.sms4j.provider.factory.BaseProviderFactory;
import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.ObjectProvider;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
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;
@ -34,7 +35,7 @@ public class SupplierConfig {
@Bean @Bean
@ConditionalOnBean({SmsConfig.class}) @ConditionalOnBean({SmsConfig.class})
@SneakyThrows @SneakyThrows
protected List<BaseProviderFactory<? extends SmsBlend, ? extends org.dromara.sms4j.api.universal.SupplierConfig>> factoryList(Map<String, Map<String, Object>> blends, SmsConfig smsConfig) { protected List<BaseProviderFactory<? extends SmsBlend, ? extends org.dromara.sms4j.api.universal.SupplierConfig>> factoryList(@Qualifier("blends") Map<String, Map<String, Object>> blends, SmsConfig smsConfig) {
//注入自定义实现工厂 //注入自定义实现工厂
List<BaseProviderFactory<? extends SmsBlend, ? extends org.dromara.sms4j.api.universal.SupplierConfig>> factoryList = new ArrayList<>(); List<BaseProviderFactory<? extends SmsBlend, ? extends org.dromara.sms4j.api.universal.SupplierConfig>> factoryList = new ArrayList<>();
if (ConfigType.YAML.equals(smsConfig.getConfigType())) { if (ConfigType.YAML.equals(smsConfig.getConfigType())) {
@ -55,7 +56,7 @@ public class SupplierConfig {
@Bean @Bean
protected SmsBlendsInitializer smsBlendsInitializer(List<BaseProviderFactory<? extends SmsBlend, ? extends org.dromara.sms4j.api.universal.SupplierConfig>> factoryList, protected SmsBlendsInitializer smsBlendsInitializer(List<BaseProviderFactory<? extends SmsBlend, ? extends org.dromara.sms4j.api.universal.SupplierConfig>> factoryList,
SmsConfig smsConfig, SmsConfig smsConfig,
Map<String, Map<String, Object>> blends, @Qualifier("blends") Map<String, Map<String, Object>> blends,
ObjectProvider<SmsReadConfig> extendsSmsConfigs) { ObjectProvider<SmsReadConfig> extendsSmsConfigs) {
return new SmsBlendsInitializer(factoryList, smsConfig, blends, extendsSmsConfigs); return new SmsBlendsInitializer(factoryList, smsConfig, blends, extendsSmsConfigs);
} }