package com.simuwang.manage.service.impl; import com.simuwang.base.common.support.MybatisPage; import com.simuwang.base.common.util.DateUtils; import com.simuwang.base.common.util.StringUtil; import com.simuwang.base.mapper.*; import com.simuwang.base.pojo.dos.*; import com.simuwang.base.pojo.dto.query.ParseDetailPageQuery; import com.simuwang.base.pojo.vo.*; import com.simuwang.manage.service.ParseEmailDetailService; import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** * FileName: ParseEmailDetailServiceImpl * Author: chenjianhua * Date: 2024/9/12 23:08 * Description: ${DESCRIPTION} */ @Service public class ParseEmailDetailServiceImpl implements ParseEmailDetailService { @Autowired private EmailFundNavMapper emailFundNavMapper; @Autowired private FundInfoMapper fundInfoMapper; @Autowired private EmailFundAssetMapper emailFundAssetMapper; @Autowired private AssetMapper assetMapper; @Autowired private NavMapper navMapper; @Override public MybatisPage searchNavDetail(ParseDetailPageQuery parseDetailPageQuery) { List dataList = emailFundNavMapper.searchNavDetail(parseDetailPageQuery); List voList = dataList.stream().map(EmailFundNavDO::toVo).collect(Collectors.toList()); for(EmailFundNavVO vo : voList){ //查找匹配基金 if(vo.getFundId() != null){ vo.setTargetFundId(vo.getFundId()); vo.setTargetFundName(fundInfoMapper.getFundNameByFundId(vo.getFundId())); } } long total = emailFundNavMapper.countNavDetail(parseDetailPageQuery); return MybatisPage.of(total,voList); } @Override public MybatisPage searchAssetDetail(ParseDetailPageQuery parseDetailPageQuery) { List dataList = emailFundAssetMapper.searchAssetDetail(parseDetailPageQuery); List voList = dataList.stream().map(EmailFundAssetDO::toVo).collect(Collectors.toList()); for(EmailFundAssetVO vo : voList){ //查找匹配基金 if(vo.getFundId() != null){ vo.setTargetFundId(vo.getFundId()); vo.setTargetFundName(fundInfoMapper.getFundNameByFundId(vo.getFundId())); } } long total = emailFundAssetMapper.countAssetDetail(parseDetailPageQuery); return MybatisPage.of(total,voList); } @Override public void saveFundAsset(FundAssetVO fundAssetVO) { List assetDOList = new ArrayList<>(); AssetDO assetDO = new AssetDO(); assetDO.setAssetNet(fundAssetVO.getAssetNet()); assetDO.setAssetShare(fundAssetVO.getAssetShare()); assetDO.setPriceDate(DateUtils.parse(fundAssetVO.getPriceDate(),DateUtils.YYYY_MM_DD)); assetDO.setFundId(fundAssetVO.getFundId()); assetDO.setUpdateTime(DateUtils.getNowDate()); assetDO.setIsvalid(1); AssetDO oldAssetDO = assetMapper.queryFundAsset(assetDO); if(StringUtil.isNull(oldAssetDO)){ assetDO.setCreateTime(DateUtils.getNowDate()); assetDOList.add(assetDO); assetMapper.batchInsert(assetDOList); }else{ oldAssetDO.setAssetShare(assetDO.getAssetShare()); oldAssetDO.setAssetNet(assetDO.getAssetNet()); assetDOList.add(oldAssetDO); assetMapper.batchUpdate(assetDOList); } } @Override public void saveFundNav(FundNavVO fundNavVO) { List navDOList = new ArrayList<>(); NavDO navDO = new NavDO(); navDO.setCumulativeNavWithdrawal(fundNavVO.getCumulativeNavWithdrawal()); navDO.setNav(fundNavVO.getNav()); navDO.setFundId(fundNavVO.getFundId()); navDO.setNav(fundNavVO.getNav()); navDO.setPriceDate(DateUtils.parse(fundNavVO.getPriceDate(),DateUtils.YYYY_MM_DD)); navDO.setIsvalid(1); navDO.setUpdateTime(DateUtils.getNowDate()); NavDO oldNav = navMapper.queryFundNav(navDO); if(StringUtil.isNull(oldNav)){ navDO.setCreateTime(DateUtils.getNowDate()); navDOList.add(navDO); navMapper.batchInsert(navDOList); }else{ oldNav.setUpdateTime(DateUtils.getNowDate()); oldNav.setCumulativeNav(navDO.getCumulativeNav()); oldNav.setCumulativeNavWithdrawal(navDO.getCumulativeNavWithdrawal()); oldNav.setNav(navDO.getNav()); navDOList.add(oldNav); navMapper.batchUpdate(navDOList); } } }