package cn.lili.modules.sms.plugin;
|
|
import cn.hutool.json.JSONUtil;
|
import cn.lili.common.exception.ServiceException;
|
import cn.lili.modules.sms.entity.enums.SmsEnum;
|
import cn.lili.modules.sms.plugin.impl.AliSmsPlugin;
|
import cn.lili.modules.sms.plugin.impl.HuaweiSmsPlugin;
|
import cn.lili.modules.sms.plugin.impl.TencentSmsPlugin;
|
import cn.lili.modules.system.entity.dos.Setting;
|
import cn.lili.modules.system.entity.dto.SmsSetting;
|
import cn.lili.modules.system.entity.enums.SettingEnum;
|
import cn.lili.modules.system.service.SettingService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
/**
|
* 短信服务抽象工厂 直接返回操作类
|
*
|
* @author Bulbasaur
|
* @version v1.0
|
* @since 2023-02-16
|
*/
|
@Component
|
public class SmsPluginFactory {
|
|
@Autowired
|
private SettingService settingService;
|
|
|
/**
|
* 获取oss client
|
*
|
* @return
|
*/
|
public SmsPlugin smsPlugin() {
|
|
SmsSetting smsSetting = null;
|
try {
|
Setting setting = settingService.get(SettingEnum.SMS_SETTING.name());
|
|
smsSetting = JSONUtil.toBean(setting.getSettingValue(), SmsSetting.class);
|
|
|
switch (SmsEnum.valueOf(smsSetting.getType())) {
|
|
case ALI:
|
return new AliSmsPlugin(smsSetting);
|
case TENCENT:
|
return new TencentSmsPlugin(smsSetting);
|
case HUAWEI:
|
return new HuaweiSmsPlugin(smsSetting);
|
default:
|
throw new ServiceException();
|
}
|
} catch (Exception e) {
|
throw new ServiceException();
|
}
|
}
|
}
|