对委托项目名称、标段名称、标段编号增加新的非法字符校验

This commit is contained in:
zhangqinbin
2022-05-06 09:20:21 +08:00
parent b238a9cb6c
commit deb1848014
4 changed files with 80 additions and 15 deletions

View File

@ -1,16 +1,87 @@
package com.chinaunicom.mall.ebtp.project.checkSpecialCharacters;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.chinaunicom.mall.ebtp.common.exception.common.CommonExceptionEnum;
import com.chinaunicom.mall.ebtp.project.projectentrust.entity.ProjectEntrustVO;
import com.chinaunicom.mall.ebtp.project.projectrecord.entity.ProjectRecord;
import com.chinaunicom.mall.ebtp.project.projectsection.entity.ProjectSection;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class CheckUtil {
private static String checkValue[] = {"\t","\n","\r","<",">","|","\\","/","?",":","*","\""};
private static int checkBdNameLengh = 200;
//zhqbin 20220428 update 增加对委托项目名称\t\r\n字符校验
public static void checkInquiryVO(Map<String,Object> map) {
if(map.get("projectRecord")!=null){
ProjectRecord record = (ProjectRecord)map.get("projectRecord");
check(record.getProjectName());
// Map<String, Object> resultMap = new HashMap<>()
};
if(map.get("sectionList")!=null){
List<ProjectSection> sectionList = (List<ProjectSection>)map.get("sectionList");
sectionList.forEach(s->{
CheckUtil.check(s.getBidSectName());
CheckUtil.check(s.getBidSectBizNum());
CheckUtil.checkBdNameLengh("标段名称+标段编号",s.getBidSectName()+s.getBidSectBizNum());
});
}
}
public static void check(String s) {
//< > | \ / ? : * "
if (s!=null&&s instanceof String) {
CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA__ERROR.customValidName("不能包含\\t\\n\\r等特殊字符",s.toString().indexOf("\t")>0
||s.toString().indexOf("\n")>0
||s.toString().indexOf("\r")>0) ;
for(String s1:checkValue){
CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA__ERROR.customValidName("存在特殊字符",
s.toString().indexOf(s1)>0) ;
}
}
}
public static void checkBdNameLengh(String name,String value) {
CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA__ERROR.customValidName(name+"长度过长",
getLength(value)>checkBdNameLengh) ;
}
/**
* 获取字符串的长度如果有中文则每个中文字符计为2位
* @param value 指定的字符串
* @return 字符串的长度
*/
public static int getLength(String value) {
int valueLength = 0;
String chinese = "[\u0391-\uFFE5]";
/* 获取字段值的长度如果含中文字符则每个中文字符长度为2否则为1 */
for (int i = 0; i < value.length(); i++) {
/* 获取一个字符 */
String temp = value.substring(i,i + 1);
/* 判断是否为中文字符 */
if (temp.matches(chinese)) {
/* 中文字符长度为2 */
valueLength += 2;
} else {
/* 其他字符长度为1 */
valueLength += 1;
}
}
return valueLength;
}
public static void main(String args[]){
String[] ss = {"\t","\n","\r","<",">","|","\\","/","?",":","*","\""};
String s ="aaaaa\\aa";
for(String s1:ss){
System.out.println(s.toString().indexOf(s1)>0) ;
}
}
}

View File

@ -88,9 +88,7 @@ public class ProjectEntrustInquiryServiceImpl extends BaseServiceImpl<ProjectEnt
if(isRequestClient){
//校验数据
checkInquiryVO(inquiryVO);
//zhqbin 20220428 update 增加对委托项目名称\t\r\n字符校验
CheckUtil.check(inquiryVO.getTitle());
CheckUtil.check(inquiryVO.getInquiryNo());
//初始化委托单信息
ProjectEntrustVO projectEntrustVO = assembleProjectEntrust(inquiryVO);
if(isUpdate){

View File

@ -332,13 +332,6 @@ public class ProjectEntrustServiceImpl extends BaseServiceImpl<ProjectEntrustMap
PurpImplementSendVO purpImplementSendVO = baseResponse.getData();
//zhqbin 20220428 update 增加对委托项目名称\t\r\n字符校验
CheckUtil.check(purpImplementSendVO.getPurpImplementName());
purpImplementSendVO.getPurpBaseInfoVoList().forEach(s->{
CheckUtil.check(s.getProjBaseInfoVO().getPurpName());
CheckUtil.check(s.getProjBaseInfoVO().getProjNo());
});
if(null == purpImplementSendVO || null == purpImplementSendVO.getPurpSuperVo()){
ProjectExceptionEnum.FRAME_EXCEPTION_PROJECT_PURP_SUPER_VO_EMPTY.throwException();
}

View File

@ -17,6 +17,7 @@ import com.chinaunicom.mall.ebtp.common.constant.EbtpRoleEnum;
import com.chinaunicom.mall.ebtp.common.exception.common.CommonExceptionEnum;
import com.chinaunicom.mall.ebtp.common.util.JsonUtils;
import com.chinaunicom.mall.ebtp.common.util.PropertyUtils;
import com.chinaunicom.mall.ebtp.project.checkSpecialCharacters.CheckUtil;
import com.chinaunicom.mall.ebtp.project.common.EbpProjectCommonUtil;
import com.chinaunicom.mall.ebtp.project.common.InquiryCommonUtil;
import com.chinaunicom.mall.ebtp.project.common.ProjectCommonUtil;
@ -1018,6 +1019,8 @@ public class ProjectRecordServiceImpl extends BaseServiceImpl<ProjectRecordMappe
resultMap.put("sectionList", sectionList);
resultMap.put("materialList", materialList);
resultMap.put("supplierList", supplierList);
//zhqbin 校验非法字符,长度
CheckUtil.checkInquiryVO(resultMap);
return resultMap;
}