package com.fdkankan.ucenter.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.fdkankan.common.exception.BusinessException; import com.fdkankan.ucenter.common.constants.ResultCode; import com.fdkankan.ucenter.entity.*; import com.fdkankan.ucenter.mapper.IMailTemplateMapper; import com.fdkankan.ucenter.service.IMailTemplateService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fdkankan.ucenter.service.IScenePlusExtService; import com.fdkankan.ucenter.util.SendMailUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.List; /** *

* 服务实现类 *

* * @author * @since 2023-01-10 */ @Service @Slf4j public class MailTemplateServiceImpl extends ServiceImpl implements IMailTemplateService { @Autowired IScenePlusExtService scenePlusExtService; @Override public Boolean sendMail(String email , MailTemplate mailTemplate, String file) { if(mailTemplate == null){ throw new BusinessException(ResultCode.FAILURE_CODE_400005,ResultCode.FAILURE_MSG_400005); } return SendMailUtils.sendMail(mailTemplate.getSendMail(), mailTemplate.getSendPassword(), mailTemplate.getSendHost(), email, mailTemplate.getSubject(), mailTemplate.getMsg(), file); } @Override public MailTemplate getTemplate(Integer type,String lang) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(MailTemplate::getType,type); wrapper.eq(MailTemplate::getLang,lang); return this.getOne(wrapper); } @Override public Boolean sendCodeMail(String email, String code,String lang) { MailTemplate mailTemplate = this.getTemplate(2,lang); if(mailTemplate != null){ String msg = mailTemplate.getMsg(); if(StringUtils.isNotBlank(code)){ msg = msg.replace("{code}",code); } mailTemplate.setMsg(msg); } return sendMail(email,mailTemplate,null); } @Override public Boolean sendPeExMail(String email) { MailTemplate mailTemplate = this.getTemplate(3,"en"); return sendMail(email,mailTemplate,null); } @Override public Boolean sendPeNoExMail(String email,Integer day) { MailTemplate mailTemplate = this.getTemplate(4,"en"); if(mailTemplate != null){ String msg = mailTemplate.getMsg(); if(day != null && day >0){ msg = msg.replace("{day}",day.toString()); } mailTemplate.setMsg(msg); } return sendMail(email,mailTemplate,null); } @Override public Boolean sendPeTodayExMail(String email) { MailTemplate mailTemplate = this.getTemplate(5,"en"); return sendMail(email,mailTemplate,null); } @Override public Boolean sendSceneCooperation(List proList, List plusList, String username,String lang) { try { if(proList.size()<=0 && plusList.size() <=0){ return false; } StringBuilder webSites = new StringBuilder(); for (ScenePro scenePro : proList) { webSites.append(scenePro.getWebSite()).append("

 

"); } for (ScenePlus scenePlus : plusList) { ScenePlusExt scenePlusExt = scenePlusExtService.getByPlusId(scenePlus.getId()); if(scenePlusExt != null){ webSites.append(scenePlusExt.getWebSite()).append("

 

"); } } if(StringUtils.isBlank(webSites)){ return false; } MailTemplate mailTemplate = this.getTemplate(6,lang); if(mailTemplate != null){ String msg = mailTemplate.getMsg(); if(StringUtils.isNotBlank(webSites)){ msg = msg.replace("{sceneWebSites}",webSites.toString()); } mailTemplate.setMsg(msg); } return sendMail(username,mailTemplate,null); }catch (Exception e){ log.error("邮件发送失败,type:{},error:{}","协作场景邮件",e); } return false; } @Override public Boolean sendCameraCooperation(HashMap cameraMap, String username, String lang) { try { if(cameraMap.size()<=0 ){ return false; } StringBuilder snCodes = new StringBuilder(); for (Long cameraId : cameraMap.keySet()) { if(cameraMap.get(cameraId) != null){ snCodes.append(cameraMap.get(cameraId).getSnCode()).append("

 

"); } } if(StringUtils.isBlank(snCodes)){ return false; } MailTemplate mailTemplate = this.getTemplate(8,lang); if(mailTemplate != null){ String msg = mailTemplate.getMsg(); if(StringUtils.isNotBlank(snCodes)){ msg = msg.replace("{snCodes}",snCodes.toString()); } mailTemplate.setMsg(msg); } return sendMail(username,mailTemplate,null); }catch (Exception e){ log.error("邮件发送失败,type:{},error:{}","协作场景邮件",e); } return false; } }