package com.qianwen.core.sms.config; import com.yunpian.sdk.YunpianClient; import com.qianwen.core.redis.cache.BladeRedis; import com.qianwen.core.sms.YunpianSmsTemplate; 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({YunpianClient.class}) @ConditionalOnProperty(value = {"sms.name"}, havingValue = "yunpian") public class YunpianSmsConfiguration { private final BladeRedis bladeRedis; public YunpianSmsConfiguration(final BladeRedis bladeRedis) { this.bladeRedis = bladeRedis; } @Bean public YunpianSmsTemplate yunpianSmsTemplate(SmsProperties smsProperties) { YunpianClient client = new YunpianClient(smsProperties.getAccessKey()).init(); return new YunpianSmsTemplate(smsProperties, client, this.bladeRedis); } }