From 11ef475852c5fc3dfe873d4477d24a39acdf711f Mon Sep 17 00:00:00 2001 From: dxc Date: Thu, 23 Dec 2021 09:09:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=AF=A2=E4=BB=B7=E7=B1=BB?= =?UTF-8?q?=E5=88=AB=E5=90=8D=E7=A7=B0=E5=92=8C=E7=9B=AE=E5=BD=95=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E6=AD=A3=E5=88=99=E6=A0=A1=E9=AA=8C=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E6=96=87=E4=BB=B6=E7=9B=B8=E5=85=B3=E7=89=B9?= =?UTF-8?q?=E6=AE=8A=E5=AD=97=E7=AC=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ebtp/project/common/InquiryCommonUtil.java | 5 +++++ .../ebtp/project/common/ProjectExceptionEnum.java | 4 ++++ .../impl/ProjectEntrustInquiryServiceImpl.java | 14 ++++++++++++++ 3 files changed, 23 insertions(+) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/common/InquiryCommonUtil.java b/src/main/java/com/chinaunicom/mall/ebtp/project/common/InquiryCommonUtil.java index 3fb02e2..79f81a1 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/common/InquiryCommonUtil.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/common/InquiryCommonUtil.java @@ -112,4 +112,9 @@ public class InquiryCommonUtil { put(SELECT_TYPE_0,ProjectCommonUtil.EVAL_METHOD_2); put(SELECT_TYPE_1,ProjectCommonUtil.EVAL_METHOD_1); }}; + + /** + * 文件名称特殊字符校验规则 + */ + public static final String FILE_NAME_PATTERN = "[\\s\\\\/:\\*\\?\\\"<>\\|]"; } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/project/common/ProjectExceptionEnum.java b/src/main/java/com/chinaunicom/mall/ebtp/project/common/ProjectExceptionEnum.java index 6721732..d9ef8f1 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/project/common/ProjectExceptionEnum.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/project/common/ProjectExceptionEnum.java @@ -177,6 +177,10 @@ public enum ProjectExceptionEnum implements BusinessExceptionAssert { FRAME_EXCEPTION_PROJECT_ENTRUST_AGENCY_COMPANY_EMPTY(110082, "项目委托信息代理机构ID为空!"), FRAME_EXCEPTION_USER_PROVINCE_EMPTY(110083, "用户信息或者用户的所属省分编码为空!"), + + FRAME_EXCEPTION_INQUIRY_RESPONSE_FORMAT_LIST_NAME_ERROR(110084,"询价应答格式列表数据中目录名称包含特殊字符"), + + FRAME_EXCEPTION_INQUIRY_RESPONSE_FORMAT_LIST_CATEGORY_NAME_ERROR(110085,"询价应答格式列表数据中类别名称包含特殊字符"), ; /** 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 472ae99..8abcb13 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 @@ -30,6 +30,7 @@ import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.regex.Pattern; /** * 项目询价serviceImpl @@ -286,6 +287,19 @@ public class ProjectEntrustInquiryServiceImpl extends BaseServiceImpl 0){ ProjectExceptionEnum.FRAME_EXCEPTION_INQUIRY_RESPONSE_FORMAT_LIST_CODE_EMPTY.throwException(); } + + Pattern pattern = Pattern.compile(InquiryCommonUtil.FILE_NAME_PATTERN); + //获取目录名称中包含特殊字符 + long isNamePatternCount = inquiryVO.getResponseFormatList().stream().filter(n -> StringUtils.isNotBlank(n.getName()) && pattern.matcher(n.getName()).find()).count(); + if(isNamePatternCount > 0){ + ProjectExceptionEnum.FRAME_EXCEPTION_INQUIRY_RESPONSE_FORMAT_LIST_NAME_ERROR.throwException(); + } + + //获取目录名称中包含特殊字符 + long isCategoryNamePatternCount = inquiryVO.getResponseFormatList().stream().filter(n -> StringUtils.isNotBlank(n.getCategoryName()) && pattern.matcher(n.getCategoryName()).find()).count(); + if(isCategoryNamePatternCount > 0){ + ProjectExceptionEnum.FRAME_EXCEPTION_INQUIRY_RESPONSE_FORMAT_LIST_CATEGORY_NAME_ERROR.throwException(); + } } } }