|
@@ -2,25 +2,16 @@ package com.smppw.modaq.application.service;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
-import cn.hutool.core.exceptions.ExceptionUtil;
|
|
|
-import cn.hutool.core.map.MapUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.smppw.modaq.application.util.EmailUtil;
|
|
|
import com.smppw.modaq.common.conts.DateConst;
|
|
|
import com.smppw.modaq.domain.dto.EmailContentInfoDTO;
|
|
|
-import com.smppw.modaq.domain.dto.EmailZipFileDTO;
|
|
|
import com.smppw.modaq.domain.dto.MailboxInfoDTO;
|
|
|
import com.smppw.modaq.domain.entity.EmailFileInfoDO;
|
|
|
import com.smppw.modaq.domain.entity.EmailParseInfoDO;
|
|
|
import com.smppw.modaq.domain.entity.MailboxInfoDO;
|
|
|
-import com.smppw.modaq.domain.mapper.EmailFileInfoMapper;
|
|
|
-import com.smppw.modaq.domain.mapper.EmailParseInfoMapper;
|
|
|
import com.smppw.modaq.domain.mapper.MailboxInfoMapper;
|
|
|
import com.smppw.modaq.domain.service.EmailParseService;
|
|
|
-import org.slf4j.Logger;
|
|
|
-import org.slf4j.LoggerFactory;
|
|
|
-import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
-import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.io.BufferedReader;
|
|
@@ -28,7 +19,6 @@ import java.io.FileReader;
|
|
|
import java.io.IOException;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* @author mozuwen
|
|
@@ -38,25 +28,22 @@ import java.util.Map;
|
|
|
@Service
|
|
|
public class EmailParseApiServiceImpl implements EmailParseApiService {
|
|
|
|
|
|
- private static final Logger log = LoggerFactory.getLogger(EmailParseApiServiceImpl.class);
|
|
|
+// private static final Logger log = LoggerFactory.getLogger(EmailParseApiServiceImpl.class);
|
|
|
|
|
|
private final MailboxInfoMapper mailboxInfoMapper;
|
|
|
private final EmailParseService emailParseService;
|
|
|
- private final EmailParseInfoMapper emailParseInfoMapper;
|
|
|
- private final EmailFileInfoMapper emailFileInfoMapper;
|
|
|
- private final ThreadPoolTaskExecutor asyncExecutor;
|
|
|
+// private final EmailParseInfoMapper emailParseInfoMapper;
|
|
|
+// private final EmailFileInfoMapper emailFileInfoMapper;
|
|
|
+// private final ThreadPoolTaskExecutor asyncExecutor;
|
|
|
// private final EmailTaskInfoMapper emailTaskInfoMapper;
|
|
|
|
|
|
public EmailParseApiServiceImpl(MailboxInfoMapper mailboxInfoMapper,
|
|
|
- EmailParseService emailParseService,
|
|
|
- EmailParseInfoMapper emailParseInfoMapper,
|
|
|
- EmailFileInfoMapper emailFileInfoMapper,
|
|
|
- @Qualifier("asyncExecutor") ThreadPoolTaskExecutor asyncExecutor) {
|
|
|
+ EmailParseService emailParseService) {
|
|
|
this.mailboxInfoMapper = mailboxInfoMapper;
|
|
|
this.emailParseService = emailParseService;
|
|
|
- this.emailParseInfoMapper = emailParseInfoMapper;
|
|
|
- this.emailFileInfoMapper = emailFileInfoMapper;
|
|
|
- this.asyncExecutor = asyncExecutor;
|
|
|
+// this.emailParseInfoMapper = emailParseInfoMapper;
|
|
|
+// this.emailFileInfoMapper = emailFileInfoMapper;
|
|
|
+// this.asyncExecutor = asyncExecutor;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -134,48 +121,48 @@ public class EmailParseApiServiceImpl implements EmailParseApiService {
|
|
|
// return emailTaskInfoDO;
|
|
|
// }
|
|
|
|
|
|
- @Override
|
|
|
- public void reparseEmail(Integer emailId) {
|
|
|
- // 查询邮件信息
|
|
|
- EmailParseInfoDO emailParseInfoDO = emailParseInfoMapper.queryById(emailId);
|
|
|
- if (emailParseInfoDO == null) {
|
|
|
- log.info("邮件不存在 ->邮件id:{}", emailId);
|
|
|
- return;
|
|
|
- }
|
|
|
- //解析成功的邮件不再解析
|
|
|
- if (emailParseInfoDO.getParseStatus() == 1) {
|
|
|
- log.info("邮件解析状态为成功,不再解析 ->邮件id:{}", emailId);
|
|
|
- return;
|
|
|
- }
|
|
|
- List<EmailFileInfoDO> emailFileInfoDOList = emailFileInfoMapper.queryByEmailId(emailId);
|
|
|
- if (CollUtil.isEmpty(emailFileInfoDOList)) {
|
|
|
- log.info("该邮件不存在附件 -> 邮件id:{}", emailId);
|
|
|
- return;
|
|
|
- }
|
|
|
-// // 邮件字段识别映射表
|
|
|
-// Map<String, List<String>> emailFieldMap = emailParseService.getEmailFieldMapping();
|
|
|
-// // 邮件类型配置
|
|
|
-// Map<Integer, List<String>> emailTypeMap = emailParseService.getEmailType();
|
|
|
-
|
|
|
- // 解析流程
|
|
|
- List<EmailContentInfoDTO> emailContentInfoDTOList = buildEmailContentInfoDTO(emailId, emailParseInfoDO, emailFileInfoDOList);
|
|
|
-
|
|
|
-// List<EmailFundNavDTO> emailFundNavDTOList = CollUtil.newArrayList();
|
|
|
- Map<EmailContentInfoDTO, List<EmailZipFileDTO>> emailZipFileMap = MapUtil.newHashMap();
|
|
|
- asyncExecutor.execute(() -> {
|
|
|
- for (EmailContentInfoDTO emailContentInfoDTO : emailContentInfoDTOList) {
|
|
|
- try {
|
|
|
- List<EmailZipFileDTO> emailZipFiles = emailParseService.parseZipEmail(emailContentInfoDTO);
|
|
|
- emailZipFileMap.put(emailContentInfoDTO, emailZipFiles);
|
|
|
-// emailFundNavDTOList.addAll(fundNavDTOList);
|
|
|
- } catch (Exception e) {
|
|
|
- log.error("重新解析邮件失败,邮件id:{},堆栈信息:{}", emailId, ExceptionUtil.stacktraceToString(e));
|
|
|
- }
|
|
|
- }
|
|
|
- // 保存相关信息 -> 邮件信息表,邮件文件表,邮件净值表,邮件规模表,基金净值表
|
|
|
- emailParseService.saveRelatedTable(null, emailParseInfoDO.getEmail(), emailZipFileMap);
|
|
|
- });
|
|
|
- }
|
|
|
+// @Override
|
|
|
+// public void reparseEmail(Integer emailId) {
|
|
|
+// // 查询邮件信息
|
|
|
+// EmailParseInfoDO emailParseInfoDO = emailParseInfoMapper.queryById(emailId);
|
|
|
+// if (emailParseInfoDO == null) {
|
|
|
+// log.info("邮件不存在 ->邮件id:{}", emailId);
|
|
|
+// return;
|
|
|
+// }
|
|
|
+// //解析成功的邮件不再解析
|
|
|
+// if (emailParseInfoDO.getParseStatus() == 1) {
|
|
|
+// log.info("邮件解析状态为成功,不再解析 ->邮件id:{}", emailId);
|
|
|
+// return;
|
|
|
+// }
|
|
|
+// List<EmailFileInfoDO> emailFileInfoDOList = emailFileInfoMapper.queryByEmailId(emailId);
|
|
|
+// if (CollUtil.isEmpty(emailFileInfoDOList)) {
|
|
|
+// log.info("该邮件不存在附件 -> 邮件id:{}", emailId);
|
|
|
+// return;
|
|
|
+// }
|
|
|
+//// // 邮件字段识别映射表
|
|
|
+//// Map<String, List<String>> emailFieldMap = emailParseService.getEmailFieldMapping();
|
|
|
+//// // 邮件类型配置
|
|
|
+//// Map<Integer, List<String>> emailTypeMap = emailParseService.getEmailType();
|
|
|
+//
|
|
|
+// // 解析流程
|
|
|
+// List<EmailContentInfoDTO> emailContentInfoDTOList = buildEmailContentInfoDTO(emailId, emailParseInfoDO, emailFileInfoDOList);
|
|
|
+//
|
|
|
+//// List<EmailFundNavDTO> emailFundNavDTOList = CollUtil.newArrayList();
|
|
|
+// Map<EmailContentInfoDTO, List<EmailZipFileDTO>> emailZipFileMap = MapUtil.newHashMap();
|
|
|
+// asyncExecutor.execute(() -> {
|
|
|
+// for (EmailContentInfoDTO emailContentInfoDTO : emailContentInfoDTOList) {
|
|
|
+// try {
|
|
|
+// List<EmailZipFileDTO> emailZipFiles = emailParseService.parseZipEmail(emailContentInfoDTO);
|
|
|
+// emailZipFileMap.put(emailContentInfoDTO, emailZipFiles);
|
|
|
+//// emailFundNavDTOList.addAll(fundNavDTOList);
|
|
|
+// } catch (Exception e) {
|
|
|
+// log.error("重新解析邮件失败,邮件id:{},堆栈信息:{}", emailId, ExceptionUtil.stacktraceToString(e));
|
|
|
+// }
|
|
|
+// }
|
|
|
+// // 保存相关信息 -> 邮件信息表,邮件文件表,邮件净值表,邮件规模表,基金净值表
|
|
|
+// emailParseService.saveRelatedTable(null, emailParseInfoDO.getEmail(), emailZipFileMap);
|
|
|
+// });
|
|
|
+// }
|
|
|
//
|
|
|
// @Override
|
|
|
// public void reparseFile(List<Integer> fileIdList) {
|