package com.qianwen.core.sms.config; import com.github.qcloudsms.SmsMultiSender; import com.qianwen.core.redis.cache.BladeRedis; import com.qianwen.core.sms.TencentSmsTemplate; import com.qianwen.core.sms.props.SmsProperties; import com.qianwen.core.tool.utils.Func; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @EnableConfigurationProperties({SmsProperties.class}) @Configuration(proxyBeanMethods = false) @ConditionalOnClass({SmsMultiSender.class}) @ConditionalOnProperty(value = {"sms.name"}, havingValue = "tencent") public class TencentSmsConfiguration { private final BladeRedis bladeRedis; public TencentSmsConfiguration(final BladeRedis bladeRedis) { this.bladeRedis = bladeRedis; } @Bean public TencentSmsTemplate tencentSmsTemplate(SmsProperties smsProperties) { SmsMultiSender smsSender = new SmsMultiSender(Func.toInt(smsProperties.getAccessKey()), smsProperties.getSecretKey()); return new TencentSmsTemplate(smsProperties, smsSender, this.bladeRedis); } }