123456789101112131415161718192021222324252627282930313233343536373839404142 |
- 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;
- }
- }
|