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); } }