|
@@ -1,33 +1,31 @@
|
|
package com.fjhx.mail.service.enterprise.impl;
|
|
package com.fjhx.mail.service.enterprise.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
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.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
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.EnterpriseMailboxDto;
|
|
import com.fjhx.mail.entity.enterprise.dto.EnterpriseMailboxSelectDto;
|
|
import com.fjhx.mail.entity.enterprise.dto.EnterpriseMailboxSelectDto;
|
|
import com.fjhx.mail.entity.enterprise.po.EnterpriseDomain;
|
|
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.EnterpriseMailbox;
|
|
import com.fjhx.mail.entity.enterprise.vo.EnterpriseMailboxVo;
|
|
import com.fjhx.mail.entity.enterprise.vo.EnterpriseMailboxVo;
|
|
import com.fjhx.mail.mapper.enterprise.EnterpriseMailboxMapper;
|
|
import com.fjhx.mail.mapper.enterprise.EnterpriseMailboxMapper;
|
|
import com.fjhx.mail.service.enterprise.EnterpriseDomainService;
|
|
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.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.IWrapper;
|
|
import com.ruoyi.common.utils.wrapper.SqlField;
|
|
import com.ruoyi.common.utils.wrapper.SqlField;
|
|
import com.ruoyi.system.utils.UserUtil;
|
|
import com.ruoyi.system.utils.UserUtil;
|
|
-import com.sun.mail.imap.IMAPStore;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import javax.mail.MessagingException;
|
|
|
|
import java.util.List;
|
|
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 {
|
|
public class EnterpriseMailboxServiceImpl extends ServiceImpl<EnterpriseMailboxMapper, EnterpriseMailbox> implements EnterpriseMailboxService {
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
- private EnterpriseFolderService enterpriseFolderService;
|
|
|
|
-
|
|
|
|
- @Autowired
|
|
|
|
private EnterpriseDomainService enterpriseDomainService;
|
|
private EnterpriseDomainService enterpriseDomainService;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -74,47 +69,23 @@ public class EnterpriseMailboxServiceImpl extends ServiceImpl<EnterpriseMailboxM
|
|
|
|
|
|
@Transactional
|
|
@Transactional
|
|
@Override
|
|
@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();
|
|
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
|
|
@Override
|