|
@@ -1,12 +1,23 @@
|
|
package com.fjhx.mail.service.message.impl;
|
|
package com.fjhx.mail.service.message.impl;
|
|
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
+import cn.hutool.http.HttpUtil;
|
|
|
|
+import com.alibaba.fastjson2.JSON;
|
|
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
|
|
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
import com.fjhx.common.constant.SourceConstant;
|
|
import com.fjhx.common.constant.SourceConstant;
|
|
|
|
+import com.fjhx.mail.config.MailServiceConfig;
|
|
|
|
+import com.fjhx.mail.entity.enterprise.po.EnterpriseDomain;
|
|
|
|
+import com.fjhx.mail.entity.enterprise.po.EnterpriseMailbox;
|
|
|
|
+import com.fjhx.mail.entity.message.dto.SendDto;
|
|
|
|
+import com.fjhx.mail.entity.personal.po.PersonalMailbox;
|
|
|
|
+import com.fjhx.mail.service.enterprise.EnterpriseDomainService;
|
|
|
|
+import com.fjhx.mail.service.enterprise.EnterpriseMailboxService;
|
|
import com.fjhx.mail.service.message.InfoService;
|
|
import com.fjhx.mail.service.message.InfoService;
|
|
|
|
+import com.fjhx.mail.service.personal.PersonalMailboxService;
|
|
import com.ruoyi.common.core.domain.entity.SysDept;
|
|
import com.ruoyi.common.core.domain.entity.SysDept;
|
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
|
|
|
+import com.ruoyi.common.exception.ServiceException;
|
|
import com.ruoyi.common.utils.SecurityUtils;
|
|
import com.ruoyi.common.utils.SecurityUtils;
|
|
import com.ruoyi.system.service.ISysDeptService;
|
|
import com.ruoyi.system.service.ISysDeptService;
|
|
import com.ruoyi.system.service.ISysUserService;
|
|
import com.ruoyi.system.service.ISysUserService;
|
|
@@ -25,6 +36,15 @@ public class InfoServiceImpl implements InfoService {
|
|
@Autowired
|
|
@Autowired
|
|
private ISysUserService sysUserService;
|
|
private ISysUserService sysUserService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private PersonalMailboxService personalMailboxService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private EnterpriseMailboxService enterpriseMailboxService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private EnterpriseDomainService enterpriseDomainService;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public List<SysUser> getUserList() {
|
|
public List<SysUser> getUserList() {
|
|
|
|
|
|
@@ -59,6 +79,43 @@ public class InfoServiceImpl implements InfoService {
|
|
return sysUserList;
|
|
return sysUserList;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public String sendMail(SendDto dto) {
|
|
|
|
+ Integer type = dto.getType();
|
|
|
|
+ Long mailboxId = dto.getMailboxId();
|
|
|
|
+
|
|
|
|
+ StringJoiner urlJoiner = new StringJoiner("/");
|
|
|
|
+ urlJoiner.add("sendMail");
|
|
|
|
+
|
|
|
|
+ if (type == 1) {
|
|
|
|
+ PersonalMailbox personalMailbox = personalMailboxService.getById(mailboxId);
|
|
|
|
+ if (personalMailbox == null) {
|
|
|
|
+ throw new ServiceException("未找到个人邮箱");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ urlJoiner.add(personalMailbox.getSendHost());
|
|
|
|
+ urlJoiner.add(personalMailbox.getMailUser());
|
|
|
|
+ urlJoiner.add(personalMailbox.getMailPassword());
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+
|
|
|
|
+ EnterpriseMailbox enterpriseMailbox = enterpriseMailboxService.getById(mailboxId);
|
|
|
|
+ if (enterpriseMailbox == null) {
|
|
|
|
+ throw new ServiceException("未找到企业邮箱");
|
|
|
|
+ }
|
|
|
|
+ EnterpriseDomain enterpriseDomain = enterpriseDomainService.getById(enterpriseMailbox.getDomainId());
|
|
|
|
+ if (enterpriseDomain == null) {
|
|
|
|
+ throw new ServiceException("未找到企业邮箱配置");
|
|
|
|
+ }
|
|
|
|
+ urlJoiner.add(enterpriseDomain.getSendHost());
|
|
|
|
+ urlJoiner.add(enterpriseMailbox.getMailUserPrefix() + "@" + enterpriseDomain.getDomainName());
|
|
|
|
+ urlJoiner.add(enterpriseMailbox.getMailPassword());
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return HttpUtil.post(MailServiceConfig.urlPrefix + urlJoiner, JSON.toJSONString(dto));
|
|
|
|
+ }
|
|
|
|
+
|
|
private void subordinateDeptId(Long deptId, Set<Long> deptSet, Map<Long, List<SysDept>> parentDeptMap) {
|
|
private void subordinateDeptId(Long deptId, Set<Long> deptSet, Map<Long, List<SysDept>> parentDeptMap) {
|
|
deptSet.add(deptId);
|
|
deptSet.add(deptId);
|
|
|
|
|