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.AssetMapper; import com.simuwang.base.mapper.EmailFundAssetMapper; import com.simuwang.base.mapper.EmailFundNavMapper; import com.simuwang.base.mapper.FundInfoMapper; import com.simuwang.base.pojo.dos.AssetDO; import com.simuwang.base.pojo.dos.CompanyEmailSendHistoryDO; import com.simuwang.base.pojo.dos.EmailFundAssetDO; import com.simuwang.base.pojo.dos.EmailFundNavDO; import com.simuwang.base.pojo.dto.query.ParseDetailPageQuery; import com.simuwang.base.pojo.vo.CompanyEmailSendHistoryVO; import com.simuwang.base.pojo.vo.EmailFundAssetVO; import com.simuwang.base.pojo.vo.EmailFundNavVO; import com.simuwang.base.pojo.vo.FundAssetVO; 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; @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.setCreateTime(DateUtils.getNowDate()); assetDO.setUpdateTime(DateUtils.getNowDate()); assetDO.setIsvalid(1); assetDOList.add(assetDO); AssetDO oldAssetDO = assetMapper.queryFundAsset(assetDO); if(StringUtil.isNull(oldAssetDO)){ assetMapper.batchInsert(assetDOList); }else{ oldAssetDO.setAssetShare(assetDO.getAssetShare()); oldAssetDO.setAssetNet(assetDO.getAssetNet()); assetMapper.batchInsert(assetDOList); } } }