content: package org.ruoyi.common.sms.config;
  
  import org.ruoyi.common.sms.config.properties.SmsProperties;
  import org.ruoyi.common.sms.core.AliyunSmsTemplate;
  import org.ruoyi.common.sms.core.SmsTemplate;
  import org.ruoyi.common.sms.core.TencentSmsTemplate;
  import org.springframework.boot.autoconfigure.AutoConfiguration;
  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;
  
  /**
   * 短信配置类
   *
   * @author Lion Li
   * @version 4.2.0
   */
  @AutoConfiguration
  @EnableConfigurationProperties(SmsProperties.class)
  public class SmsConfig {
  
      @Configuration
      @ConditionalOnProperty(value = "sms.enabled", havingValue = "true")
      @ConditionalOnClass(com.aliyun.dysmsapi20170525.Client.class)
      static class AliyunSmsConfig {
  
          @Bean
          public SmsTemplate aliyunSmsTemplate(SmsProperties smsProperties) {
              return new AliyunSmsTemplate(smsProperties);
          }
  
      }
  
      @Configuration
      @ConditionalOnProperty(value = "sms.enabled", havingValue = "true")
      @ConditionalOnClass(com.tencentcloudapi.sms.v20190711.SmsClient.class)
      static class TencentSmsConfig {
  
          @Bean
          public SmsTemplate tencentSmsTemplate(SmsProperties smsProperties) {
              return new TencentSmsTemplate(smsProperties);
          }
  
      }
  
  }
  