|
@@ -130,16 +130,16 @@ public class EmailParseService {
|
|
String emailTitle = CollUtil.isNotEmpty(emailContentInfoDTOList) ? emailContentInfoDTOList.get(0).getEmailTitle() : null;
|
|
String emailTitle = CollUtil.isNotEmpty(emailContentInfoDTOList) ? emailContentInfoDTOList.get(0).getEmailTitle() : null;
|
|
String emailDate = CollUtil.isNotEmpty(emailContentInfoDTOList) ? emailContentInfoDTOList.get(0).getEmailDate() : null;
|
|
String emailDate = CollUtil.isNotEmpty(emailContentInfoDTOList) ? emailContentInfoDTOList.get(0).getEmailDate() : null;
|
|
Integer emailType = CollUtil.isNotEmpty(emailContentInfoDTOList) ? emailContentInfoDTOList.get(0).getEmailType() : null;
|
|
Integer emailType = CollUtil.isNotEmpty(emailContentInfoDTOList) ? emailContentInfoDTOList.get(0).getEmailType() : null;
|
|
-
|
|
|
|
|
|
+ Integer emailId = CollUtil.isNotEmpty(emailContentInfoDTOList) ? emailContentInfoDTOList.get(0).getEmailId() : null;
|
|
Date parseDate = new Date();
|
|
Date parseDate = new Date();
|
|
int emailParseStatus = EmailParseStatusConst.SUCCESS;
|
|
int emailParseStatus = EmailParseStatusConst.SUCCESS;
|
|
- EmailParseInfoDO emailParseInfoDO = buildEmailParseInfo(emailAddress, emailDate, emailTitle, emailType, emailParseStatus, parseDate);
|
|
|
|
- Integer emailId = saveEmailParseInfo(emailParseInfoDO);
|
|
|
|
|
|
+ EmailParseInfoDO emailParseInfoDO = buildEmailParseInfo(emailId, emailAddress, emailDate, emailTitle, emailType, emailParseStatus, parseDate);
|
|
|
|
+ emailId = saveEmailParseInfo(emailParseInfoDO);
|
|
|
|
|
|
for (Map.Entry<EmailContentInfoDTO, List<EmailFundNavDTO>> fileNameNavEntry : fileNameNavMap.entrySet()) {
|
|
for (Map.Entry<EmailContentInfoDTO, List<EmailFundNavDTO>> fileNameNavEntry : fileNameNavMap.entrySet()) {
|
|
// 保存邮件文件表
|
|
// 保存邮件文件表
|
|
EmailContentInfoDTO emailContentInfoDTO = fileNameNavEntry.getKey();
|
|
EmailContentInfoDTO emailContentInfoDTO = fileNameNavEntry.getKey();
|
|
- Integer fileId = saveEmailFileInfo(emailId, emailContentInfoDTO.getFileName(), emailContentInfoDTO.getFilePath(), parseDate);
|
|
|
|
|
|
+ Integer fileId = saveEmailFileInfo(emailId, emailContentInfoDTO.getFielId(), emailContentInfoDTO.getFileName(), emailContentInfoDTO.getFilePath(), parseDate);
|
|
|
|
|
|
List<EmailFundNavDTO> fundNavDTOList = fileNameNavEntry.getValue();
|
|
List<EmailFundNavDTO> fundNavDTOList = fileNameNavEntry.getValue();
|
|
if (CollUtil.isEmpty(fundNavDTOList)) {
|
|
if (CollUtil.isEmpty(fundNavDTOList)) {
|
|
@@ -167,6 +167,8 @@ public class EmailParseService {
|
|
List<EmailFundNavDO> emailFundNavDOList = fundNavDTOList.stream()
|
|
List<EmailFundNavDO> emailFundNavDOList = fundNavDTOList.stream()
|
|
.map(e -> buildEmailFundNavDo(fileId, e, parseDate)).filter(CollUtil::isNotEmpty).flatMap(List::stream).collect(Collectors.toList());
|
|
.map(e -> buildEmailFundNavDo(fileId, e, parseDate)).filter(CollUtil::isNotEmpty).flatMap(List::stream).collect(Collectors.toList());
|
|
if (CollUtil.isNotEmpty(emailFundNavDOList)) {
|
|
if (CollUtil.isNotEmpty(emailFundNavDOList)) {
|
|
|
|
+ // 先删除文件id下的净值数据(考虑到重新解析的需求,如果是首次解析,那么fiel_id下不存在净值数据)
|
|
|
|
+ emailFundNavMapper.deleteByFileId(fileId);
|
|
emailFundNavMapper.batchInsert(emailFundNavDOList);
|
|
emailFundNavMapper.batchInsert(emailFundNavDOList);
|
|
List<NavDO> navDOList = emailFundNavDOList.stream().filter(e -> StrUtil.isNotBlank(e.getFundId()))
|
|
List<NavDO> navDOList = emailFundNavDOList.stream().filter(e -> StrUtil.isNotBlank(e.getFundId()))
|
|
.map(e -> BeanUtil.copyProperties(e, NavDO.class)).collect(Collectors.toList());
|
|
.map(e -> BeanUtil.copyProperties(e, NavDO.class)).collect(Collectors.toList());
|
|
@@ -176,6 +178,8 @@ public class EmailParseService {
|
|
List<EmailFundAssetDO> emailFundAssetDOList = fundNavDTOList.stream()
|
|
List<EmailFundAssetDO> emailFundAssetDOList = fundNavDTOList.stream()
|
|
.map(e -> buildEmailFundAssetDo(fileId, e, parseDate)).filter(CollUtil::isNotEmpty).flatMap(List::stream).collect(Collectors.toList());
|
|
.map(e -> buildEmailFundAssetDo(fileId, e, parseDate)).filter(CollUtil::isNotEmpty).flatMap(List::stream).collect(Collectors.toList());
|
|
if (CollUtil.isNotEmpty(emailFundAssetDOList)) {
|
|
if (CollUtil.isNotEmpty(emailFundAssetDOList)) {
|
|
|
|
+ // 先删除file_id下的规模数据(考虑到重新解析的需求,如果是首次解析,那么fiel_id下不存在规模数据)
|
|
|
|
+ emailFundAssetMapper.deleteByFileId(fileId);
|
|
emailFundAssetMapper.batchInsert(emailFundAssetDOList);
|
|
emailFundAssetMapper.batchInsert(emailFundAssetDOList);
|
|
List<AssetDO> assetDOList = emailFundAssetDOList.stream().filter(e -> StrUtil.isNotBlank(e.getFundId()))
|
|
List<AssetDO> assetDOList = emailFundAssetDOList.stream().filter(e -> StrUtil.isNotBlank(e.getFundId()))
|
|
.map(e -> BeanUtil.copyProperties(e, AssetDO.class)).collect(Collectors.toList());
|
|
.map(e -> BeanUtil.copyProperties(e, AssetDO.class)).collect(Collectors.toList());
|
|
@@ -321,14 +325,19 @@ public class EmailParseService {
|
|
return fundNavDOList;
|
|
return fundNavDOList;
|
|
}
|
|
}
|
|
|
|
|
|
- private Integer saveEmailFileInfo(Integer emailId, String fileName, String filePath, Date parseDate) {
|
|
|
|
- EmailFileInfoDO emailFileInfoDO = buildEmailFileInfoDO(emailId, fileName, filePath, parseDate);
|
|
|
|
|
|
+ private Integer saveEmailFileInfo(Integer emailId, Integer fileId, String fileName, String filePath, Date parseDate) {
|
|
|
|
+ EmailFileInfoDO emailFileInfoDO = buildEmailFileInfoDO(emailId, fileId, fileName, filePath, parseDate);
|
|
|
|
+ if (emailFileInfoDO.getId() != null) {
|
|
|
|
+ emailFileInfoMapper.updateTimeById(fileId, parseDate);
|
|
|
|
+ return emailFileInfoDO.getId();
|
|
|
|
+ }
|
|
emailFileInfoMapper.insert(emailFileInfoDO);
|
|
emailFileInfoMapper.insert(emailFileInfoDO);
|
|
return emailFileInfoDO.getId();
|
|
return emailFileInfoDO.getId();
|
|
}
|
|
}
|
|
|
|
|
|
- private EmailFileInfoDO buildEmailFileInfoDO(Integer emailId, String fileName, String filePath, Date parseDate) {
|
|
|
|
|
|
+ private EmailFileInfoDO buildEmailFileInfoDO(Integer emailId, Integer fileId, String fileName, String filePath, Date parseDate) {
|
|
EmailFileInfoDO emailFileInfoDO = new EmailFileInfoDO();
|
|
EmailFileInfoDO emailFileInfoDO = new EmailFileInfoDO();
|
|
|
|
+ emailFileInfoDO.setId(fileId);
|
|
emailFileInfoDO.setEmailId(emailId);
|
|
emailFileInfoDO.setEmailId(emailId);
|
|
emailFileInfoDO.setFileName(fileName);
|
|
emailFileInfoDO.setFileName(fileName);
|
|
emailFileInfoDO.setFilePath(filePath);
|
|
emailFileInfoDO.setFilePath(filePath);
|
|
@@ -376,12 +385,19 @@ public class EmailParseService {
|
|
if (emailParseInfoDO == null) {
|
|
if (emailParseInfoDO == null) {
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
+ // 重新邮件功能 -> 修改解析时间和更新时间
|
|
|
|
+ if (emailParseInfoDO.getId() != null) {
|
|
|
|
+ emailParseInfoMapper.updateParseTime(emailParseInfoDO.getId(), emailParseInfoDO.getParseDate());
|
|
|
|
+ return emailParseInfoDO.getId();
|
|
|
|
+ }
|
|
emailParseInfoMapper.insert(emailParseInfoDO);
|
|
emailParseInfoMapper.insert(emailParseInfoDO);
|
|
return emailParseInfoDO.getId();
|
|
return emailParseInfoDO.getId();
|
|
}
|
|
}
|
|
|
|
|
|
- private EmailParseInfoDO buildEmailParseInfo(String emailAddress, String emailDate, String emailTitle, Integer emailType, Integer parseStatus, Date parseDate) {
|
|
|
|
|
|
+ private EmailParseInfoDO buildEmailParseInfo(Integer emailId, String emailAddress, String emailDate,
|
|
|
|
+ String emailTitle, Integer emailType, Integer parseStatus, Date parseDate) {
|
|
EmailParseInfoDO emailParseInfoDO = new EmailParseInfoDO();
|
|
EmailParseInfoDO emailParseInfoDO = new EmailParseInfoDO();
|
|
|
|
+ emailParseInfoDO.setId(emailId);
|
|
emailParseInfoDO.setEmail(emailAddress);
|
|
emailParseInfoDO.setEmail(emailAddress);
|
|
emailParseInfoDO.setEmailDate(DateUtil.parse(emailDate, DateConst.YYYY_MM_DD_HH_MM_SS));
|
|
emailParseInfoDO.setEmailDate(DateUtil.parse(emailDate, DateConst.YYYY_MM_DD_HH_MM_SS));
|
|
emailParseInfoDO.setParseDate(parseDate);
|
|
emailParseInfoDO.setParseDate(parseDate);
|