From cb0113eea195c0558fe612e41332eb22f5dd9b8b Mon Sep 17 00:00:00 2001 From: LHR-pc <1609126475@qq.com> Date: Sat, 9 Sep 2023 11:47:05 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BA=86=E9=87=8D?= =?UTF-8?q?=E5=90=8D=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/UserFileServiceImpl.java | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/r-pan-api/r-pan-api-services/src/main/java/com/rubin/rpan/services/modules/file/service/impl/UserFileServiceImpl.java b/r-pan-api/r-pan-api-services/src/main/java/com/rubin/rpan/services/modules/file/service/impl/UserFileServiceImpl.java index c1f5eb8..6c03bbd 100644 --- a/r-pan-api/r-pan-api-services/src/main/java/com/rubin/rpan/services/modules/file/service/impl/UserFileServiceImpl.java +++ b/r-pan-api/r-pan-api-services/src/main/java/com/rubin/rpan/services/modules/file/service/impl/UserFileServiceImpl.java @@ -612,12 +612,32 @@ public class UserFileServiceImpl implements IUserFileService { return Objects.equals(newFileNameSuffix, fileNameSuffix); }) .collect(Collectors.toList()); - if (CollectionUtils.isEmpty(duplicateFileNameList)) { + Set duplicateFileNameIds = new HashSet<>(); + for (String fileName:duplicateFileNameList) { + int pointPositionLeft = fileName.lastIndexOf(FileConstant.CN_LEFT_PARENTHESES_STR); + int pointPositionRight = fileName.lastIndexOf(FileConstant.CN_RIGHT_PARENTHESES_STR); + if(pointPositionLeft Date: Sat, 9 Sep 2023 11:50:23 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BA=86=E9=87=8D?= =?UTF-8?q?=E5=90=8D=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/file/service/impl/UserFileServiceImpl.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/r-pan-api/r-pan-api-services/src/main/java/com/rubin/rpan/services/modules/file/service/impl/UserFileServiceImpl.java b/r-pan-api/r-pan-api-services/src/main/java/com/rubin/rpan/services/modules/file/service/impl/UserFileServiceImpl.java index 6c03bbd..9eac3d9 100644 --- a/r-pan-api/r-pan-api-services/src/main/java/com/rubin/rpan/services/modules/file/service/impl/UserFileServiceImpl.java +++ b/r-pan-api/r-pan-api-services/src/main/java/com/rubin/rpan/services/modules/file/service/impl/UserFileServiceImpl.java @@ -618,7 +618,7 @@ public class UserFileServiceImpl implements IUserFileService { int pointPositionRight = fileName.lastIndexOf(FileConstant.CN_RIGHT_PARENTHESES_STR); if(pointPositionLeft Date: Sat, 9 Sep 2023 14:12:11 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BA=86=E9=87=8D?= =?UTF-8?q?=E5=90=8D=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91=EF=BC=8C=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E6=AD=A3=E5=88=99=E5=8C=B9=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/UserFileServiceImpl.java | 23 ++++++------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/r-pan-api/r-pan-api-services/src/main/java/com/rubin/rpan/services/modules/file/service/impl/UserFileServiceImpl.java b/r-pan-api/r-pan-api-services/src/main/java/com/rubin/rpan/services/modules/file/service/impl/UserFileServiceImpl.java index 9eac3d9..de866c6 100644 --- a/r-pan-api/r-pan-api-services/src/main/java/com/rubin/rpan/services/modules/file/service/impl/UserFileServiceImpl.java +++ b/r-pan-api/r-pan-api-services/src/main/java/com/rubin/rpan/services/modules/file/service/impl/UserFileServiceImpl.java @@ -600,30 +600,21 @@ public class UserFileServiceImpl implements IUserFileService { if (noDuplicateFileNameFlag) { return; } + String pattern = Pattern.quote(newFileNameWithoutSuffix+FileConstant.CN_LEFT_PARENTHESES_STR)+"[1-9][0-9]*"+Pattern.quote(FileConstant.CN_RIGHT_PARENTHESES_STR+newFileNameSuffix); + Pattern r = Pattern.compile(pattern); List duplicateFileNameList = rPanUserFileVOList.stream() .map(RPanUserFileVO::getFilename) - .filter(fileName -> fileName.startsWith(newFileNameWithoutSuffix)) .filter(fileName -> { - int pointPosition = fileName.lastIndexOf(CommonConstant.POINT_STR); - String fileNameSuffix = CommonConstant.EMPTY_STR; - if (pointPosition != CommonConstant.MINUS_ONE_INT) { - fileNameSuffix = FileUtil.getFileSuffix(fileName); - } - return Objects.equals(newFileNameSuffix, fileNameSuffix); + Matcher m = r.matcher(fileName); + return m.matches(); }) .collect(Collectors.toList()); Set duplicateFileNameIds = new HashSet<>(); for (String fileName:duplicateFileNameList) { int pointPositionLeft = fileName.lastIndexOf(FileConstant.CN_LEFT_PARENTHESES_STR); int pointPositionRight = fileName.lastIndexOf(FileConstant.CN_RIGHT_PARENTHESES_STR); - if(pointPositionLeft