Эх сурвалжийг харах

邮件批量删除、批量已读

24282 2 жил өмнө
parent
commit
f03eeff49c

+ 20 - 1
hx-mail/src/main/java/com/fjhx/mail/controller/message/MailController.java

@@ -4,8 +4,10 @@ import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
 import com.fjhx.mail.config.MailServiceConfig;
+import com.fjhx.mail.entity.message.dto.DeleteBatchMailDto;
 import com.fjhx.mail.entity.message.dto.DeleteMailDto;
 import com.fjhx.mail.entity.message.dto.SendDto;
+import com.fjhx.mail.entity.message.dto.SetSeenDto;
 import com.fjhx.mail.service.message.InfoService;
 import com.ruoyi.common.annotation.NonInterception;
 import com.ruoyi.common.utils.SecurityUtils;
@@ -63,11 +65,28 @@ public class MailController {
     }
 
     /**
-     * 删除邮
+     * 删除邮
      */
     @PostMapping("/deleteMail")
     public void deleteMail(@Validated @RequestBody DeleteMailDto dto) {
         infoService.deleteMail(dto);
     }
 
+    /**
+     * 批量删除邮件
+     */
+    @PostMapping("/deleteBatchMail")
+    public void deleteBatchMail(@Validated @RequestBody DeleteBatchMailDto dto) {
+        infoService.deleteBatchMail(dto);
+    }
+
+    /**
+     * 设置已读
+     */
+    @NonInterception
+    @PostMapping("/setSeen")
+    public JSONObject setSeen(@Validated @RequestBody SetSeenDto dto) {
+        return infoService.setSeen(dto);
+    }
+
 }

+ 23 - 0
hx-mail/src/main/java/com/fjhx/mail/entity/message/dto/DeleteBatchMailDto.java

@@ -0,0 +1,23 @@
+package com.fjhx.mail.entity.message.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+@Getter
+@Setter
+public class DeleteBatchMailDto {
+
+    /**
+     * 1个人邮箱 2企业邮箱
+     */
+    @NotNull(message = "类型不能为空")
+    private Integer type;
+
+    @NotEmpty(message = "邮件id不能为空")
+    private List<Long> idList;
+
+}

+ 1 - 1
hx-mail/src/main/java/com/fjhx/mail/entity/message/dto/DeleteMailDto.java

@@ -12,7 +12,7 @@ public class DeleteMailDto {
     /**
      * 1个人邮箱 2企业邮箱
      */
-    @NotNull(message = "类型不能空")
+    @NotNull(message = "类型不能空")
     private Integer type;
 
     @NotNull(message = "邮件id不能为空")

+ 1 - 1
hx-mail/src/main/java/com/fjhx/mail/entity/message/dto/SendDto.java

@@ -16,7 +16,7 @@ public class SendDto {
     /**
      * 1个人邮箱 2企业邮箱
      */
-    @NotNull(message = "类型不能空")
+    @NotNull(message = "类型不能空")
     private Integer type;
 
     /**

+ 32 - 0
hx-mail/src/main/java/com/fjhx/mail/entity/message/dto/SetSeenDto.java

@@ -0,0 +1,32 @@
+package com.fjhx.mail.entity.message.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+@Getter
+@Setter
+public class SetSeenDto {
+
+    @NotNull(message = "文件夹名称不能为空")
+    private String folderName;
+
+    @NotEmpty(message = "邮件uid不能为空")
+    private List<Long> uidList;
+
+    /**
+     * 1个人邮箱 2企业邮箱
+     */
+    @NotNull(message = "类型不能为空")
+    private Integer type;
+
+    /**
+     * 邮箱id
+     */
+    @NotNull(message = "邮箱id不能为空")
+    private Long mailboxId;
+
+}

+ 14 - 1
hx-mail/src/main/java/com/fjhx/mail/service/message/InfoService.java

@@ -1,7 +1,10 @@
 package com.fjhx.mail.service.message;
 
+import com.alibaba.fastjson2.JSONObject;
+import com.fjhx.mail.entity.message.dto.DeleteBatchMailDto;
 import com.fjhx.mail.entity.message.dto.DeleteMailDto;
 import com.fjhx.mail.entity.message.dto.SendDto;
+import com.fjhx.mail.entity.message.dto.SetSeenDto;
 import com.ruoyi.common.core.domain.entity.SysUser;
 
 import java.util.List;
@@ -19,7 +22,7 @@ public interface InfoService {
     String sendMail(SendDto dto);
 
     /**
-     * 删除邮
+     * 删除邮
      */
     void deleteMail(DeleteMailDto dto);
 
@@ -28,4 +31,14 @@ public interface InfoService {
      */
     List<SysUser> getExistMailUserList();
 
+    /**
+     * 批量删除邮件
+     */
+    void deleteBatchMail(DeleteBatchMailDto dto);
+
+    /**
+     * 设置已读
+     */
+    JSONObject setSeen(SetSeenDto dto);
+
 }

+ 65 - 44
hx-mail/src/main/java/com/fjhx/mail/service/message/impl/InfoServiceImpl.java

@@ -3,14 +3,17 @@ package com.fjhx.mail.service.message.impl;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.mail.config.MailServiceConfig;
 import com.fjhx.mail.entity.enterprise.po.EnterpriseDomain;
 import com.fjhx.mail.entity.enterprise.po.EnterpriseMailbox;
+import com.fjhx.mail.entity.message.dto.DeleteBatchMailDto;
 import com.fjhx.mail.entity.message.dto.DeleteMailDto;
 import com.fjhx.mail.entity.message.dto.SendDto;
+import com.fjhx.mail.entity.message.dto.SetSeenDto;
 import com.fjhx.mail.entity.personal.po.PersonalMailbox;
 import com.fjhx.mail.service.enterprise.EnterpriseDomainService;
 import com.fjhx.mail.service.enterprise.EnterpriseMailboxService;
@@ -91,50 +94,8 @@ public class InfoServiceImpl implements InfoService {
 
     @Override
     public String sendMail(SendDto dto) {
-        Integer type = dto.getType();
-        Long mailboxId = dto.getMailboxId();
-        String urlPrefix;
-
-        StringJoiner urlJoiner = new StringJoiner("/");
-        urlJoiner.add("sendMail");
-
-        if (type == 1) {
-            PersonalMailbox personalMailbox = personalMailboxService.getById(mailboxId);
-            if (personalMailbox == null) {
-                throw new ServiceException("未找到个人邮箱");
-            }
-
-            urlJoiner.add(personalMailbox.getSendHost());
-            urlJoiner.add(personalMailbox.getMailUser());
-            urlJoiner.add(personalMailbox.getMailPassword());
-
-            if (Objects.equals(personalMailbox.getType(), 2)) {
-                urlPrefix = MailServiceConfig.abroadUrlPrefix;
-            } else {
-                urlPrefix = MailServiceConfig.urlPrefix;
-            }
-        } else {
-
-            EnterpriseMailbox enterpriseMailbox = enterpriseMailboxService.getById(mailboxId);
-            if (enterpriseMailbox == null) {
-                throw new ServiceException("未找到企业邮箱");
-            }
-            EnterpriseDomain enterpriseDomain = enterpriseDomainService.getById(enterpriseMailbox.getDomainId());
-            if (enterpriseDomain == null) {
-                throw new ServiceException("未找到企业邮箱配置");
-            }
-            urlJoiner.add(enterpriseDomain.getSendHost());
-            urlJoiner.add(enterpriseMailbox.getMailUserPrefix() + "@" + enterpriseDomain.getDomainName());
-            urlJoiner.add(enterpriseMailbox.getMailPassword());
-
-            if (Objects.equals(enterpriseDomain.getType(), 2)) {
-                urlPrefix = MailServiceConfig.abroadUrlPrefix;
-            } else {
-                urlPrefix = MailServiceConfig.urlPrefix;
-            }
-        }
-
-        return HttpUtil.post(urlPrefix + urlJoiner, JSON.toJSONString(dto));
+        String sendMail = getUrl("sendMail", dto.getType(), dto.getMailboxId());
+        return HttpUtil.post(sendMail, JSON.toJSONString(dto));
     }
 
     @Override
@@ -173,6 +134,22 @@ public class InfoServiceImpl implements InfoService {
 
     }
 
+    @Override
+    public void deleteBatchMail(DeleteBatchMailDto dto) {
+        if (dto.getType().equals(1)) {
+            personalMessageService.removeBatchByIds(dto.getIdList());
+        } else {
+            enterpriseMessageService.removeBatchByIds(dto.getIdList());
+        }
+    }
+
+    @Override
+    public JSONObject setSeen(SetSeenDto dto) {
+        String url = getUrl("setSeen", dto.getType(), dto.getMailboxId());
+        String post = HttpUtil.post(url, JSON.toJSONString(dto));
+        return JSONObject.parseObject(post);
+    }
+
     private void subordinateDeptId(Long deptId, Set<Long> deptSet, Map<Long, List<SysDept>> parentDeptMap) {
         deptSet.add(deptId);
 
@@ -188,5 +165,49 @@ public class InfoServiceImpl implements InfoService {
 
     }
 
+    private String getUrl(String prefix, Integer type, Long mailboxId) {
+        String urlPrefix;
+
+        StringJoiner urlJoiner = new StringJoiner("/");
+        urlJoiner.add(prefix);
+
+        if (type == 1) {
+            PersonalMailbox personalMailbox = personalMailboxService.getById(mailboxId);
+            if (personalMailbox == null) {
+                throw new ServiceException("未找到个人邮箱");
+            }
+
+            urlJoiner.add(personalMailbox.getSendHost());
+            urlJoiner.add(personalMailbox.getMailUser());
+            urlJoiner.add(personalMailbox.getMailPassword());
+
+            if (Objects.equals(personalMailbox.getType(), 2)) {
+                urlPrefix = MailServiceConfig.abroadUrlPrefix;
+            } else {
+                urlPrefix = MailServiceConfig.urlPrefix;
+            }
+        } else {
+            EnterpriseMailbox enterpriseMailbox = enterpriseMailboxService.getById(mailboxId);
+            if (enterpriseMailbox == null) {
+                throw new ServiceException("未找到企业邮箱");
+            }
+            EnterpriseDomain enterpriseDomain = enterpriseDomainService.getById(enterpriseMailbox.getDomainId());
+            if (enterpriseDomain == null) {
+                throw new ServiceException("未找到企业邮箱配置");
+            }
+            urlJoiner.add(enterpriseDomain.getSendHost());
+            urlJoiner.add(enterpriseMailbox.getMailUserPrefix() + "@" + enterpriseDomain.getDomainName());
+            urlJoiner.add(enterpriseMailbox.getMailPassword());
+
+            if (Objects.equals(enterpriseDomain.getType(), 2)) {
+                urlPrefix = MailServiceConfig.abroadUrlPrefix;
+            } else {
+                urlPrefix = MailServiceConfig.urlPrefix;
+            }
+        }
+
+        return urlPrefix + urlJoiner;
+    }
+
 
 }