package com.simuwang.base.common.util; import cn.hutool.core.util.StrUtil; import com.simuwang.base.pojo.dto.EmailFundNavDTO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class NavDataUtil { private static final Logger log = LoggerFactory.getLogger(NavDataUtil.class); public static boolean navDataFormatCheck(EmailFundNavDTO fundNavDTO) { // 净值日期格式校验 if (StrUtil.isBlank(fundNavDTO.getPriceDate())) { log.warn("净值日期为空 -> 数据:{}", fundNavDTO); return false; } if (StrUtil.isBlank(fundNavDTO.getFundName()) && StrUtil.isBlank(fundNavDTO.getRegisterNumber())) { log.warn("备案编码和基金名称都为空-> 数据:{}", fundNavDTO); return false; } if (StrUtil.isNotBlank(fundNavDTO.getFundName()) && fundNavDTO.getFundName().length() > 110) { log.warn("基金名称长度超出限制(110个字符)-> 数据:{}", fundNavDTO); return false; } if (StrUtil.isNotBlank(fundNavDTO.getRegisterNumber()) && fundNavDTO.getRegisterNumber().length() > 12) { log.warn("备案编码长度超出限制(12个字符)-> 数据:{}", 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; } }