1
0

ParseEmailServiceImpl.java 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. package com.simuwang.manage.service.impl;
  2. import com.simuwang.base.common.enums.ParseStatus;
  3. import com.simuwang.base.common.support.MybatisPage;
  4. import com.simuwang.base.common.util.DateUtils;
  5. import com.simuwang.base.common.util.StringUtil;
  6. import com.simuwang.base.mapper.EmailFileInfoMapper;
  7. import com.simuwang.base.mapper.EmailParseInfoMapper;
  8. import com.simuwang.base.mapper.EmailTypeRuleMapper;
  9. import com.simuwang.base.pojo.dos.EmailFileInfoDO;
  10. import com.simuwang.base.pojo.dos.EmailParseDetailDO;
  11. import com.simuwang.base.pojo.dos.EmailParseInfoDO;
  12. import com.simuwang.base.pojo.dos.EmailTypeRuleDO;
  13. import com.simuwang.base.pojo.dto.query.EmailFileQuery;
  14. import com.simuwang.base.pojo.dto.query.EmailParseQuery;
  15. import com.simuwang.base.pojo.vo.EmailFileInfoVO;
  16. import com.simuwang.base.pojo.vo.EmailParseDetailVO;
  17. import com.simuwang.base.pojo.vo.EmailParseInfoVO;
  18. import com.simuwang.base.pojo.vo.EmailTypeRuleVO;
  19. import com.simuwang.manage.service.ParseEmailService;
  20. import com.smppw.common.pojo.enums.TimeRange;
  21. import com.smppw.utils.DateUtil;
  22. import org.springframework.beans.factory.annotation.Autowired;
  23. import org.springframework.stereotype.Service;
  24. import java.util.Date;
  25. import java.util.HashMap;
  26. import java.util.List;
  27. import java.util.Map;
  28. import java.util.stream.Collectors;
  29. /**
  30. * FileName: ParseEmailServiceImpl
  31. * Author: chenjianhua
  32. * Date: 2024/9/10 11:26
  33. * Description: ${DESCRIPTION}
  34. */
  35. @Service
  36. public class ParseEmailServiceImpl implements ParseEmailService {
  37. @Autowired
  38. private EmailTypeRuleMapper emailTypeRuleMapper;
  39. @Autowired
  40. private EmailParseInfoMapper emailParseInfoMapper;
  41. @Autowired
  42. private EmailFileInfoMapper emailFileInfoMapper;
  43. @Override
  44. public void saveEmailType(EmailTypeRuleVO emailTypeRuleVO) {
  45. EmailTypeRuleDO ruleDO = new EmailTypeRuleDO();
  46. ruleDO.setId(emailTypeRuleVO.getId());
  47. ruleDO.setNav(emailTypeRuleVO.getNav());
  48. ruleDO.setReport(emailTypeRuleVO.getReport());
  49. ruleDO.setValuation(emailTypeRuleVO.getValuation());
  50. ruleDO.setUpdateTime(new Date());
  51. if(ruleDO.getId() == null){
  52. ruleDO.setCreateTime(new Date());
  53. emailTypeRuleMapper.saveEmailType(ruleDO);
  54. }else{
  55. emailTypeRuleMapper.updateEmailType(ruleDO);
  56. }
  57. }
  58. @Override
  59. public EmailTypeRuleVO searchEmailType() {
  60. EmailTypeRuleVO emailTypeRuleVO = new EmailTypeRuleVO();
  61. EmailTypeRuleDO emailTypeRuleDO = emailTypeRuleMapper.searchEmailType();
  62. if(emailTypeRuleDO == null){
  63. return emailTypeRuleVO;
  64. }
  65. emailTypeRuleVO.setId(emailTypeRuleDO.getId());
  66. emailTypeRuleVO.setNav(emailTypeRuleDO.getNav());
  67. emailTypeRuleVO.setValuation(emailTypeRuleDO.getValuation());
  68. emailTypeRuleVO.setReport(emailTypeRuleDO.getReport());
  69. return emailTypeRuleVO;
  70. }
  71. @Override
  72. public MybatisPage<EmailParseInfoVO> searchEmailList(EmailParseQuery emailParseQuery){
  73. if(!emailParseQuery.getTimeRange().equals(TimeRange.Custom) && !emailParseQuery.getTimeRange().equals(TimeRange.FromSetup)){
  74. emailParseQuery.setEndDate(DateUtils.getAroundToday(1));
  75. emailParseQuery.setStartDate( DateUtil.RangeTime(emailParseQuery.getTimeRange().getFloatDateSymbel(),DateUtil.getTodayDate()));
  76. }else{
  77. //自定义时间,把结束时间延后一天,确保时间判断能查到结束日期当天的数据
  78. emailParseQuery.setEndDate(DateUtil.getAroundDate(DateUtils.parse(emailParseQuery.getEndDate(),DateUtils.YYYY_MM_DD),1));
  79. }
  80. List<EmailParseInfoDO> emailParseInfoDOList = emailParseInfoMapper.searchEmailList(emailParseQuery);
  81. List<EmailParseInfoVO> emailParseInfoVOList = emailParseInfoDOList.stream()
  82. .map(EmailParseInfoDO::toVO).collect(Collectors.toList());
  83. for(EmailParseInfoVO vo : emailParseInfoVOList){
  84. List<EmailFileInfoDO> emailFileInfoList = emailFileInfoMapper.getEmailFileByEmailId(vo.getId());
  85. List<EmailFileInfoVO> emailFileInfoVOList = emailFileInfoList.stream().map(EmailFileInfoDO::toVO).collect(Collectors.toList());
  86. vo.setEmailFileInfoList(emailFileInfoVOList);
  87. }
  88. long total = emailParseInfoMapper.countEmailList(emailParseQuery);
  89. return MybatisPage.of(total,emailParseInfoVOList);
  90. }
  91. @Override
  92. public Map<String, Integer> searchEmailCount(TimeRange timeRange,String startDate,String endDate) {
  93. if(!timeRange.equals(TimeRange.Custom) && !timeRange.equals(TimeRange.FromSetup)){
  94. endDate = DateUtils.getAroundToday(1);
  95. startDate = DateUtil.RangeTime(timeRange.getFloatDateSymbel(),DateUtil.getTodayDate());
  96. }else{
  97. //自定义时间,把结束时间延后一天,确保时间判断能查到结束日期当天的数据
  98. endDate = DateUtil.getAroundDate(DateUtils.parse(endDate,DateUtils.YYYY_MM_DD),1);
  99. }
  100. Map<String, Integer> result = new HashMap<>();
  101. Integer parseTotal = emailParseInfoMapper.searchEmailCount(startDate,endDate,null);
  102. result.put("parseTotal",parseTotal);
  103. Integer parseSuccess = emailParseInfoMapper.searchEmailCount(startDate,endDate, ParseStatus.Success.getCode());
  104. result.put("parseSuccess",parseSuccess);
  105. Integer parseFail = emailParseInfoMapper.searchEmailCount(startDate,endDate, ParseStatus.Fail.getCode());
  106. result.put("parseFail",parseFail);
  107. return result;
  108. }
  109. private String getParseDate(TimeRange timeRange, String date) {
  110. String preDate =DateUtil.RangeTime(timeRange.getFloatDateSymbel(),date);
  111. return preDate;
  112. }
  113. @Override
  114. public EmailFileInfoVO getEmailFileById(Integer fileId) {
  115. EmailFileInfoDO emailFileInfoDO = emailFileInfoMapper.getEmailFileById(fileId);
  116. EmailFileInfoVO fileInfoVO = new EmailFileInfoVO();
  117. if(emailFileInfoDO != null){
  118. fileInfoVO.setId(emailFileInfoDO.getId());
  119. fileInfoVO.setEmailId(emailFileInfoDO.getEmailId());
  120. fileInfoVO.setFilePath(emailFileInfoDO.getFilePath());
  121. fileInfoVO.setFileName(emailFileInfoDO.getFileName());
  122. }
  123. return fileInfoVO;
  124. }
  125. @Override
  126. public MybatisPage<EmailParseDetailVO> searchEmailDetailById(EmailFileQuery emailFileQuery) {
  127. //根据邮件ID获取附件信息
  128. List<EmailParseDetailDO> dataList = emailFileInfoMapper.searchEmailDetailById(emailFileQuery);
  129. List<EmailParseDetailVO> result = dataList.stream().filter(e -> StringUtil.isNotNull(e)).map(EmailParseDetailDO::toVO).collect(Collectors.toList());
  130. long total = emailFileInfoMapper.countEmailDetailById(emailFileQuery);
  131. return MybatisPage.of(total,result);
  132. }
  133. }