ParseEmailDetailServiceImpl.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package com.simuwang.manage.service.impl;
  2. import com.simuwang.base.common.support.MybatisPage;
  3. import com.simuwang.base.common.util.DateUtils;
  4. import com.simuwang.base.common.util.StringUtil;
  5. import com.simuwang.base.mapper.*;
  6. import com.simuwang.base.pojo.dos.*;
  7. import com.simuwang.base.pojo.dto.query.ParseDetailPageQuery;
  8. import com.simuwang.base.pojo.vo.*;
  9. import com.simuwang.manage.service.ParseEmailDetailService;
  10. import org.checkerframework.checker.units.qual.A;
  11. import org.springframework.beans.factory.annotation.Autowired;
  12. import org.springframework.stereotype.Service;
  13. import java.util.ArrayList;
  14. import java.util.List;
  15. import java.util.stream.Collectors;
  16. /**
  17. * FileName: ParseEmailDetailServiceImpl
  18. * Author: chenjianhua
  19. * Date: 2024/9/12 23:08
  20. * Description: ${DESCRIPTION}
  21. */
  22. @Service
  23. public class ParseEmailDetailServiceImpl implements ParseEmailDetailService {
  24. @Autowired
  25. private EmailFundNavMapper emailFundNavMapper;
  26. @Autowired
  27. private FundInfoMapper fundInfoMapper;
  28. @Autowired
  29. private EmailFundAssetMapper emailFundAssetMapper;
  30. @Autowired
  31. private AssetMapper assetMapper;
  32. @Autowired
  33. private NavMapper navMapper;
  34. @Override
  35. public MybatisPage<EmailFundNavVO> searchNavDetail(ParseDetailPageQuery parseDetailPageQuery) {
  36. List<EmailFundNavDO> dataList = emailFundNavMapper.searchNavDetail(parseDetailPageQuery);
  37. List<EmailFundNavVO> voList = dataList.stream().map(EmailFundNavDO::toVo).collect(Collectors.toList());
  38. for(EmailFundNavVO vo : voList){
  39. //查找匹配基金
  40. if(vo.getFundId() != null){
  41. vo.setTargetFundId(vo.getFundId());
  42. vo.setTargetFundName(fundInfoMapper.getFundNameByFundId(vo.getFundId()));
  43. }
  44. }
  45. long total = emailFundNavMapper.countNavDetail(parseDetailPageQuery);
  46. return MybatisPage.of(total,voList);
  47. }
  48. @Override
  49. public MybatisPage<EmailFundAssetVO> searchAssetDetail(ParseDetailPageQuery parseDetailPageQuery) {
  50. List<EmailFundAssetDO> dataList = emailFundAssetMapper.searchAssetDetail(parseDetailPageQuery);
  51. List<EmailFundAssetVO> voList = dataList.stream().map(EmailFundAssetDO::toVo).collect(Collectors.toList());
  52. for(EmailFundAssetVO vo : voList){
  53. //查找匹配基金
  54. if(vo.getFundId() != null){
  55. vo.setTargetFundId(vo.getFundId());
  56. vo.setTargetFundName(fundInfoMapper.getFundNameByFundId(vo.getFundId()));
  57. }
  58. }
  59. long total = emailFundAssetMapper.countAssetDetail(parseDetailPageQuery);
  60. return MybatisPage.of(total,voList);
  61. }
  62. @Override
  63. public void saveFundAsset(FundAssetVO fundAssetVO) {
  64. List<AssetDO> assetDOList = new ArrayList<>();
  65. AssetDO assetDO = new AssetDO();
  66. assetDO.setAssetNet(fundAssetVO.getAssetNet());
  67. assetDO.setAssetShare(fundAssetVO.getAssetShare());
  68. assetDO.setPriceDate(DateUtils.parse(fundAssetVO.getPriceDate(),DateUtils.YYYY_MM_DD));
  69. assetDO.setFundId(fundAssetVO.getFundId());
  70. assetDO.setUpdateTime(DateUtils.getNowDate());
  71. assetDO.setIsvalid(1);
  72. AssetDO oldAssetDO = assetMapper.queryFundAsset(assetDO);
  73. if(StringUtil.isNull(oldAssetDO)){
  74. assetDO.setCreateTime(DateUtils.getNowDate());
  75. assetDOList.add(assetDO);
  76. assetMapper.batchInsert(assetDOList);
  77. }else{
  78. oldAssetDO.setAssetShare(assetDO.getAssetShare());
  79. oldAssetDO.setAssetNet(assetDO.getAssetNet());
  80. assetDOList.add(oldAssetDO);
  81. assetMapper.batchUpdate(assetDOList);
  82. }
  83. }
  84. @Override
  85. public void saveFundNav(FundNavVO fundNavVO) {
  86. List<NavDO> navDOList = new ArrayList<>();
  87. NavDO navDO = new NavDO();
  88. navDO.setCumulativeNav(fundNavVO.getCumulativeNavWithdrawal());
  89. navDO.setCumulativeNavWithdrawal(fundNavVO.getCumulativeNavWithdrawal());
  90. navDO.setNav(fundNavVO.getNav());
  91. navDO.setFundId(fundNavVO.getFundId());
  92. navDO.setNav(fundNavVO.getNav());
  93. navDO.setPriceDate(DateUtils.parse(fundNavVO.getPriceDate(),DateUtils.YYYY_MM_DD));
  94. navDO.setIsvalid(1);
  95. navDO.setUpdateTime(DateUtils.getNowDate());
  96. NavDO oldNav = navMapper.queryFundNav(navDO);
  97. if(StringUtil.isNull(oldNav)){
  98. navDO.setCreateTime(DateUtils.getNowDate());
  99. navDOList.add(navDO);
  100. navMapper.batchInsert(navDOList);
  101. }else{
  102. oldNav.setUpdateTime(DateUtils.getNowDate());
  103. oldNav.setCumulativeNav(navDO.getCumulativeNav());
  104. oldNav.setCumulativeNavWithdrawal(navDO.getCumulativeNav());
  105. oldNav.setNav(navDO.getNav());
  106. navDOList.add(oldNav);
  107. navMapper.batchUpdate(navDOList);
  108. }
  109. }
  110. }