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 parse(EmailContentInfoDTO emailContentInfoDTO, Map> 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; } }