对委托项目名称、标段名称、标段编号增加新的非法字符校验
This commit is contained in:
@ -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) ;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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){
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user