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

+ 8 - 7
src/main/java/com/fjhx/config/CodeGeneration.java

@@ -24,13 +24,14 @@ public class CodeGeneration {
                     builder.parent("com.fjhx"); // 设置父包名
                 })
                 .strategyConfig(builder -> builder
-                        // 设置需要生成的表名
-                        .addInclude("email_message_attachment")
-                        .entityBuilder()
-                        .disableSerialVersionUID()
-                        .superClass(BaseEntity.class)
-                        .enableLombok()
-                        .addIgnoreColumns("create_time", "update_time"))
+                                // 设置需要生成的表名
+                                .addInclude("email_message_content")
+                                .entityBuilder()
+                                .disableSerialVersionUID()
+                                .superClass(BaseEntity.class)
+                                .enableLombok()
+                        // .addIgnoreColumns("create_time", "update_time")
+                )
                 .execute();
     }
 

+ 11 - 0
src/main/java/com/fjhx/constants/LockConstant.java

@@ -0,0 +1,11 @@
+package com.fjhx.constants;
+
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+
+public interface LockConstant {
+
+    ReentrantReadWriteLock reentrantLock = new ReentrantReadWriteLock();
+    ReentrantReadWriteLock.ReadLock readLock = reentrantLock.readLock();
+    ReentrantReadWriteLock.WriteLock writeLock = reentrantLock.writeLock();
+
+}

+ 18 - 0
src/main/java/com/fjhx/controller/EmailMessageContentController.java

@@ -0,0 +1,18 @@
+package com.fjhx.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ * 邮件正文 前端控制器
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-01-10
+ */
+@Controller
+@RequestMapping("/emailMessageContent")
+public class EmailMessageContentController {
+
+}

+ 14 - 15
src/main/java/com/fjhx/entity/EmailMessage.java

@@ -1,10 +1,10 @@
 package com.fjhx.entity;
 
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.fjhx.base.BaseEntity;
+import com.baomidou.mybatisplus.annotation.*;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.io.Serializable;
 import java.util.Date;
 
 /**
@@ -18,22 +18,25 @@ import java.util.Date;
 @Getter
 @Setter
 @TableName("email_message")
-public class EmailMessage extends BaseEntity {
+public class EmailMessage implements Serializable {
+
+    private static final long serialVersionUID = 1L;
 
     /**
-     * 件id
+     * 件id
      */
+    @TableId(value = "message_id", type = IdType.INPUT)
     private String messageId;
 
     /**
-     * 电子邮件id
+     * 电子邮件
      */
-    private Long emailInfoId;
+    private String email;
 
     /**
-     * 电子邮件
+     * 电子邮件id
      */
-    private String email;
+    private Long emailInfoId;
 
     /**
      * 是否未读
@@ -66,13 +69,9 @@ public class EmailMessage extends BaseEntity {
     private String fromAddress;
 
     /**
-     * 邮件内容
-     */
-    private String htmlContent;
-
-    /**
-     * 逻辑删除
+     * 创建时间
      */
-    private Integer delFlag;
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
 
 }

+ 16 - 11
src/main/java/com/fjhx/entity/EmailMessageAttachment.java

@@ -1,10 +1,12 @@
 package com.fjhx.entity;
 
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.fjhx.base.BaseEntity;
+import com.baomidou.mybatisplus.annotation.*;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.io.Serializable;
+import java.util.Date;
+
 /**
  * <p>
  * 文件附件
@@ -16,21 +18,19 @@ import lombok.Setter;
 @Getter
 @Setter
 @TableName("email_message_attachment")
-public class EmailMessageAttachment extends BaseEntity {
+public class EmailMessageAttachment implements Serializable {
+
+    private static final long serialVersionUID = 1L;
 
     /**
      * 附件id
      */
+    @TableId(value = "attachment_id", type = IdType.INPUT)
     private String attachmentId;
 
     /**
      * 文件id
      */
-    private Long emailMessageId;
-
-    /**
-     * 文件id
-     */
     private String messageId;
 
     /**
@@ -39,14 +39,19 @@ public class EmailMessageAttachment extends BaseEntity {
     private String name;
 
     /**
+     * 附件大小
+     */
+    private Integer size;
+
+    /**
      * 附件地址
      */
     private String path;
 
     /**
-     * 附件大小
+     * 创建时间
      */
-    private Integer size;
-
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
 
 }

+ 42 - 0
src/main/java/com/fjhx/entity/EmailMessageContent.java

@@ -0,0 +1,42 @@
+package com.fjhx.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 邮件正文
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-01-10
+ */
+@Getter
+@Setter
+@TableName("email_message_content")
+public class EmailMessageContent implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 邮件id
+     */
+    @TableId(value = "message_id", type = IdType.INPUT)
+    private String messageId;
+
+    /**
+     * 正文内容
+     */
+    private String htmlContent;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+}

+ 15 - 8
src/main/java/com/fjhx/entity/EmailMessageSend.java

@@ -1,10 +1,12 @@
 package com.fjhx.entity;
 
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.fjhx.base.BaseEntity;
+import com.baomidou.mybatisplus.annotation.*;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.io.Serializable;
+import java.util.Date;
+
 /**
  * <p>
  * 邮件推送信息
@@ -16,15 +18,15 @@ import lombok.Setter;
 @Getter
 @Setter
 @TableName("email_message_send")
-public class EmailMessageSend extends BaseEntity {
+public class EmailMessageSend implements Serializable {
 
-    /**
-     * 文件id
-     */
-    private Long emailMessageId;
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    private Long id;
 
     /**
-     * 件id
+     * 件id
      */
     private String messageId;
 
@@ -43,5 +45,10 @@ public class EmailMessageSend extends BaseEntity {
      */
     private String address;
 
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
 
 }

+ 16 - 0
src/main/java/com/fjhx/mapper/EmailMessageContentMapper.java

@@ -0,0 +1,16 @@
+package com.fjhx.mapper;
+
+import com.fjhx.entity.EmailMessageContent;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 邮件正文 Mapper 接口
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-01-10
+ */
+public interface EmailMessageContentMapper extends BaseMapper<EmailMessageContent> {
+
+}

+ 5 - 0
src/main/java/com/fjhx/mapper/xml/EmailMessageContentMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.mapper.EmailMessageContentMapper">
+
+</mapper>

+ 16 - 0
src/main/java/com/fjhx/service/IEmailMessageContentService.java

@@ -0,0 +1,16 @@
+package com.fjhx.service;
+
+import com.fjhx.entity.EmailMessageContent;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 邮件正文 服务类
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-01-10
+ */
+public interface IEmailMessageContentService extends IService<EmailMessageContent> {
+
+}

+ 15 - 20
src/main/java/com/fjhx/service/impl/AccountServiceImpl.java

@@ -6,7 +6,6 @@ import cn.hutool.core.lang.Assert;
 import cn.hutool.core.thread.ThreadUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fjhx.config.TaskPoolConfig;
@@ -80,7 +79,7 @@ public class AccountServiceImpl implements IAccountService {
         }
 
         // 异步遍历文件夹下的所有邮件
-        this.asyncReadEmail(emailInfo.getId(), bindingVo, 19);
+        this.asyncReadEmail(emailInfo.getId(), bindingVo, 0);
         return emailInfo;
     }
 
@@ -154,9 +153,10 @@ public class AccountServiceImpl implements IAccountService {
                 List<String> lastMessageIdList = new ArrayList<>();
 
                 while (page < pages) {
+                    int tempPage = page;
 
                     // 分页获取文件夹邮件
-                    MessageVo result = EmailEngineUtil.getMessageList(email, mailbox, page);
+                    MessageVo result = EmailEngineUtil.getMessageList(email, mailbox, tempPage);
 
                     List<MessageVo.MessagesDTO> messagesDTOList = result.getMessages();
 
@@ -175,6 +175,7 @@ public class AccountServiceImpl implements IAccountService {
                         }
 
                     }
+
                     page++;
 
                     ThreadUtil.sleep(3000);
@@ -213,10 +214,10 @@ public class AccountServiceImpl implements IAccountService {
             emailMessageList.add(emailMessage);
 
             // 添加推送信息
-            this.addMessageSend(emailMessageSendList, messagesDTO, emailMessage.getId());
+            this.addMessageSend(emailMessageSendList, messagesDTO);
 
             // 下载并添加附件信息
-            this.addMessageAttachment(email, emailMessageAttachmentList, messagesDTO, emailMessage.getId());
+            this.addMessageAttachment(email, emailMessageAttachmentList, messagesDTO);
         }
 
         // 保存邮件
@@ -235,7 +236,6 @@ public class AccountServiceImpl implements IAccountService {
     private EmailMessage createMessage(Long emailInfoId, String email, MessageVo.MessagesDTO messagesDTO) {
 
         EmailMessage emailMessage = new EmailMessage();
-        emailMessage.setId(IdWorker.getId());
         emailMessage.setMessageId(messagesDTO.getId());
         emailMessage.setEmailInfoId(emailInfoId);
         emailMessage.setEmail(email);
@@ -252,11 +252,11 @@ public class AccountServiceImpl implements IAccountService {
         }
 
         // 正文内容
-        MessageDetailVo messageDetail = EmailEngineUtil.getMessageDetail(email, messagesDTO.getId());
-        MessageDetailVo.TextDTO text = messageDetail.getText();
-        if (ObjectUtils.isNotEmpty(text)) {
-            emailMessage.setHtmlContent(text.getHtml());
-        }
+        // MessageDetailVo messageDetail = EmailEngineUtil.getMessageDetail(email, messagesDTO.getId());
+        // MessageDetailVo.TextDTO text = messageDetail.getText();
+        // if (ObjectUtils.isNotEmpty(text)) {
+        //     emailMessage.setHtmlContent(text.getHtml());
+        // }
 
         return emailMessage;
     }
@@ -264,13 +264,12 @@ public class AccountServiceImpl implements IAccountService {
     /**
      * 添加推送信息
      */
-    private void addMessageSend(List<EmailMessageSend> emailMessageSendList, MessageVo.MessagesDTO messagesDTO, Long emailMessageId) {
+    private void addMessageSend(List<EmailMessageSend> emailMessageSendList, MessageVo.MessagesDTO messagesDTO) {
         // 收件人
         List<MessageVo.MessagesDTO.ToDTO> to = messagesDTO.getTo();
         if (ObjectUtils.isNotEmpty(to)) {
             for (MessageVo.MessagesDTO.ToDTO toDTO : to) {
                 EmailMessageSend emailMessageSend = new EmailMessageSend();
-                emailMessageSend.setEmailMessageId(emailMessageId);
                 emailMessageSend.setMessageId(messagesDTO.getId());
                 emailMessageSend.setType(SendConstant.TO);
                 emailMessageSend.setName(toDTO.getName());
@@ -284,7 +283,6 @@ public class AccountServiceImpl implements IAccountService {
         if (ObjectUtils.isNotEmpty(cc)) {
             for (MessageVo.MessagesDTO.ToDTO toDTO : cc) {
                 EmailMessageSend emailMessageSend = new EmailMessageSend();
-                emailMessageSend.setEmailMessageId(emailMessageId);
                 emailMessageSend.setMessageId(messagesDTO.getId());
                 emailMessageSend.setType(SendConstant.CC);
                 emailMessageSend.setName(toDTO.getName());
@@ -298,7 +296,6 @@ public class AccountServiceImpl implements IAccountService {
         if (ObjectUtils.isNotEmpty(bcc)) {
             for (MessageVo.MessagesDTO.ToDTO toDTO : cc) {
                 EmailMessageSend emailMessageSend = new EmailMessageSend();
-                emailMessageSend.setEmailMessageId(emailMessageId);
                 emailMessageSend.setMessageId(messagesDTO.getId());
                 emailMessageSend.setType(SendConstant.BCC);
                 emailMessageSend.setName(toDTO.getName());
@@ -311,8 +308,7 @@ public class AccountServiceImpl implements IAccountService {
     /**
      * 下载并添加附件信息
      */
-    private void addMessageAttachment(String email, List<EmailMessageAttachment> emailMessageAttachmentList,
-                                      MessageVo.MessagesDTO messagesDTO, Long emailMessageId) {
+    private void addMessageAttachment(String email, List<EmailMessageAttachment> emailMessageAttachmentList, MessageVo.MessagesDTO messagesDTO) {
 
         List<MessageVo.MessagesDTO.AttachmentsDTO> attachments = messagesDTO.getAttachments();
         if (ObjectUtils.isNotEmpty(attachments)) {
@@ -322,7 +318,6 @@ public class AccountServiceImpl implements IAccountService {
                 String newFileName = attachmentId + "." + FileUtil.getSuffix(attachment.getFilename());
 
                 EmailMessageAttachment emailMessageAttachment = new EmailMessageAttachment();
-                emailMessageAttachment.setEmailMessageId(emailMessageId);
                 emailMessageAttachment.setMessageId(messagesDTO.getId());
                 emailMessageAttachment.setName(attachment.getFilename());
                 emailMessageAttachment.setPath(email + "\\" + newFileName);
@@ -383,12 +378,12 @@ public class AccountServiceImpl implements IAccountService {
 
         // 保存推送人信息
         List<EmailMessageSend> emailMessageSendList = new ArrayList<>();
-        this.addMessageSend(emailMessageSendList, messagesDTO, emailMessage.getId());
+        this.addMessageSend(emailMessageSendList, messagesDTO);
         emailMessageSendService.saveBatch(emailMessageSendList);
 
         // 保存附件信息
         List<EmailMessageAttachment> emailMessageAttachmentList = new ArrayList<>();
-        this.addMessageAttachment(account, emailMessageAttachmentList, messagesDTO, emailMessage.getId());
+        this.addMessageAttachment(account, emailMessageAttachmentList, messagesDTO);
         emailMessageAttachmentService.saveBatch(emailMessageAttachmentList);
     }
 

+ 20 - 0
src/main/java/com/fjhx/service/impl/EmailMessageContentServiceImpl.java

@@ -0,0 +1,20 @@
+package com.fjhx.service.impl;
+
+import com.fjhx.entity.EmailMessageContent;
+import com.fjhx.mapper.EmailMessageContentMapper;
+import com.fjhx.service.IEmailMessageContentService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 邮件正文 服务实现类
+ * </p>
+ *
+ * @author zlj
+ * @since 2023-01-10
+ */
+@Service
+public class EmailMessageContentServiceImpl extends ServiceImpl<EmailMessageContentMapper, EmailMessageContent> implements IEmailMessageContentService {
+
+}