|
@@ -5,25 +5,38 @@ 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.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.fjhx.common.constant.SourceConstant;
|
|
|
import com.fjhx.mail.config.MailServiceConfig;
|
|
|
+import com.fjhx.mail.entity.dto.GetMessagePageDto;
|
|
|
import com.fjhx.mail.entity.enterprise.po.EnterpriseDomain;
|
|
|
+import com.fjhx.mail.entity.enterprise.po.EnterpriseFolder;
|
|
|
import com.fjhx.mail.entity.enterprise.po.EnterpriseMailbox;
|
|
|
+import com.fjhx.mail.entity.enterprise.po.EnterpriseMessage;
|
|
|
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.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.personal.PersonalMessageMapper;
|
|
|
import com.fjhx.mail.service.enterprise.EnterpriseDomainService;
|
|
|
+import com.fjhx.mail.service.enterprise.EnterpriseFolderService;
|
|
|
import com.fjhx.mail.service.enterprise.EnterpriseMailboxService;
|
|
|
import com.fjhx.mail.service.enterprise.EnterpriseMessageService;
|
|
|
import com.fjhx.mail.service.message.InfoService;
|
|
|
+import com.fjhx.mail.service.personal.PersonalFolderService;
|
|
|
import com.fjhx.mail.service.personal.PersonalMailboxService;
|
|
|
import com.fjhx.mail.service.personal.PersonalMessageService;
|
|
|
import com.ruoyi.common.core.domain.entity.SysDept;
|
|
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
|
|
import com.ruoyi.common.exception.ServiceException;
|
|
|
+import com.ruoyi.common.utils.PageWrapper;
|
|
|
import com.ruoyi.common.utils.SecurityUtils;
|
|
|
import com.ruoyi.system.service.ISysDeptService;
|
|
|
import com.ruoyi.system.service.ISysUserService;
|
|
@@ -57,6 +70,16 @@ public class InfoServiceImpl implements InfoService {
|
|
|
@Autowired
|
|
|
private PersonalMessageService personalMessageService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private PersonalFolderService personalFolderService;
|
|
|
+ @Autowired
|
|
|
+ private EnterpriseFolderService enterpriseFolderService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private EnterpriseMessageMapper enterpriseMessageMapper;
|
|
|
+ @Autowired
|
|
|
+ private PersonalMessageMapper personalMessageMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public List<SysUser> getUserList() {
|
|
|
|
|
@@ -210,4 +233,66 @@ public class InfoServiceImpl implements InfoService {
|
|
|
}
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
+ public Object getMessagePage(GetMessagePageDto dto) {
|
|
|
+ PageWrapper<MessageVo> pageWrapper;
|
|
|
+
|
|
|
+ // 个人邮箱
|
|
|
+ if (dto.getType().equals(1)) {
|
|
|
+ QueryWrapper<PersonalMessage> wrapper = Wrappers.query();
|
|
|
+ wrapper.eq("pm.folder_id", dto.getFolderId());
|
|
|
+ wrapper.and(ObjectUtil.isNotEmpty(dto.getKeyword()), q1 -> q1
|
|
|
+ .like("pm.from_email", dto.getKeyword())
|
|
|
+ .or().like("pm.subject", dto.getKeyword())
|
|
|
+ .or().like("pmc.content", dto.getKeyword())
|
|
|
+ .or().like("c.name", dto.getKeyword())
|
|
|
+ .or().like("cu.name", dto.getKeyword())
|
|
|
+ .or().like("pm.from_personal_name", dto.getKeyword())
|
|
|
+ );
|
|
|
+ wrapper.orderByDesc("pm.send_date");
|
|
|
+ Page<PersonalMessage> page = personalMessageMapper.getPage(dto.getPage(), wrapper);
|
|
|
+
|
|
|
+ pageWrapper = new PageWrapper<>(page, MessageVo.class);
|
|
|
+
|
|
|
+ if (page.getSize() == 0) {
|
|
|
+ return pageWrapper;
|
|
|
+ }
|
|
|
+
|
|
|
+ PersonalFolder personalFolder = personalFolderService.getById(dto.getFolderId());
|
|
|
+ if (personalFolder == null) {
|
|
|
+ throw new ServiceException("文件夹已被删除");
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ // 企业邮箱
|
|
|
+ else {
|
|
|
+ QueryWrapper<EnterpriseMessage> wrapper = Wrappers.query();
|
|
|
+ wrapper.eq("em.folder_id", dto.getFolderId());
|
|
|
+ wrapper.and(ObjectUtil.isNotEmpty(dto.getKeyword()), q1 -> q1
|
|
|
+ .like("em.from_email", dto.getKeyword())
|
|
|
+ .or().like("em.subject", dto.getKeyword())
|
|
|
+ .or().like("emc.content", dto.getKeyword())
|
|
|
+ .or().like("c.name", dto.getKeyword())
|
|
|
+ .or().like("cu.name", dto.getKeyword())
|
|
|
+ .or().like("em.from_personal_name", dto.getKeyword())
|
|
|
+ );
|
|
|
+ wrapper.orderByDesc("em.send_date");
|
|
|
+ Page<EnterpriseMessage> page = enterpriseMessageMapper.getPage(dto.getPage(), wrapper);
|
|
|
+
|
|
|
+
|
|
|
+ pageWrapper = new PageWrapper<>(page, MessageVo.class);
|
|
|
+
|
|
|
+ if (page.getSize() == 0) {
|
|
|
+ return pageWrapper;
|
|
|
+ }
|
|
|
+
|
|
|
+ EnterpriseFolder enterpriseFolder = enterpriseFolderService.getById(dto.getFolderId());
|
|
|
+ if (enterpriseFolder == null) {
|
|
|
+ throw new ServiceException("文件夹已被删除");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return pageWrapper;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|