123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- package com.simuwang.manage.service.impl;
- import com.simuwang.base.common.conts.UserConstants;
- import com.simuwang.base.common.enums.EmailCron;
- import com.simuwang.base.common.enums.ResultCode;
- import com.simuwang.base.common.support.MybatisPage;
- import com.simuwang.base.common.util.EmailUtil;
- import com.simuwang.base.common.util.StringUtil;
- import com.simuwang.base.mapper.MailboxInfoMapper;
- import com.simuwang.base.pojo.dos.CompanyEmailSendHistoryDO;
- import com.simuwang.base.pojo.dos.MailboxInfoDO;
- import com.simuwang.base.pojo.dto.MailboxInfoDTO;
- import com.simuwang.base.pojo.dto.query.EmailPageQuery;
- import com.simuwang.base.pojo.vo.MailboxInfoTableVO;
- import com.simuwang.base.pojo.vo.MailboxInfoVO;
- import com.simuwang.manage.service.EmailConfigService;
- import jakarta.mail.MessagingException;
- import jakarta.mail.Store;
- import org.quartz.Scheduler;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.Date;
- import java.util.List;
- import java.util.stream.Collectors;
- /**
- * FileName: EmailConfigServiceImpl
- * Author: chenjianhua
- * Date: 2024/9/9 13:40
- * Description: ${DESCRIPTION}
- */
- @Service
- public class EmailConfigServiceImpl implements EmailConfigService {
- @Autowired
- private MailboxInfoMapper emailConfigMapper;
- @Autowired
- private Scheduler scheduler;
- @Override
- public MybatisPage<MailboxInfoTableVO> searchEmailConfigList(EmailPageQuery emailPageQuery) {
- List<MailboxInfoDO> mailboxInfoOS = emailConfigMapper.searchEmailConfigList(emailPageQuery);
- List<MailboxInfoTableVO> mailboxInfoTableVOS = mailboxInfoOS.stream().map(MailboxInfoDO::toVo).collect(Collectors.toList());
- for(MailboxInfoTableVO mailboxInfoTableVO : mailboxInfoTableVOS){ //cron表达式转文本描述
- mailboxInfoTableVO.setCron(EmailCron.getEmailCronByCron(mailboxInfoTableVO.getCron()).getText());
- }
- long total = emailConfigMapper.countEmailConfig(emailPageQuery);
- return MybatisPage.of(total,mailboxInfoTableVOS);
- }
- @Override
- @Transactional
- public void saveEmailConfig(MailboxInfoVO mailboxInfoVO) {
- MailboxInfoDO mailboxInfoDO = toMailboxInfoDO(mailboxInfoVO);
- if(mailboxInfoVO.getId() == null){
- mailboxInfoDO.setCreateTime(new Date());
- mailboxInfoDO.setCron(EmailCron.getEmailCronByText(mailboxInfoVO.getCron()).getCron());
- emailConfigMapper.insert(mailboxInfoDO);
- }else{
- emailConfigMapper.updateById(mailboxInfoDO);
- }
- }
- @Override
- public String connectTest(MailboxInfoVO mailboxInfoVO) {
- MailboxInfoDTO mailboxInfoDTO = new MailboxInfoDTO();
- mailboxInfoDTO.setAccount(mailboxInfoVO.getEmail());
- mailboxInfoDTO.setPassword(mailboxInfoVO.getPassword());
- mailboxInfoDTO.setPort(mailboxInfoVO.getPort());
- mailboxInfoDTO.setHost(mailboxInfoVO.getServer());
- mailboxInfoDTO.setProtocol(mailboxInfoVO.getProtocol());
- Store store = EmailUtil.getStoreNew(mailboxInfoDTO);
- if(store != null){
- try {
- store.close();
- } catch (MessagingException e) {
- throw new RuntimeException(e);
- }
- return ResultCode.CONNECT_SUCCESS.getMsg();
- }
- return ResultCode.CONNECT_ERROR.getMsg();
- }
- @Override
- public void deleteEmailConfig(List<Integer> idList) {
- emailConfigMapper.deleteEmailConfigByIds(idList);
- }
- @Override
- public boolean checkEmailUnique(String email) {
- MailboxInfoDO mailboxInfoDO = emailConfigMapper.checkEmailUnique(email);
- if (StringUtil.isNotNull(mailboxInfoDO))
- {
- return UserConstants.NOT_UNIQUE;
- }
- return UserConstants.UNIQUE;
- }
- private MailboxInfoDO toMailboxInfoDO(MailboxInfoVO mailboxInfoVO) {
- MailboxInfoDO mailboxInfoDO = new MailboxInfoDO();
- mailboxInfoDO.setIsvalid(1);
- mailboxInfoDO.setId(mailboxInfoVO.getId());
- mailboxInfoDO.setEmail(mailboxInfoVO.getEmail());
- mailboxInfoDO.setCron(EmailCron.getEmailCronByText(mailboxInfoVO.getCron()).getCron());
- mailboxInfoDO.setServer(mailboxInfoVO.getServer());
- mailboxInfoDO.setPort(mailboxInfoVO.getPort());
- mailboxInfoDO.setDescription(mailboxInfoVO.getDescription());
- mailboxInfoDO.setPassword(mailboxInfoVO.getPassword());
- mailboxInfoDO.setType(mailboxInfoVO.getType());
- mailboxInfoDO.setProtocol(mailboxInfoVO.getProtocol());
- mailboxInfoDO.setOpenStatus(mailboxInfoVO.getOpenStatus());
- mailboxInfoDO.setUpdateTime(new Date());
- mailboxInfoDO.setUpdaterId(999);
- mailboxInfoDO.setCreatorId(999);
- return mailboxInfoDO;
- }
- }
|