123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270 |
- 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.NacosProperty;
- import com.fdkankan.ucenter.common.constants.ResultCodeMsg;
- import com.fdkankan.ucenter.entity.*;
- import com.fdkankan.ucenter.mapper.IMailTemplateMapper;
- import com.fdkankan.ucenter.mq.vo.LaserSendMail;
- 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;
- /**
- * <p>
- * 服务实现类
- * </p>
- *
- * @author
- * @since 2023-01-10
- */
- @Service
- @Slf4j
- public class MailTemplateServiceImpl extends ServiceImpl<IMailTemplateMapper, MailTemplate> implements IMailTemplateService {
- @Autowired
- IScenePlusExtService scenePlusExtService;
- @Override
- public Boolean sendMail(String email , MailTemplate mailTemplate, String file) {
- if(mailTemplate == null){
- throw new BusinessException(ResultCodeMsg.FAILURE_CODE_400005, ResultCodeMsg.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) {
- if(NacosProperty.uploadType.equals("aws")){
- lang = "en";
- }else {
- lang = "zh";
- }
- LambdaQueryWrapper<MailTemplate> 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,String memberLevels) {
- MailTemplate mailTemplate = this.getTemplate(3,"en");
- if(mailTemplate != null){
- String msg = mailTemplate.getMsg();
- if(StringUtils.isNotBlank(memberLevels)){
- msg = msg.replace("{memberLevels}",getMemberLeversMsg(memberLevels));
- msg = msg.replace("{money}",getMoney(memberLevels));
- msg = msg.replace("{time}",getTime(memberLevels));
- }
- mailTemplate.setMsg(msg);
- }
- return sendMail(email,mailTemplate,null);
- }
- @Override
- public Boolean sendPeNoExMail(String email,Integer day,String memberLevels) {
- MailTemplate mailTemplate = this.getTemplate(4,"en");
- if(mailTemplate != null){
- String msg = mailTemplate.getMsg();
- if(StringUtils.isNotBlank(memberLevels)){
- msg = msg.replace("{memberLevels}",getMemberLeversMsg(memberLevels));
- msg = msg.replace("{money}",getMoney(memberLevels));
- msg = msg.replace("{time}",getTime(memberLevels));
- }
- 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,String memberLevels) {
- MailTemplate mailTemplate = this.getTemplate(5,"en");
- if(mailTemplate != null){
- String msg = mailTemplate.getMsg();
- if(StringUtils.isNotBlank(memberLevels)){
- msg = msg.replace("{memberLevels}",getMemberLeversMsg(memberLevels));
- msg = msg.replace("{money}",getMoney(memberLevels));
- msg = msg.replace("{time}",getTime(memberLevels));
- }
- mailTemplate.setMsg(msg);
- }
- return sendMail(email,mailTemplate,null);
- }
- @Override
- public Boolean sendSceneCooperation(List<ScenePro> proList, List<ScenePlus> 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("<br>");
- }
- for (ScenePlus scenePlus : plusList) {
- ScenePlusExt scenePlusExt = scenePlusExtService.getByPlusId(scenePlus.getId());
- if(scenePlusExt != null){
- webSites.append(scenePlusExt.getWebSite()).append("<br>");
- }
- }
- 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 sendSceneCooperation(List<LaserSendMail> vos) {
- try {
- if(vos.isEmpty()){
- return false;
- }
- StringBuilder webSites = new StringBuilder();
- String username = null;
- for (LaserSendMail vo : vos) {
- username = vo.getUserName();
- webSites.append(vo.getWebSite()).append("<br>");
- }
- if(StringUtils.isBlank(username)){
- return false;
- }
- if(StringUtils.isBlank(webSites)){
- return false;
- }
- MailTemplate mailTemplate = this.getTemplate(6,"en");
- 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<Long, Camera> 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).getWifiName()).append("<br>");
- }
- }
- 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;
- }
- @Override
- public void sendPayErrorMail(String email,String memberLevels) {
- MailTemplate mailTemplate = this.getTemplate(9,"en");
- if(mailTemplate != null){
- String msg = mailTemplate.getMsg();
- if(StringUtils.isNotBlank(memberLevels)){
- msg = msg.replace("{memberLevels}",getMemberLeversMsg(memberLevels));
- msg = msg.replace("{money}",getMoney(memberLevels));
- msg = msg.replace("{time}",getTime(memberLevels));
- }
- mailTemplate.setMsg(msg);
- }
- sendMail(email,mailTemplate,null);
- }
- @Override
- public void sendSubcriptionCancelledMail(String email, String memberLevels) {
- MailTemplate mailTemplate = this.getTemplate(10,"en");
- if(mailTemplate != null){
- String msg = mailTemplate.getMsg();
- if(StringUtils.isNotBlank(memberLevels)){
- //PREMIUM/SENIOR
- msg = msg.replace("{memberLevels}",getMemberLeversMsg(memberLevels));
- }
- mailTemplate.setMsg(msg);
- }
- sendMail(email,mailTemplate,null);
- }
- public String getMemberLeversMsg(String memberLevels){
- switch (memberLevels){
- case "PR" :return "PREMIUM";
- case "SE" :return "SENIOR";
- }
- return "PREMIUM/SENIOR";
- }
- public String getTime(String memberLevels){
- switch (memberLevels){
- case "PR" :return "year";
- case "SE" :return "month";
- }
- return "year/month";
- }
- public String getMoney(String memberLevels){
- switch (memberLevels){
- case "PR" :return "$980";
- case "SE" :return "$40";
- }
- return "$980/$40";
- }
- }
|