yzc 1 år sedan
förälder
incheckning
8c05ebb1db

+ 34 - 0
hx-mail/src/main/java/com/fjhx/mail/entity/message/po/MessageAttachment.java

@@ -0,0 +1,34 @@
+package com.fjhx.mail.entity.message.po;
+
+import com.ruoyi.common.core.domain.BaseIdPo;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 企业邮件附件
+ * </p>
+ *
+ * @author
+ * @since 2023-12-25
+ */
+@Getter
+@Setter
+public class MessageAttachment extends BaseIdPo {
+
+    /**
+     * 邮件主表id
+     */
+    private Long messageId;
+
+    /**
+     * 附件名称
+     */
+    private String name;
+
+    /**
+     * 附件url
+     */
+    private String url;
+
+}

+ 7 - 0
hx-mail/src/main/java/com/fjhx/mail/entity/my/vo/MessageVo.java

@@ -1,10 +1,12 @@
 package com.fjhx.mail.entity.my.vo;
 
 import com.fjhx.customer.entity.customer.vo.CustomerVo;
+import com.fjhx.mail.entity.message.po.MessageAttachment;
 import lombok.Getter;
 import lombok.Setter;
 
 import java.util.Date;
+import java.util.List;
 
 @Getter
 @Setter
@@ -75,4 +77,9 @@ public class MessageVo {
      */
     private CustomerVo customerInfo;
 
+    /**
+     * 附件列表
+     */
+    private List<MessageAttachment> messageAttachmentList;
+
 }

+ 25 - 0
hx-mail/src/main/java/com/fjhx/mail/mapper/message/MessageAttachmentMapper.java

@@ -0,0 +1,25 @@
+package com.fjhx.mail.mapper.message;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fjhx.mail.entity.message.po.MessageAttachment;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 企业邮件附件 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2023-12-25
+ */
+@Mapper
+public interface MessageAttachmentMapper extends BaseMapper<MessageAttachment> {
+
+    List<MessageAttachment> getList(@Param("ew") QueryWrapper<Object> wrapper, @Param("type") Integer type);
+
+}

+ 17 - 0
hx-mail/src/main/java/com/fjhx/mail/service/message/MessageAttachmentService.java

@@ -0,0 +1,17 @@
+package com.fjhx.mail.service.message;
+
+import com.fjhx.mail.entity.message.po.MessageAttachment;
+import com.ruoyi.common.core.service.BaseService;
+
+
+/**
+ * <p>
+ * 企业邮件附件 服务类
+ * </p>
+ *
+ * @author
+ * @since 2023-12-25
+ */
+public interface MessageAttachmentService extends BaseService<MessageAttachment> {
+
+}

+ 19 - 0
hx-mail/src/main/java/com/fjhx/mail/service/message/impl/InfoServiceImpl.java

@@ -1,6 +1,7 @@
 package com.fjhx.mail.service.message.impl;
 
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.extra.spring.SpringUtil;
 import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
@@ -23,11 +24,13 @@ 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.message.po.MessageAttachment;
 import com.fjhx.mail.entity.my.vo.MessageVo;
 import com.fjhx.mail.entity.personal.po.PersonalFolder;
 import com.fjhx.mail.entity.personal.po.PersonalMailbox;
 import com.fjhx.mail.entity.personal.po.PersonalMessage;
 import com.fjhx.mail.mapper.enterprise.EnterpriseMessageMapper;
+import com.fjhx.mail.mapper.message.MessageAttachmentMapper;
 import com.fjhx.mail.mapper.personal.PersonalMessageMapper;
 import com.fjhx.mail.service.enterprise.EnterpriseDomainService;
 import com.fjhx.mail.service.enterprise.EnterpriseFolderService;
@@ -89,6 +92,9 @@ public class InfoServiceImpl implements InfoService {
     @Autowired
     private CustomerUserService customerUserService;
 
+    @Autowired
+    private MessageAttachmentMapper messageAttachmentMapper;
+
     @Override
     public List<SysUser> getUserList() {
 
@@ -328,8 +334,21 @@ public class InfoServiceImpl implements InfoService {
         }
 
         List<MessageVo> records = page.getRecords();
+        List<Long> messageIds = records.stream().map(MessageVo::getId).collect(Collectors.toList());
+
+        //赋值邮件附件信息
+        List<MessageAttachment> messageAttachmentList = messageAttachmentMapper.getList(Wrappers.query().in("ma.message_id", messageIds), dto.getType());
+        String obsUrl = SpringUtil.getProperty("obs.url");
+        messageAttachmentList.forEach(item -> item.setUrl(obsUrl + item.getUrl()));
+
+        Map<Long, List<MessageAttachment>> MessageAttachmentMap = messageAttachmentList.stream().collect(Collectors.groupingBy(MessageAttachment::getMessageId));
+        for (MessageVo record : records) {
+            List<MessageAttachment> messageAttachments = MessageAttachmentMap.get(record.getId());
+            record.setMessageAttachmentList(messageAttachmentList);
+        }
 
 
+        //赋值客户信息
         List<String> eMailList = records.stream().map(MessageVo::getFromEmail).distinct().collect(Collectors.toList());
         if (ObjectUtil.isNotEmpty(eMailList)) {
             List<CustomerUser> customerUserList = customerUserService.list(q -> q.in(CustomerUser::getEmail, eMailList));

+ 21 - 0
hx-mail/src/main/java/com/fjhx/mail/service/message/impl/MessageAttachmentServiceImpl.java

@@ -0,0 +1,21 @@
+package com.fjhx.mail.service.message.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.mail.entity.message.po.MessageAttachment;
+import com.fjhx.mail.mapper.message.MessageAttachmentMapper;
+import com.fjhx.mail.service.message.MessageAttachmentService;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * <p>
+ * 企业邮件附件 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-12-25
+ */
+@Service
+public class MessageAttachmentServiceImpl extends ServiceImpl<MessageAttachmentMapper, MessageAttachment> implements MessageAttachmentService {
+
+}

+ 19 - 0
hx-mail/src/main/resources/mapper/message/MessageAttachmentMapper.xml

@@ -0,0 +1,19 @@
+<?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.mail.mapper.message.MessageAttachmentMapper">
+    <select id="getList" resultType="com.fjhx.mail.entity.message.po.MessageAttachment">
+        SELECT
+        ma.id,
+        ma.message_id,
+        ma.`name`,
+        ma.url
+        FROM
+        <if test="type eq 1">
+            personal_message_attachment ma
+        </if>
+        <if test="type eq 2">
+            enterprise_message_attachment ma
+        </if>
+        ${ew.customSqlSegment}
+    </select>
+</mapper>