package com.supervision.dto; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; @Data @Builder public class QueryProcessDTO { /** * 处理状态 0:正常 1:参数校验异常 2:系统异常 */ private Integer state; /** * 内容类型 1-文本,2-音频,3-文件,4-图片,5-视频 6-档案文件 */ private Integer contentType; /** * 字符串类型的内容 */ private String stringContent; /** * 字节数组类型的内容 */ private byte[] byteContent; private File fileContent; /** * 字节数组类型的id */ private String byteContentId; /** * 参数校验的参数列表 */ private List paramCheckList; public String paramCheckToMessage(){ if (CollUtil.isEmpty(paramCheckList)){ return ""; } String paraDescJoin = paramCheckList.stream().map(ParamCheckDTO::getParamDesc).filter(StrUtil::isNotEmpty).collect(Collectors.joining(",")); return "请设置必要信息:"+paraDescJoin; } /** * 判断参数是否为空 为空则添加到参数校验列表中 * @param paramName 参数名 * @param value 参数值 * @param errorMsgTemplate 错误信息模板 * @param */ public void notNullParam(String paramName, T value, String errorMsgTemplate){ if(Objects.isNull(value)){ this.state = 1; if (null == paramCheckList){ paramCheckList = new ArrayList<>(); } this.paramCheckList.add(new ParamCheckDTO(paramName, errorMsgTemplate,1)); } } /** * 判断参数是否为空 为空则添加到参数校验列表中 * @param paramName 参数名 * @param value 参数值 * @param errorMsgTemplate 错误信息模板 * @param */ public void notEmptyParam(String paramName, T value, String errorMsgTemplate){ if(StrUtil.isEmpty(value)){ this.state = 1; this.paramCheckList.add(new ParamCheckDTO(paramName, errorMsgTemplate,2)); } } @Data @AllArgsConstructor static class ParamCheckDTO { private String paramName; private String paramDesc; /** * 错误类型 1:参数缺失 2:参数值错误 3:参数类型错误 */ private Integer errorType; public String toMessage(){ if (Integer.valueOf(1).equals(errorType)){ return String.format("参数%s缺失",paramName); } if (Integer.valueOf(2).equals(errorType)){ return String.format("参数%s值错误",paramName); } if (Integer.valueOf(3).equals(errorType)){ return String.format("参数%s类型错误",paramName); } return ""; } } }