package com.fdkankan.agent.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fdkankan.agent.common.ResultCode;
import com.fdkankan.agent.config.AgentConfig;
import com.fdkankan.agent.entity.MailTemplate;
import com.fdkankan.agent.exception.BusinessException;
import com.fdkankan.agent.mapper.IMailTemplateMapper;
import com.fdkankan.agent.service.IMailTemplateService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.agent.util.SendMailUtils;
import com.fdkankan.sms.SmsService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
/**
*
* 服务实现类
*
*
* @author
* @since 2025-03-20
*/
@Service
@Slf4j
public class MailTemplateServiceImpl extends ServiceImpl implements IMailTemplateService {
@Autowired
AgentConfig agentConfig;
@Autowired
SmsService smsService;
@Override
public Boolean sendMail(String email , MailTemplate mailTemplate, String file) {
if(mailTemplate == null){
throw new BusinessException(ResultCode.ERROR);
}
return SendMailUtils.sendMail(mailTemplate.getSendMail(), mailTemplate.getSendPassword(), mailTemplate.getSendHost(),
email, mailTemplate.getSubject(), mailTemplate.getMsg(), file);
}
@Override
public void sendAuthExpMail(String userName) {
MailTemplate mailTemplate = this.getTemplate(11);
if(mailTemplate != null){
String msg = mailTemplate.getMsg();
if(StringUtils.isNotBlank(msg)){
msg = msg.replace("{day}",agentConfig.getAuthExpDay().toString());
}
mailTemplate.setMsg(msg);
}
try {
if("eur".equals(agentConfig.getEnvironment())){
sendMail(userName,mailTemplate,null);
}else {
smsService.sendSms(userName, agentConfig.getAuthExpDay().toString(), agentConfig.getSmsTemplateCode());
}
}catch (Exception e){
log.info("发送邮件或短信失败:{}",userName);
}
}
public MailTemplate getTemplate(Integer type) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(MailTemplate::getType,type);
return this.getOne(wrapper);
}
}