SmsConfiguration.java 1.08 KB
package cn.iocoder.dashboard.modules.system.sms;

import cn.iocoder.dashboard.framework.sms.SmsClient;
import cn.iocoder.dashboard.framework.sms.SmsClientAdapter;
import cn.iocoder.dashboard.modules.system.controller.sms.vo.SmsChannelAllVO;
import cn.iocoder.dashboard.modules.system.service.sms.SmsChannelService;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

/**
 * 短信服务配置
 *
 * @author guer
 */
@Configuration
@ConditionalOnProperty("sms.enabled")
public class SmsConfiguration {

    @Resource
    private SmsChannelService channelService;

    @Bean
    public SmsClientAdapter smsClientWrapper() {
        List<SmsChannelAllVO> smsChannelAllVOList = channelService.listChannelAllEnabledInfo();
        Map<Long, SmsClient<?>> channelId2SmsClientMap = SmsSenderUtils.init(smsChannelAllVOList);
        return new SmsClientAdapter(channelId2SmsClientMap);
    }

}