ParseEmailDetailServiceImpl.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. package com.simuwang.manage.service.impl;
  2. import com.simuwang.base.common.conts.NavParseStatusConst;
  3. import com.simuwang.base.common.enums.NavReviewStatus;
  4. import com.simuwang.base.common.support.MybatisPage;
  5. import com.simuwang.base.common.util.DateUtils;
  6. import com.simuwang.base.common.util.StringUtil;
  7. import com.simuwang.base.mapper.daq.*;
  8. import com.simuwang.base.pojo.dos.*;
  9. import com.simuwang.base.pojo.dto.query.ParseDetailPageQuery;
  10. import com.simuwang.base.pojo.vo.*;
  11. import com.simuwang.manage.service.ParseEmailDetailService;
  12. import com.simuwang.shiro.utils.UserUtils;
  13. import com.smppw.common.pojo.ResultVo;
  14. import com.smppw.common.pojo.enums.status.ResultCode;
  15. import com.smppw.utils.DateUtil;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.stereotype.Service;
  18. import java.util.ArrayList;
  19. import java.util.Date;
  20. import java.util.List;
  21. import java.util.stream.Collectors;
  22. /**
  23. * FileName: ParseEmailDetailServiceImpl
  24. * Author: chenjianhua
  25. * Date: 2024/9/12 23:08
  26. * Description: ${DESCRIPTION}
  27. */
  28. @Service
  29. public class ParseEmailDetailServiceImpl implements ParseEmailDetailService {
  30. @Autowired
  31. private EmailFundNavMapper emailFundNavMapper;
  32. @Autowired
  33. private EmailFundAssetMapper emailFundAssetMapper;
  34. @Autowired
  35. private NavMapper navMapper;
  36. @Override
  37. public MybatisPage<EmailFundNavVO> searchNavDetail(ParseDetailPageQuery parseDetailPageQuery) {
  38. if(StringUtil.isNotEmpty(parseDetailPageQuery.getUpdateEndDate())){
  39. parseDetailPageQuery.setUpdateEndDate(DateUtil.getAroundDate(DateUtils.parse(parseDetailPageQuery.getUpdateEndDate(),DateUtils.YYYY_MM_DD),1));
  40. }
  41. List<EmailFundNavDO> dataList = emailFundNavMapper.searchNavDetail(parseDetailPageQuery);
  42. List<EmailFundNavVO> voList = dataList.stream().map(EmailFundNavDO::toVo).collect(Collectors.toList());
  43. long total = emailFundNavMapper.countNavDetail(parseDetailPageQuery);
  44. return MybatisPage.of(total,voList);
  45. }
  46. @Override
  47. public MybatisPage<EmailFundAssetVO> searchAssetDetail(ParseDetailPageQuery parseDetailPageQuery) {
  48. if(StringUtil.isNotEmpty(parseDetailPageQuery.getUpdateEndDate())){
  49. parseDetailPageQuery.setUpdateEndDate(DateUtil.getAroundDate(DateUtils.parse(parseDetailPageQuery.getUpdateEndDate(),DateUtils.YYYY_MM_DD),1));
  50. }
  51. List<EmailFundAssetDO> dataList = emailFundAssetMapper.searchAssetDetail(parseDetailPageQuery);
  52. List<EmailFundAssetVO> voList = dataList.stream().map(EmailFundAssetDO::toVo).collect(Collectors.toList());
  53. long total = emailFundAssetMapper.countAssetDetail(parseDetailPageQuery);
  54. return MybatisPage.of(total,voList);
  55. }
  56. @Override
  57. public ResultVo reviewEmailNav(NavReviewVO navReviewVO) {
  58. ResultVo vo = new ResultVo(ResultCode.SUCCESS.getCode());
  59. try{
  60. if(navReviewVO.getReviewStatus().equals(NavReviewStatus.PASS.getCode())){
  61. //审核通过的情况,需要修改解析状态以及入库数据
  62. EmailFundNavDO emailFundNavDO = emailFundNavMapper.selectFundNavById(navReviewVO.getId());
  63. emailFundNavDO.setRemark(navReviewVO.getRemark());
  64. emailFundNavDO.setIsStored(1);
  65. emailFundNavDO.setExceptionStatus(NavParseStatusConst.SUCCESS);
  66. emailFundNavDO.setUpdateTime(new Date());
  67. Integer userId = UserUtils.getLoginUser().getUserId();
  68. emailFundNavDO.setUpdaterId(userId);
  69. emailFundNavMapper.updateEmailNav(emailFundNavDO);
  70. //将净值入库
  71. NavDO navDO = navMapper.queryNavByFundIdDate(emailFundNavDO.getFundId(),DateUtils.format(emailFundNavDO.getPriceDate(),DateUtils.YYYY_MM_DD),emailFundNavDO.getChannelId());
  72. if(navDO == null){
  73. navDO = new NavDO();
  74. navDO.setNav(emailFundNavDO.getNav());
  75. navDO.setCumulativeNavWithdrawal(emailFundNavDO.getCumulativeNavWithdrawal());
  76. navDO.setFundId(emailFundNavDO.getFundId());
  77. navDO.setPriceDate(emailFundNavDO.getPriceDate());
  78. navDO.setUpdaterId(userId);
  79. navDO.setCreatorId(userId);
  80. navDO.setIsvalid(1);
  81. navDO.setUpdateTime(new Date());
  82. navDO.setCreateTime(new Date());
  83. navMapper.saveNav(navDO);
  84. }else{
  85. navDO.setNav(emailFundNavDO.getNav());
  86. navDO.setCumulativeNavWithdrawal(emailFundNavDO.getCumulativeNavWithdrawal());
  87. navDO.setUpdaterId(userId);
  88. navDO.setUpdateTime(new Date());
  89. navMapper.updateNav(navDO);
  90. }
  91. }
  92. //保存审核备注
  93. emailFundNavMapper.updateRemark(navReviewVO.getId(),navReviewVO.getRemark());
  94. }catch (Exception e){
  95. vo = new ResultVo(ResultCode.SAVE_FAILED.getCode());
  96. }
  97. return vo;
  98. }
  99. }