24282 2 anos atrás
pai
commit
9e1efc3044

+ 0 - 1
hx-common/src/main/java/com/fjhx/common/service/send/impl/SendMegServiceImpl.java

@@ -155,7 +155,6 @@ public class SendMegServiceImpl extends ServiceImpl<SendMegMapper, SendMeg> impl
             return;
         }
 
-        log.error("用户{}不在线", messageEntity.getUserId());
         String key = sendMessageKey + ((SendMeg) data).getId() + ":" + messageEntity.getUserId();
         if (((SendMeg) data).getEndTime().after(new Date())) {
             redisCache.setCacheObject(key, data);

+ 4 - 1
hx-mail/src/main/java/com/fjhx/mail/config/MailServiceConfig.java

@@ -8,10 +8,13 @@ import org.springframework.context.annotation.Configuration;
 public class MailServiceConfig {
 
     /**
-     * 调用主服务url前缀
+     * 国内邮箱服务url
      */
     public static String urlPrefix;
 
+    /**
+     * 国外邮箱服务url
+     */
     public static String abroadUrlPrefix;
 
     @Value("${mail.urlPrefix}")

+ 3 - 9
hx-mail/src/main/java/com/fjhx/mail/controller/enterprise/EnterpriseMailboxController.java

@@ -1,18 +1,15 @@
 package com.fjhx.mail.controller.enterprise;
 
-import cn.hutool.http.HttpUtil;
-import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
 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.enterprise.dto.EnterpriseMailboxDto;
 import com.fjhx.mail.entity.enterprise.dto.EnterpriseMailboxSelectDto;
 import com.fjhx.mail.entity.enterprise.vo.EnterpriseMailboxVo;
 import com.fjhx.mail.service.enterprise.EnterpriseMailboxService;
 import com.ruoyi.common.annotation.NonInterception;
 import com.ruoyi.common.core.domain.BaseSelectDto;
-import com.ruoyi.common.utils.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -58,11 +55,8 @@ public class EnterpriseMailboxController {
      */
     @NonInterception
     @PostMapping("/add")
-    public Object add(@Validated @RequestBody EnterpriseMailboxDto enterpriseMailboxDto) {
-        enterpriseMailboxDto.setCreateUser(SecurityUtils.getUserId());
-        enterpriseMailboxDto.setUpdateUser(SecurityUtils.getUserId());
-        String post = HttpUtil.post(MailServiceConfig.urlPrefix + "addEnterpriseMailbox", JSON.toJSONString(enterpriseMailboxDto));
-        return JSON.parseObject(post);
+    public JSONObject add(@Validated @RequestBody EnterpriseMailboxDto enterpriseMailboxDto) {
+        return enterpriseMailboxService.add(enterpriseMailboxDto);
     }
 
     /**

+ 3 - 10
hx-mail/src/main/java/com/fjhx/mail/controller/personal/PersonalMailboxController.java

@@ -1,18 +1,15 @@
 package com.fjhx.mail.controller.personal;
 
-import cn.hutool.http.HttpUtil;
-import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
 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.personal.dto.PersonalMailboxDto;
 import com.fjhx.mail.entity.personal.dto.PersonalMailboxSelectDto;
 import com.fjhx.mail.entity.personal.vo.PersonalMailboxVo;
 import com.fjhx.mail.service.personal.PersonalMailboxService;
 import com.ruoyi.common.annotation.NonInterception;
 import com.ruoyi.common.core.domain.BaseSelectDto;
-import com.ruoyi.common.utils.SecurityUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -58,12 +55,8 @@ public class PersonalMailboxController {
      */
     @NonInterception
     @PostMapping("/add")
-    public Object add(@Validated @RequestBody PersonalMailboxDto personalMailboxDto) {
-        personalMailboxDto.setCreateUser(SecurityUtils.getUserId());
-        personalMailboxDto.setUpdateUser(SecurityUtils.getUserId());
-        personalMailboxDto.setUserId(SecurityUtils.getUserId());
-        String post = HttpUtil.post(MailServiceConfig.urlPrefix + "addPersonalMailbox", JSON.toJSONString(personalMailboxDto));
-        return JSON.parseObject(post);
+    public JSONObject add(@Validated @RequestBody PersonalMailboxDto personalMailboxDto) {
+        return personalMailboxService.add(personalMailboxDto);
     }
 
     /**

+ 6 - 5
hx-mail/src/main/java/com/fjhx/mail/service/enterprise/EnterpriseMailboxService.java

@@ -1,11 +1,12 @@
 package com.fjhx.mail.service.enterprise;
 
-import com.fjhx.mail.entity.enterprise.po.EnterpriseMailbox;
-import com.ruoyi.common.core.service.BaseService;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.mail.entity.enterprise.vo.EnterpriseMailboxVo;
-import com.fjhx.mail.entity.enterprise.dto.EnterpriseMailboxSelectDto;
 import com.fjhx.mail.entity.enterprise.dto.EnterpriseMailboxDto;
+import com.fjhx.mail.entity.enterprise.dto.EnterpriseMailboxSelectDto;
+import com.fjhx.mail.entity.enterprise.po.EnterpriseMailbox;
+import com.fjhx.mail.entity.enterprise.vo.EnterpriseMailboxVo;
+import com.ruoyi.common.core.service.BaseService;
 
 
 /**
@@ -31,7 +32,7 @@ public interface EnterpriseMailboxService extends BaseService<EnterpriseMailbox>
     /**
      * 企业邮箱新增
      */
-    void add(EnterpriseMailboxDto enterpriseMailboxDto);
+    JSONObject add(EnterpriseMailboxDto enterpriseMailboxDto);
 
     /**
      * 企业邮箱编辑

+ 20 - 49
hx-mail/src/main/java/com/fjhx/mail/service/enterprise/impl/EnterpriseMailboxServiceImpl.java

@@ -1,33 +1,31 @@
 package com.fjhx.mail.service.enterprise.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.mail.config.MailServiceConfig;
 import com.fjhx.mail.entity.enterprise.dto.EnterpriseMailboxDto;
 import com.fjhx.mail.entity.enterprise.dto.EnterpriseMailboxSelectDto;
 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.vo.EnterpriseMailboxVo;
 import com.fjhx.mail.mapper.enterprise.EnterpriseMailboxMapper;
 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.util.EmailUtil;
-import com.ruoyi.common.constant.StatusConstant;
-import com.ruoyi.common.exception.ServiceException;
+import com.obs.services.internal.ServiceException;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.common.utils.wrapper.SqlField;
 import com.ruoyi.system.utils.UserUtil;
-import com.sun.mail.imap.IMAPStore;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.mail.MessagingException;
 import java.util.List;
-import java.util.stream.Collectors;
+import java.util.Objects;
 
 
 /**
@@ -42,9 +40,6 @@ import java.util.stream.Collectors;
 public class EnterpriseMailboxServiceImpl extends ServiceImpl<EnterpriseMailboxMapper, EnterpriseMailbox> implements EnterpriseMailboxService {
 
     @Autowired
-    private EnterpriseFolderService enterpriseFolderService;
-
-    @Autowired
     private EnterpriseDomainService enterpriseDomainService;
 
     @Override
@@ -74,47 +69,23 @@ public class EnterpriseMailboxServiceImpl extends ServiceImpl<EnterpriseMailboxM
 
     @Transactional
     @Override
-    public void add(EnterpriseMailboxDto enterpriseMailboxDto) {
-
-        Long enterpriseMailboxId = IdWorker.getId();
-
+    public JSONObject add(EnterpriseMailboxDto enterpriseMailboxDto) {
+        enterpriseMailboxDto.setCreateUser(SecurityUtils.getUserId());
+        enterpriseMailboxDto.setUpdateUser(SecurityUtils.getUserId());
         Long domainId = enterpriseMailboxDto.getDomainId();
-        EnterpriseDomain enterpriseDomain = enterpriseDomainService.getById(domainId);
-
-        if (enterpriseDomain == null) {
-            throw new ServiceException("未找到企业域名");
+        EnterpriseDomain domain = enterpriseDomainService.getById(domainId);
+        if (domain == null) {
+            throw new ServiceException("找不到企业邮箱域名");
         }
-
-        try {
-
-            IMAPStore imapStore = EmailUtil.getIMAPStore(
-                    enterpriseDomain.getReceiveHost(),
-                    enterpriseDomain.getReceivePort(),
-                    enterpriseMailboxDto.getMailUserPrefix() + "@" + enterpriseDomain.getDomainName(),
-                    enterpriseMailboxDto.getMailPassword()
-            );
-
-            List<String> folderNameList = EmailUtil.getFolderNameList(imapStore);
-            List<EnterpriseFolder> personalFolderList = folderNameList.stream().map(item -> {
-                EnterpriseFolder enterpriseFolder = new EnterpriseFolder();
-                enterpriseFolder.setMailboxId(enterpriseMailboxId);
-                enterpriseFolder.setName(item);
-                enterpriseFolder.setSyncStatus(1);
-                return enterpriseFolder;
-            }).collect(Collectors.toList());
-
-            enterpriseFolderService.saveBatch(personalFolderList);
-
-        } catch (MessagingException e) {
-            throw new ServiceException("连接邮箱异常");
+        String urlPrefix;
+        if (Objects.equals(domain.getType(), 2)) {
+            urlPrefix = MailServiceConfig.abroadUrlPrefix;
+        } else {
+            urlPrefix = MailServiceConfig.urlPrefix;
         }
 
-        enterpriseMailboxDto.setId(enterpriseMailboxId);
-        enterpriseMailboxDto.setDefaultStatus(0);
-        enterpriseMailboxDto.setSyncStatus(1);
-        enterpriseMailboxDto.setStatus(StatusConstant.ENABLE);
-        this.save(enterpriseMailboxDto);
-
+        String post = HttpUtil.post(urlPrefix + "addEnterpriseMailbox", JSON.toJSONString(enterpriseMailboxDto));
+        return JSON.parseObject(post);
     }
 
     @Override

+ 6 - 5
hx-mail/src/main/java/com/fjhx/mail/service/personal/PersonalMailboxService.java

@@ -1,11 +1,12 @@
 package com.fjhx.mail.service.personal;
 
-import com.fjhx.mail.entity.personal.po.PersonalMailbox;
-import com.ruoyi.common.core.service.BaseService;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fjhx.mail.entity.personal.vo.PersonalMailboxVo;
-import com.fjhx.mail.entity.personal.dto.PersonalMailboxSelectDto;
 import com.fjhx.mail.entity.personal.dto.PersonalMailboxDto;
+import com.fjhx.mail.entity.personal.dto.PersonalMailboxSelectDto;
+import com.fjhx.mail.entity.personal.po.PersonalMailbox;
+import com.fjhx.mail.entity.personal.vo.PersonalMailboxVo;
+import com.ruoyi.common.core.service.BaseService;
 
 
 /**
@@ -31,7 +32,7 @@ public interface PersonalMailboxService extends BaseService<PersonalMailbox> {
     /**
      * 个人邮箱新增
      */
-    void add(PersonalMailboxDto personalMailboxDto);
+    JSONObject add(PersonalMailboxDto personalMailboxDto);
 
     /**
      * 个人邮箱编辑

+ 16 - 46
hx-mail/src/main/java/com/fjhx/mail/service/personal/impl/PersonalMailboxServiceImpl.java

@@ -1,31 +1,25 @@
 package com.fjhx.mail.service.personal.impl;
 
 import cn.hutool.core.bean.BeanUtil;
-import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import cn.hutool.http.HttpUtil;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.mail.config.MailServiceConfig;
 import com.fjhx.mail.entity.personal.dto.PersonalMailboxDto;
 import com.fjhx.mail.entity.personal.dto.PersonalMailboxSelectDto;
-import com.fjhx.mail.entity.personal.po.PersonalFolder;
 import com.fjhx.mail.entity.personal.po.PersonalMailbox;
 import com.fjhx.mail.entity.personal.vo.PersonalMailboxVo;
 import com.fjhx.mail.mapper.personal.PersonalMailboxMapper;
-import com.fjhx.mail.service.personal.PersonalFolderService;
 import com.fjhx.mail.service.personal.PersonalMailboxService;
-import com.fjhx.mail.util.EmailUtil;
-import com.ruoyi.common.constant.StatusConstant;
-import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.common.utils.wrapper.SqlField;
-import com.sun.mail.imap.IMAPStore;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.mail.MessagingException;
-import java.util.List;
-import java.util.stream.Collectors;
+import java.util.Objects;
 
 
 /**
@@ -39,9 +33,6 @@ import java.util.stream.Collectors;
 @Service
 public class PersonalMailboxServiceImpl extends ServiceImpl<PersonalMailboxMapper, PersonalMailbox> implements PersonalMailboxService {
 
-    @Autowired
-    private PersonalFolderService personalFolderService;
-
     @Override
     public Page<PersonalMailboxVo> getPage(PersonalMailboxSelectDto dto) {
         IWrapper<PersonalMailbox> wrapper = getWrapper();
@@ -61,40 +52,19 @@ public class PersonalMailboxServiceImpl extends ServiceImpl<PersonalMailboxMappe
 
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public void add(PersonalMailboxDto personalMailboxDto) {
-
-        Long personalMailboxId = IdWorker.getId();
-
-        try {
-            IMAPStore imapStore = EmailUtil.getIMAPStore(
-                    personalMailboxDto.getReceiveHost(),
-                    personalMailboxDto.getReceivePort(),
-                    personalMailboxDto.getMailUser(),
-                    personalMailboxDto.getMailPassword()
-            );
-
-            List<String> folderNameList = EmailUtil.getFolderNameList(imapStore);
-            List<PersonalFolder> personalFolderList = folderNameList.stream().map(item -> {
-                PersonalFolder personalFolder = new PersonalFolder();
-                personalFolder.setMailboxId(personalMailboxId);
-                personalFolder.setName(item);
-                personalFolder.setSyncStatus(1);
-                return personalFolder;
-            }).collect(Collectors.toList());
-
-            personalFolderService.saveBatch(personalFolderList);
-
-        } catch (MessagingException e) {
-            throw new ServiceException("连接邮箱异常");
-        }
-
-        personalMailboxDto.setId(personalMailboxId);
-        personalMailboxDto.setStatus(StatusConstant.ENABLE);
-        personalMailboxDto.setSyncStatus(1);
-        personalMailboxDto.setDefaultStatus(0);
+    public JSONObject add(PersonalMailboxDto personalMailboxDto) {
+        personalMailboxDto.setCreateUser(SecurityUtils.getUserId());
+        personalMailboxDto.setUpdateUser(SecurityUtils.getUserId());
         personalMailboxDto.setUserId(SecurityUtils.getUserId());
+        String urlPrefix;
+        if (Objects.equals(personalMailboxDto.getType(), 2)) {
+            urlPrefix = MailServiceConfig.abroadUrlPrefix;
+        } else {
+            urlPrefix = MailServiceConfig.urlPrefix;
+        }
 
-        this.save(personalMailboxDto);
+        String post = HttpUtil.post(urlPrefix + "addPersonalMailbox", JSON.toJSONString(personalMailboxDto));
+        return JSON.parseObject(post);
     }
 
     @Override