24282 %!s(int64=2) %!d(string=hai) anos
pai
achega
ddadb41246

+ 30 - 0
pom.xml

@@ -88,4 +88,34 @@
 
     </dependencies>
 
+    <build>
+        <plugins>
+            <!-- 指定java版本 -->
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <encoding>UTF-8</encoding>
+                    <source>1.8</source>
+                    <target>1.8</target>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+        <resources>
+            <resource>
+                <directory>src/main/java</directory>
+                <includes>
+                    <include>**/*.xml</include>
+                </includes>
+            </resource>
+            <resource>
+                <directory>src/main/resources</directory>
+            </resource>
+        </resources>
+    </build>
+
 </project>

+ 13 - 6
src/main/java/com/fjhx/config/CodeGeneration.java

@@ -2,6 +2,7 @@ package com.fjhx.config;
 
 import com.baomidou.mybatisplus.generator.FastAutoGenerator;
 import com.fjhx.base.BaseEntity;
+import com.fjhx.base.BaseService;
 
 public class CodeGeneration {
 
@@ -24,13 +25,19 @@ public class CodeGeneration {
                     builder.parent("com.fjhx"); // 设置父包名
                 })
                 .strategyConfig(builder -> builder
-                                // 设置需要生成的表名
-                                .addInclude("email_mailbox_link")
-                                .entityBuilder()
-                                .disableSerialVersionUID()
-                                .superClass(BaseEntity.class)
-                                .enableLombok()
+                        // 设置需要生成的表名
+                        .addInclude("email_mailbox_link")
+                        .entityBuilder()
+                        .disableSerialVersionUID()
+                        .superClass(BaseEntity.class)
                         .addIgnoreColumns("create_time", "update_time")
+                        .enableLombok()
+
+                        .serviceBuilder()
+                        .superServiceClass(BaseService.class)
+
+                        .controllerBuilder()
+                        .enableRestStyle()
                 )
                 .execute();
     }

+ 1 - 1
src/main/java/com/fjhx/config/mybatis/MybatisConfig.java

@@ -17,7 +17,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
  */
 @Configuration
 @EnableTransactionManagement
-@MapperScan("com.fjhx.**.mapper")
+@MapperScan("com.fjhx.mapper")
 public class MybatisConfig {
 
     /**

+ 0 - 2
src/main/java/com/fjhx/controller/AccountController.java

@@ -1,6 +1,5 @@
 package com.fjhx.controller;
 
-import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.fjhx.base.R;
 import com.fjhx.config.redis.RedisCache;
@@ -10,7 +9,6 @@ import com.fjhx.service.IAccountService;
 import com.fjhx.vo.BindingVo;
 import com.fjhx.vo.ListenerVo;
 import com.fjhx.vo.ProgressVo;
-import com.fjhx.vo.SubmitVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 

+ 17 - 3
src/main/java/com/fjhx/controller/EmailMailboxController.java

@@ -1,9 +1,13 @@
 package com.fjhx.controller;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fjhx.base.R;
 import com.fjhx.entity.EmailMailbox;
+import com.fjhx.entity.EmailMessage;
+import com.fjhx.service.IEmailMailboxLinkService;
 import com.fjhx.service.IEmailMailboxService;
+import com.fjhx.vo.GetMailboxMassageListVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -24,11 +28,14 @@ public class EmailMailboxController {
     @Autowired
     private IEmailMailboxService emailMailboxService;
 
+    @Autowired
+    private IEmailMailboxLinkService emailMailboxLinkService;
+
     /**
      * 获取邮箱文件夹列表
      */
-    @GetMapping("/list")
-    public R list(@RequestParam("email") String email) {
+    @GetMapping("/tree")
+    public R tree(@RequestParam("email") String email) {
         List<JSONObject> emailMailboxList = emailMailboxService.getList(email);
         return R.ok(emailMailboxList);
     }
@@ -60,7 +67,14 @@ public class EmailMailboxController {
         return R.ok();
     }
 
-
+    /**
+     * 获取邮箱中的邮件列表
+     */
+    @GetMapping("getMassageList")
+    public R getMassageList(GetMailboxMassageListVo vo) {
+        Page<EmailMessage> emailMessageExList = emailMailboxLinkService.getMassageList(vo);
+        return R.ok(emailMessageExList);
+    }
 
 
 }

+ 7 - 1
src/main/java/com/fjhx/mapper/EmailMailboxLinkMapper.java

@@ -1,7 +1,11 @@
 package com.fjhx.mapper;
 
-import com.fjhx.entity.EmailMailboxLink;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.EmailMailboxLink;
+import com.fjhx.entity.EmailMessage;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +17,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface EmailMailboxLinkMapper extends BaseMapper<EmailMailboxLink> {
 
+    Page<EmailMessage> getMassageList(@Param("page") Page<Object> page, @Param("ew") QueryWrapper<Object> query);
+
 }

+ 12 - 0
src/main/java/com/fjhx/mapper/xml/EmailMailboxLinkMapper.xml

@@ -2,4 +2,16 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fjhx.mapper.EmailMailboxLinkMapper">
 
+    <select id="getMassageList" resultType="com.fjhx.entity.EmailMessage">
+        SELECT em.message_id,
+               em.subject,
+               em.from_date,
+               em.from_name,
+               em.from_address,
+               eml.create_time
+        FROM email_mailbox_link eml
+                 LEFT JOIN email_message em ON eml.message_id = em.message_id
+            ${ew.customSqlSegment}
+    </select>
+
 </mapper>

+ 7 - 2
src/main/java/com/fjhx/service/IEmailMailboxLinkService.java

@@ -1,7 +1,10 @@
 package com.fjhx.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.base.BaseService;
 import com.fjhx.entity.EmailMailboxLink;
-import com.baomidou.mybatisplus.extension.service.IService;
+import com.fjhx.entity.EmailMessage;
+import com.fjhx.vo.GetMailboxMassageListVo;
 
 /**
  * <p>
@@ -11,6 +14,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @author zlj
  * @since 2023-01-13
  */
-public interface IEmailMailboxLinkService extends IService<EmailMailboxLink> {
+public interface IEmailMailboxLinkService extends BaseService<EmailMailboxLink> {
+
+    Page<EmailMessage> getMassageList(GetMailboxMassageListVo vo);
 
 }

+ 35 - 1
src/main/java/com/fjhx/service/impl/EmailMailboxLinkServiceImpl.java

@@ -1,11 +1,20 @@
 package com.fjhx.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Assert;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fjhx.entity.EmailMailboxLink;
+import com.fjhx.entity.EmailMessage;
 import com.fjhx.mapper.EmailMailboxLinkMapper;
 import com.fjhx.service.IEmailMailboxLinkService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.vo.GetMailboxMassageListVo;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
+
 /**
  * <p>
  * 邮箱文件夹 服务实现类
@@ -17,4 +26,29 @@ import org.springframework.stereotype.Service;
 @Service
 public class EmailMailboxLinkServiceImpl extends ServiceImpl<EmailMailboxLinkMapper, EmailMailboxLink> implements IEmailMailboxLinkService {
 
+    @Override
+    public Page<EmailMessage> getMassageList(GetMailboxMassageListVo vo) {
+        Long mailboxId = vo.getMailboxId();
+        Assert.notNull(mailboxId, "文件夹id不能为空");
+
+        String fromName = vo.getFromName();
+        String fromAddress = vo.getFromAddress();
+        String subject = vo.getSubject();
+        Integer sortType = ObjectUtil.defaultIfNull(vo.getSortType(), 1);
+        String sortName = sortType == 1 ? "em.from_date" : "eml.create_time";
+
+        Date beginTime = vo.getBeginTime();
+        Date endTime = vo.getEndTime();
+
+
+        QueryWrapper<Object> query = Wrappers.query()
+                .eq("eml.mailbox_id", mailboxId)
+                .like(ObjectUtil.isNotEmpty(fromName), "em.from_name", fromName)
+                .like(ObjectUtil.isNotEmpty(fromAddress), "em.from_address", fromAddress)
+                .like(ObjectUtil.isNotEmpty(subject), "em.subject", subject)
+                .between(ObjectUtil.isAllNotEmpty(beginTime, endTime), sortName, beginTime, endTime)
+                .orderByDesc(sortName);
+
+        return baseMapper.getMassageList(vo.getPage(), query);
+    }
 }

+ 1 - 0
src/main/java/com/fjhx/service/impl/EmailMailboxServiceImpl.java

@@ -38,6 +38,7 @@ public class EmailMailboxServiceImpl extends ServiceImpl<EmailMailboxMapper, Ema
     @Override
     public void add(EmailMailbox emailMailbox) {
         emailMailbox.setParentId(ObjectUtil.defaultIfNull(emailMailbox.getParentId(), 0L));
+        emailMailbox.setIsShow(true);
         save(emailMailbox);
     }
 

+ 37 - 0
src/main/java/com/fjhx/vo/GetMailboxMassageListVo.java

@@ -0,0 +1,37 @@
+package com.fjhx.vo;
+
+import com.fjhx.base.BaseSelectVo;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class GetMailboxMassageListVo extends BaseSelectVo {
+
+    /**
+     * 文件夹id
+     */
+    private Long mailboxId;
+
+    /**
+     * 排序类型  1按邮件发送时间排序 2按添加文件夹时间排序
+     */
+    private Integer sortType;
+
+    /**
+     * 发送人
+     */
+    private String fromName;
+
+    /**
+     * 发送地址
+     */
+    private String fromAddress;
+
+    /**
+     * 邮件标题
+     */
+    private String subject;
+
+
+}

+ 1 - 1
src/main/resources/application.yml

@@ -25,7 +25,7 @@ spring:
 
 #mybaits-plus相关配置
 mybatis-plus:
-  mapper-locations: classpath*:com/fjhx/**/mapper/xml/*.xml
+  mapper-locations: classpath*:com/fjhx/mapper/xml/*.xml
   configuration:
     map-underscore-to-camel-case: true
     cache-enabled: true