AbstractEmailParser.java 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package com.simuwang.daq.service;
  2. import cn.hutool.core.util.StrUtil;
  3. import com.simuwang.base.common.util.StringUtil;
  4. import com.simuwang.base.pojo.dto.EmailContentInfoDTO;
  5. import com.simuwang.base.pojo.dto.EmailFundNavDTO;
  6. import org.slf4j.Logger;
  7. import org.slf4j.LoggerFactory;
  8. import java.util.List;
  9. import java.util.Map;
  10. public abstract class AbstractEmailParser {
  11. private static final Logger log = LoggerFactory.getLogger(AbstractEmailParser.class);
  12. public boolean isSupport(Integer emailType) {
  13. return false;
  14. }
  15. public abstract List<EmailFundNavDTO> parse(EmailContentInfoDTO emailContentInfoDTO, Map<String, List<String>> emailFieldMap);
  16. public boolean dataFormat(EmailFundNavDTO fundNavDTO) {
  17. // 净值日期格式校验
  18. boolean isvalidDate = StringUtil.isValidDate(fundNavDTO.getPriceDate());
  19. if (!isvalidDate) {
  20. log.warn("净值日期格式不正确 -> 解析到的数据:{}", fundNavDTO);
  21. return false;
  22. }
  23. // 单位净值,累计单位净值,资产净值,资产份额数字格式校验
  24. boolean isvalidNumericFormat = (StrUtil.isBlank(fundNavDTO.getNav()) || StringUtil.isNumeric(fundNavDTO.getNav()))
  25. && (StrUtil.isBlank(fundNavDTO.getCumulativeNavWithdrawal()) || StringUtil.isNumeric(fundNavDTO.getCumulativeNavWithdrawal()))
  26. && (StrUtil.isBlank(fundNavDTO.getAssetNet()) || StringUtil.isNumeric(fundNavDTO.getAssetNet()))
  27. && (StrUtil.isBlank(fundNavDTO.getAssetShare()) || StringUtil.isNumeric(fundNavDTO.getAssetShare()));
  28. if (!isvalidNumericFormat) {
  29. log.warn("单位净值或累计净值或资产净值或资产份额格式不正确 -> 解析到的数据:{}", fundNavDTO);
  30. return false;
  31. }
  32. log.info("数据格式验证通过 -> {}", fundNavDTO);
  33. return true;
  34. }
  35. }