浏览代码

协作场景发送邮件

lyhzzz 2 年之前
父节点
当前提交
771ed970dc

+ 3 - 0
src/main/java/com/fdkankan/ucenter/common/BaseController.java

@@ -87,6 +87,9 @@ public class BaseController {
     protected String getToken(){
         return request.getHeader("token");
     }
+    protected String getLang(){
+        return request.getHeader("lang");
+    }
     protected String getSign(){
         return request.getHeader("sign");
     }

+ 4 - 0
src/main/java/com/fdkankan/ucenter/controller/SceneCooperationController.java

@@ -8,6 +8,7 @@ import com.fdkankan.ucenter.entity.SceneCooperation;
 import com.fdkankan.ucenter.service.ISceneCooperationService;
 import com.fdkankan.ucenter.vo.request.SceneCooperationParam;
 import com.fdkankan.ucenter.vo.request.SceneParam;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -53,6 +54,9 @@ public class SceneCooperationController extends BaseController {
     @PostMapping("/save")
     public Result save(@RequestBody SceneCooperationParam param){
         String username = JwtUtil.getUsername(getToken());
+        if(StringUtils.isNotBlank(getLang())){
+            param.setLang(getLang());
+        }
         sceneCooperationService.saveCooperation(param,username);
         return Result.success();
     }

+ 9 - 0
src/main/java/com/fdkankan/ucenter/service/IMailTemplateService.java

@@ -2,6 +2,10 @@ package com.fdkankan.ucenter.service;
 
 import com.fdkankan.ucenter.entity.MailTemplate;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.ucenter.entity.ScenePlus;
+import com.fdkankan.ucenter.entity.ScenePro;
+
+import java.util.List;
 
 /**
  * <p>
@@ -34,4 +38,9 @@ public interface IMailTemplateService extends IService<MailTemplate> {
      * 发送会员权益今天过期
      */
     Boolean sendPeTodayExMail(String email);
+
+    /**
+     * 发送协作邮件
+     */
+    Boolean sendSceneCooperation(List<ScenePro> proList, List<ScenePlus> plusList, String username,String lang);
 }

+ 44 - 0
src/main/java/com/fdkankan/ucenter/service/impl/MailTemplateServiceImpl.java

@@ -4,13 +4,18 @@ 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.MailTemplate;
+import com.fdkankan.ucenter.entity.ScenePlus;
+import com.fdkankan.ucenter.entity.ScenePro;
 import com.fdkankan.ucenter.mapper.IMailTemplateMapper;
 import com.fdkankan.ucenter.service.IMailTemplateService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.ucenter.util.SendMailUtils;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  *  服务实现类
@@ -20,6 +25,7 @@ import org.springframework.stereotype.Service;
  * @since 2023-01-10
  */
 @Service
+@Slf4j
 public class MailTemplateServiceImpl extends ServiceImpl<IMailTemplateMapper, MailTemplate> implements IMailTemplateService {
 
     @Override
@@ -77,4 +83,42 @@ public class MailTemplateServiceImpl extends ServiceImpl<IMailTemplateMapper, Ma
         MailTemplate mailTemplate = this.getTemplate(5,"en");
         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;
+            }
+            String sceneName = null;
+            for (ScenePro scenePro : proList) {
+                sceneName = scenePro.getSceneName();
+            }
+            for (ScenePlus scenePlus : plusList) {
+                sceneName = scenePlus.getTitle();
+            }
+            if(StringUtils.isBlank(sceneName)){
+                return false;
+            }
+            MailTemplate mailTemplate = this.getTemplate(6,lang);
+            if(mailTemplate != null){
+                String msg = mailTemplate.getMsg();
+                if(StringUtils.isNotBlank(sceneName)){
+                    msg = msg.replace("{sceneName}",sceneName);
+                }
+
+                String subject = mailTemplate.getSubject();
+                if(StringUtils.isNotBlank(sceneName)){
+                    subject = subject.replace("{sceneName}",sceneName);
+                }
+
+                mailTemplate.setMsg(msg);
+                mailTemplate.setSubject(subject);
+            }
+            return sendMail(username,mailTemplate,null);
+        }catch (Exception e){
+            log.error("邮件发送失败,type:{},error:{}","协作场景邮件",e);
+        }
+       return false;
+    }
 }

+ 3 - 0
src/main/java/com/fdkankan/ucenter/service/impl/SceneCooperationServiceImpl.java

@@ -57,6 +57,8 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
     IUserService userService;
     @Autowired
     RedisUtil redisUtil;
+    @Autowired
+    IMailTemplateService mailTemplateService;
 
     @Override
     public Long getCooperationSceneNum(Long userId, List<Integer> sceneSourceList) {
@@ -241,6 +243,7 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
             }
         }
         this.saveBatchByList(proList,plusList,user.getId(),resourceIdList);
+        mailTemplateService.sendSceneCooperation(proList,plusList,param.getUserName(),param.getLang());
     }
 
     @Override

+ 2 - 0
src/main/java/com/fdkankan/ucenter/vo/request/SceneCooperationParam.java

@@ -14,4 +14,6 @@ public class SceneCooperationParam {
 
     private String userName;
     private String resourceIds;
+
+    private String lang = "en";
 }