package com.simuwang.manage.service.impl; import com.simuwang.base.common.enums.DeletionType; 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.DeletionInfoMapper; import com.simuwang.base.mapper.FundInfoMapper; import com.simuwang.base.pojo.dos.DeletionInfoDO; import com.simuwang.base.pojo.dos.FundDeletionInfoDO; import com.simuwang.base.pojo.dto.DeletionDownParam; import com.simuwang.base.pojo.dto.ExcelDeletionInfoDTO; import com.simuwang.base.pojo.dto.query.DeletionPageQuery; import com.simuwang.base.pojo.dto.query.FundDeletionPageQuery; import com.simuwang.base.pojo.vo.*; import com.simuwang.manage.service.DeletionService; import com.simuwang.shiro.utils.UserUtils; 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: DeletionServiceImpl * Author: chenjianhua * Date: 2024/9/17 18:54 * Description: ${DESCRIPTION} */ @Service public class DeletionServiceImpl implements DeletionService { @Autowired private DeletionInfoMapper deletionInfoMapper; @Autowired private FundInfoMapper fundInfoMapper; @Override public MybatisPage searchDeletionList(DeletionPageQuery deletionPageQuery) { List deletionInfoDOList = deletionInfoMapper.searchDeletionList(deletionPageQuery); long total = deletionInfoMapper.countDeletion(deletionPageQuery); List dataList = deletionInfoDOList.stream().map(DeletionInfoDO::toVO).collect(Collectors.toList()); for(DeletionInfoVO vo : dataList){ String fundId = vo.getFundId(); String lastDeletionDate = deletionInfoMapper.getLastDeletionDateByFundId(fundId,vo.getDeletionType()); vo.setLastDeletionDate(lastDeletionDate); } return MybatisPage.of(total,dataList); } @Override public MybatisPage searchFundDeletionList(FundDeletionPageQuery fundDeletionPageQuery) { List deletionInfoDOList = deletionInfoMapper.searchFundDeletionList(fundDeletionPageQuery); long total = deletionInfoMapper.countFundDeletionList(fundDeletionPageQuery); List dataList = deletionInfoDOList.stream().map(FundDeletionInfoDO::toVO).collect(Collectors.toList()); for(FundDeletionInfoVO infoVO : dataList){ infoVO.setFundName(fundInfoMapper.getFundNameByFundId(infoVO.getFundId())); } return MybatisPage.of(total,dataList); } @Override public void saveFundDeletionList(List fundDeletionInfoVOList) { List fundDeletionInfoDOList = new ArrayList<>(); for(FundDeletionInfoVO vo : fundDeletionInfoVOList){ FundDeletionInfoDO fundDeletionInfoDO = new FundDeletionInfoDO(); fundDeletionInfoDO.setId(vo.getId()); fundDeletionInfoDO.setDeletionType(vo.getDeletionType()); fundDeletionInfoDO.setFundId(vo.getFundId()); fundDeletionInfoDO.setDeletionDate(vo.getDeletionDate()); fundDeletionInfoDO.setIsvalid(1); fundDeletionInfoDO.setUpdateTime(DateUtils.getNowDate()); fundDeletionInfoDO.setUpdaterId(UserUtils.getLoginUser().getUserId()); fundDeletionInfoDOList.add(fundDeletionInfoDO); } deletionInfoMapper.batchUpdate(fundDeletionInfoDOList); } @Override public void saveBatchDeletionRemark(FundDeletionRemarkVO fundDeletionRemarkVO) { String remark = fundDeletionRemarkVO.getRemark(); Integer userId = UserUtils.getLoginUser().getUserId(); for(FundDeletionTypeVO remarkVO : fundDeletionRemarkVO.getFundDeletionTypeList()){ deletionInfoMapper.updateRemark(remarkVO.getFundId(),remarkVO.getDeletionType(),remarkVO.getDeletionDate(),remark,userId); } } @Override public List selectFundDeletionInfoVOList(FundDeletionListVO fundDeletionListVO) { List result = new ArrayList<>(); List deletionDownParamList = fundDeletionListVO.getDeletionDownParamList(); for(DeletionDownParam deletionDownParam : deletionDownParamList){ List deletionInfoDOList = deletionInfoMapper.selectFundDeletionInfoVOList(deletionDownParam.getFundId(),deletionDownParam.getDeletionType()); for(FundDeletionInfoDO infoDO : deletionInfoDOList){ ExcelDeletionInfoDTO dto = new ExcelDeletionInfoDTO(); dto.setFundName(fundInfoMapper.getFundNameByFundId(infoDO.getFundId())); dto.setCompanyName(fundInfoMapper.getCompanyNameByFundId(infoDO.getFundId())); dto.setDeletionType(DeletionType.getDeletionTypeByCode(infoDO.getDeletionType()).getInfo()); dto.setDeletionDate(infoDO.getDeletionDate()); dto.setRemark(infoDO.getRemark()); dto.setFundId(infoDO.getFundId()); result.add(dto); } } return result; } }