package com.qianwen.core.sms.config; import com.qiniu.sms.SmsManager; import com.qiniu.util.Auth; import com.qianwen.core.redis.cache.BladeRedis; import com.qianwen.core.sms.QiniuSmsTemplate; import com.qianwen.core.sms.props.SmsProperties; 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({SmsManager.class}) @ConditionalOnProperty(value = {"sms.name"}, havingValue = "qiniu") public class QiniuSmsConfiguration { private final BladeRedis bladeRedis; public QiniuSmsConfiguration(final BladeRedis bladeRedis) { this.bladeRedis = bladeRedis; } @Bean public QiniuSmsTemplate qiniuSmsTemplate(SmsProperties smsProperties) { Auth auth = Auth.create(smsProperties.getAccessKey(), smsProperties.getSecretKey()); SmsManager smsManager = new SmsManager(auth); return new QiniuSmsTemplate(smsProperties, smsManager, this.bladeRedis); } }