From 7a9ae989bee013a867bc67695517eaffd6990102 Mon Sep 17 00:00:00 2001 From: even <827656971@qq.com> Date: Wed, 16 Jul 2025 15:26:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E7=BB=84=E6=8E=A5=E5=8F=A3=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../casic/ci/api/TestCaseInfoController.java | 7 ++++ .../dto/req/testCase/TestCaseInfoReq.java | 2 + .../process/dataObject/pipgroup/PipGroup.java | 3 ++ .../dataObject/testCase/TestCaseInfo.java | 2 + .../service/testCase/TestCaseInfoService.java | 2 + .../impl/TestCaseInfoServiceImpl.java | 24 +++++++++++ .../cd/casic/ci/process/util/FileUtil.java | 28 +++++++++++++ .../src/main/resources/mapper/PipGroupDao.xml | 42 ++++++++++++------- .../java/cd/casic/server/FileUtilTest.java | 28 +++++++++++++ 9 files changed, 124 insertions(+), 14 deletions(-) create mode 100644 modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/util/FileUtil.java create mode 100644 ops-server/src/test/java/cd/casic/server/FileUtilTest.java diff --git a/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/TestCaseInfoController.java b/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/TestCaseInfoController.java index 43ec8dc8..ed914b78 100644 --- a/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/TestCaseInfoController.java +++ b/modules/module-ci-process-api/src/main/java/cd/casic/ci/api/TestCaseInfoController.java @@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -92,4 +93,10 @@ public class TestCaseInfoController { return CommonResult.success(respList); } + + @PostMapping("/checkTestCaseExist") + public CommonResult checkTestCaseExist(MultipartFile file){ + String s = testCaseInfoService.checkTestCaseExist(file); + return CommonResult.success(s); + } } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/req/testCase/TestCaseInfoReq.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/req/testCase/TestCaseInfoReq.java index f2bb8ce7..01fa63b3 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/req/testCase/TestCaseInfoReq.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/dto/req/testCase/TestCaseInfoReq.java @@ -24,4 +24,6 @@ public class TestCaseInfoReq { // 描述信息 private String remark; + + private String sign; } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/pipgroup/PipGroup.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/pipgroup/PipGroup.java index a7ef01db..9d5ca80b 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/pipgroup/PipGroup.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/pipgroup/PipGroup.java @@ -1,12 +1,15 @@ package cd.casic.ci.process.process.dataObject.pipgroup; import cd.casic.framework.commons.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; import lombok.EqualsAndHashCode; @EqualsAndHashCode(callSuper = true) @Data public class PipGroup extends BaseDO { + @TableId(type = IdType.ASSIGN_ID) private String id; private String groupName; /** diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/testCase/TestCaseInfo.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/testCase/TestCaseInfo.java index 957ec234..682e97c4 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/testCase/TestCaseInfo.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/dataObject/testCase/TestCaseInfo.java @@ -35,4 +35,6 @@ public class TestCaseInfo extends PipBaseElement { // 描述信息 private String remark; + + private String sign; } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/testCase/TestCaseInfoService.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/testCase/TestCaseInfoService.java index 5a017ff8..138dcaca 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/testCase/TestCaseInfoService.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/testCase/TestCaseInfoService.java @@ -8,6 +8,7 @@ import cd.casic.ci.process.process.dataObject.testCase.TestCaseInfo; import cd.casic.framework.commons.pojo.PageResult; import com.baomidou.mybatisplus.extension.service.IService; import jakarta.validation.Valid; +import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -34,4 +35,5 @@ public interface TestCaseInfoService extends IService { List findFileTypeList(); List findByManagerIds(List idList); + String checkTestCaseExist(MultipartFile file); } diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/testCase/impl/TestCaseInfoServiceImpl.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/testCase/impl/TestCaseInfoServiceImpl.java index 0634edcd..581ff87f 100644 --- a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/testCase/impl/TestCaseInfoServiceImpl.java +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/process/service/testCase/impl/TestCaseInfoServiceImpl.java @@ -8,6 +8,7 @@ import cd.casic.ci.process.process.converter.TestCaseInfoConverter; import cd.casic.ci.process.process.dao.testCase.TestCaseInfoDao; import cd.casic.ci.process.process.dataObject.testCase.TestCaseInfo; import cd.casic.ci.process.process.service.testCase.TestCaseInfoService; +import cd.casic.ci.process.util.FileUtil; import cd.casic.framework.commons.exception.ServiceException; import cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstants; import cd.casic.framework.commons.pojo.PageResult; @@ -23,7 +24,9 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import org.springframework.util.ObjectUtils; +import org.springframework.web.multipart.MultipartFile; +import java.io.InputStream; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -151,6 +154,27 @@ public class TestCaseInfoServiceImpl extends ServiceImpl wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(TestCaseInfo::getSign,sign); + return testCaseInfoDao.exists(wrapper); + } private void setUserName(TestCaseInfoResp testCaseInfoResp) { if (!StringUtils.isEmpty(testCaseInfoResp.getCreator())){ diff --git a/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/util/FileUtil.java b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/util/FileUtil.java new file mode 100644 index 00000000..165bf021 --- /dev/null +++ b/modules/module-ci-process-biz/src/main/java/cd/casic/ci/process/util/FileUtil.java @@ -0,0 +1,28 @@ +package cd.casic.ci.process.util; + +import org.apache.commons.io.IOUtils; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +public class FileUtil { + public static String getMD5Str(InputStream inputStream) throws NoSuchAlgorithmException, IOException { + MessageDigest md = MessageDigest.getInstance("MD5"); + byte[] buffer = new byte[1024]; + int len = -1; + while((len=inputStream.read(buffer))!=-1){ + md.update(buffer,0,len); + } + byte[] digest = md.digest(); + StringBuilder stringBuilder = new StringBuilder(); + for (byte b : digest) { + String format = String.format("%02x", b); + stringBuilder.append(format); + } + return stringBuilder.toString(); + } +} diff --git a/modules/module-ci-process-biz/src/main/resources/mapper/PipGroupDao.xml b/modules/module-ci-process-biz/src/main/resources/mapper/PipGroupDao.xml index 9f20d083..6075179e 100644 --- a/modules/module-ci-process-biz/src/main/resources/mapper/PipGroupDao.xml +++ b/modules/module-ci-process-biz/src/main/resources/mapper/PipGroupDao.xml @@ -7,20 +7,34 @@