From deb1848014ad211ef42110b0d78b22c491d7b7c7 Mon Sep 17 00:00:00 2001 From: zhangqinbin <181961702@qq.com> Date: Fri, 6 May 2022 09:20:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E5=A7=94=E6=89=98=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E3=80=81=E6=A0=87=E6=AE=B5=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E3=80=81=E6=A0=87=E6=AE=B5=E7=BC=96=E5=8F=B7=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=96=B0=E7=9A=84=E9=9D=9E=E6=B3=95=E5=AD=97=E7=AC=A6=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../checkSpecialCharacters/CheckUtil.java | 81 +++++++++++++++++-- .../ProjectEntrustInquiryServiceImpl.java | 4 +- .../impl/ProjectEntrustServiceImpl.java | 7 -- .../impl/ProjectRecordServiceImpl.java | 3 + 4 files changed, 80 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/checkSpecialCharacters/CheckUtil.java b/src/main/java/com/chinaunicom/mall/ebtp/project/checkSpecialCharacters/CheckUtil.java index 9f337f0..7301975 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/checkSpecialCharacters/CheckUtil.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/checkSpecialCharacters/CheckUtil.java @@ -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 { - 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) ; + private static String checkValue[] = {"\t","\n","\r","<",">","|","\\","/","?",":","*","\""}; + + private static int checkBdNameLengh = 200; + //zhqbin 20220428 update 增加对委托项目名称\t\r\n字符校验 + public static void checkInquiryVO(Map map) { + + if(map.get("projectRecord")!=null){ + ProjectRecord record = (ProjectRecord)map.get("projectRecord"); + check(record.getProjectName()); +// Map resultMap = new HashMap<>() + }; + if(map.get("sectionList")!=null){ + List sectionList = (List)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) { + 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) ; + } + } + } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/impl/ProjectEntrustInquiryServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/impl/ProjectEntrustInquiryServiceImpl.java index dc17040..62ede09 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/impl/ProjectEntrustInquiryServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectentrust/service/impl/ProjectEntrustInquiryServiceImpl.java @@ -88,9 +88,7 @@ public class ProjectEntrustInquiryServiceImpl extends BaseServiceImpl{ - 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(); } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/impl/ProjectRecordServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/impl/ProjectRecordServiceImpl.java index abecbe4..f1176d1 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/impl/ProjectRecordServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/projectrecord/service/impl/ProjectRecordServiceImpl.java @@ -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