lyhzzz 11 月之前
父节点
当前提交
f05a8795db

+ 59 - 0
src/main/java/com/fdkankan/ucenter/mq/consumer/LaserSendMailConsumer.java

@@ -0,0 +1,59 @@
+package com.fdkankan.ucenter.mq.consumer;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fdkankan.ucenter.mq.vo.LaserSendMail;
+import com.fdkankan.ucenter.mq.vo.ScenePayStatusVo;
+import com.fdkankan.ucenter.service.IMailTemplateService;
+import com.fdkankan.ucenter.service.ISceneProService;
+import com.rabbitmq.client.Channel;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.core.Message;
+import org.springframework.amqp.rabbit.annotation.Queue;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.nio.charset.StandardCharsets;
+import java.util.List;
+
+/**
+ * 场景封存解封 mq
+ */
+@Slf4j
+@Component
+public class LaserSendMailConsumer {
+
+
+    @Autowired
+    IMailTemplateService mailTemplateService;
+
+    @RabbitListener(
+            queuesToDeclare = @Queue("${send-cooperation-email:send-cooperation-email}")
+            ,concurrency = "1"
+    )
+    public void consumerQueue(Channel channel, Message message)  {
+        try {
+            String messageId = message.getMessageProperties().getMessageId();
+            String msg = new String(message.getBody(), StandardCharsets.UTF_8);
+            log.info("send-cooperation-email-mq--messageId:{},msg:{}",messageId,msg);
+
+            channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
+
+            JSONObject jsonObject = JSONObject.parseObject(msg);
+            if(jsonObject == null){
+                return;
+            }
+            List<LaserSendMail> vo = JSONObject.parseArray(jsonObject.getString("data"), LaserSendMail.class);
+            if(vo == null || vo.isEmpty()){
+                return;
+            }
+            mailTemplateService.sendSceneCooperation(vo);
+        }catch (Exception e){
+            log.info("send-cooperation-email----消费失败",e);
+        }finally {
+
+        }
+
+    }
+
+}

+ 11 - 0
src/main/java/com/fdkankan/ucenter/mq/vo/LaserSendMail.java

@@ -0,0 +1,11 @@
+package com.fdkankan.ucenter.mq.vo;
+
+import lombok.Data;
+
+@Data
+public class LaserSendMail {
+    private String num;
+    private String userName;
+    private String webSite;
+    private String title;
+}

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

@@ -5,6 +5,7 @@ import com.fdkankan.ucenter.entity.MailTemplate;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.ucenter.entity.ScenePlus;
 import com.fdkankan.ucenter.entity.ScenePlus;
 import com.fdkankan.ucenter.entity.ScenePro;
 import com.fdkankan.ucenter.entity.ScenePro;
+import com.fdkankan.ucenter.mq.vo.LaserSendMail;
 
 
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.List;
 import java.util.List;
@@ -45,6 +46,7 @@ public interface IMailTemplateService extends IService<MailTemplate> {
      * 发送协作邮件
      * 发送协作邮件
      */
      */
     Boolean sendSceneCooperation(List<ScenePro> proList, List<ScenePlus> plusList, String username,String lang);
     Boolean sendSceneCooperation(List<ScenePro> proList, List<ScenePlus> plusList, String username,String lang);
+    Boolean sendSceneCooperation(List<LaserSendMail> vo);
 
 
     Boolean sendCameraCooperation(HashMap<Long, Camera> cameraMap, String username, String lang);
     Boolean sendCameraCooperation(HashMap<Long, Camera> cameraMap, String username, String lang);
 
 

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

@@ -7,6 +7,7 @@ import com.fdkankan.ucenter.common.constants.NacosProperty;
 import com.fdkankan.ucenter.common.constants.ResultCode;
 import com.fdkankan.ucenter.common.constants.ResultCode;
 import com.fdkankan.ucenter.entity.*;
 import com.fdkankan.ucenter.entity.*;
 import com.fdkankan.ucenter.mapper.IMailTemplateMapper;
 import com.fdkankan.ucenter.mapper.IMailTemplateMapper;
+import com.fdkankan.ucenter.mq.vo.LaserSendMail;
 import com.fdkankan.ucenter.service.IMailTemplateService;
 import com.fdkankan.ucenter.service.IMailTemplateService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.ucenter.service.IScenePlusExtService;
 import com.fdkankan.ucenter.service.IScenePlusExtService;
@@ -152,6 +153,38 @@ public class MailTemplateServiceImpl extends ServiceImpl<IMailTemplateMapper, Ma
         }
         }
         return false;
         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
     @Override
     public Boolean sendCameraCooperation(HashMap<Long, Camera> cameraMap, String username, String lang) {
     public Boolean sendCameraCooperation(HashMap<Long, Camera> cameraMap, String username, String lang) {