123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package com.simuwang.daq.service;
- import cn.hutool.core.util.StrUtil;
- import com.simuwang.base.common.util.StringUtil;
- import com.simuwang.base.pojo.dto.EmailContentInfoDTO;
- import com.simuwang.base.pojo.dto.EmailFundNavDTO;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import java.util.List;
- import java.util.Map;
- public abstract class AbstractEmailParser {
- private static final Logger log = LoggerFactory.getLogger(AbstractEmailParser.class);
- public boolean isSupport(Integer emailType) {
- return false;
- }
- public abstract List<EmailFundNavDTO> parse(EmailContentInfoDTO emailContentInfoDTO, Map<String, List<String>> emailFieldMap);
- public boolean dataFormat(EmailFundNavDTO fundNavDTO) {
- // 净值日期格式校验
- boolean isvalidDate = StringUtil.isValidDate(fundNavDTO.getPriceDate());
- if (!isvalidDate) {
- log.warn("净值日期格式不正确 -> 解析到的数据:{}", fundNavDTO);
- return false;
- }
- // 单位净值,累计单位净值,资产净值,资产份额数字格式校验
- boolean isvalidNumericFormat = (StrUtil.isBlank(fundNavDTO.getNav()) || StringUtil.isNumeric(fundNavDTO.getNav()))
- && (StrUtil.isBlank(fundNavDTO.getCumulativeNavWithdrawal()) || StringUtil.isNumeric(fundNavDTO.getCumulativeNavWithdrawal()))
- && (StrUtil.isBlank(fundNavDTO.getAssetNet()) || StringUtil.isNumeric(fundNavDTO.getAssetNet()))
- && (StrUtil.isBlank(fundNavDTO.getAssetShare()) || StringUtil.isNumeric(fundNavDTO.getAssetShare()));
- if (!isvalidNumericFormat) {
- log.warn("单位净值或累计净值或资产净值或资产份额格式不正确 -> 解析到的数据:{}", fundNavDTO);
- return false;
- }
- log.info("数据格式验证通过 -> {}", fundNavDTO);
- return true;
- }
- }
|