分组接口修改

This commit is contained in:
even 2025-07-16 15:26:57 +08:00
parent 8a62fe4e1c
commit 7a9ae989be
9 changed files with 124 additions and 14 deletions

View File

@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.util.List; import java.util.List;
@ -92,4 +93,10 @@ public class TestCaseInfoController {
return CommonResult.success(respList); return CommonResult.success(respList);
} }
@PostMapping("/checkTestCaseExist")
public CommonResult<String> checkTestCaseExist(MultipartFile file){
String s = testCaseInfoService.checkTestCaseExist(file);
return CommonResult.success(s);
}
} }

View File

@ -24,4 +24,6 @@ public class TestCaseInfoReq {
// 描述信息 // 描述信息
private String remark; private String remark;
private String sign;
} }

View File

@ -1,12 +1,15 @@
package cd.casic.ci.process.process.dataObject.pipgroup; package cd.casic.ci.process.process.dataObject.pipgroup;
import cd.casic.framework.commons.dataobject.BaseDO; import cd.casic.framework.commons.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Data @Data
public class PipGroup extends BaseDO { public class PipGroup extends BaseDO {
@TableId(type = IdType.ASSIGN_ID)
private String id; private String id;
private String groupName; private String groupName;
/** /**

View File

@ -35,4 +35,6 @@ public class TestCaseInfo extends PipBaseElement {
// 描述信息 // 描述信息
private String remark; private String remark;
private String sign;
} }

View File

@ -8,6 +8,7 @@ import cd.casic.ci.process.process.dataObject.testCase.TestCaseInfo;
import cd.casic.framework.commons.pojo.PageResult; import cd.casic.framework.commons.pojo.PageResult;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import org.springframework.web.multipart.MultipartFile;
import java.util.List; import java.util.List;
@ -34,4 +35,5 @@ public interface TestCaseInfoService extends IService<TestCaseInfo> {
List<String> findFileTypeList(); List<String> findFileTypeList();
List<TestCaseInfoResp> findByManagerIds(List<String> idList); List<TestCaseInfoResp> findByManagerIds(List<String> idList);
String checkTestCaseExist(MultipartFile file);
} }

View File

@ -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.dao.testCase.TestCaseInfoDao;
import cd.casic.ci.process.process.dataObject.testCase.TestCaseInfo; import cd.casic.ci.process.process.dataObject.testCase.TestCaseInfo;
import cd.casic.ci.process.process.service.testCase.TestCaseInfoService; 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.ServiceException;
import cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstants; import cd.casic.framework.commons.exception.enums.GlobalErrorCodeConstants;
import cd.casic.framework.commons.pojo.PageResult; 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.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@ -151,6 +154,27 @@ public class TestCaseInfoServiceImpl extends ServiceImpl<TestCaseInfoDao, TestCa
return TestCaseInfoConverter.INSTANCE.toRespList(testCaseInfos); return TestCaseInfoConverter.INSTANCE.toRespList(testCaseInfos);
} }
@Override
public String checkTestCaseExist(MultipartFile file) {
try{
InputStream inputStream = file.getInputStream();
String md5Str = FileUtil.getMD5Str(inputStream);
if (checkMd5Exist(md5Str)) {
return md5Str;
}
} catch (Exception e ){
log.error("校验文件内容出现错误",e);
}
return "";
}
private Boolean checkMd5Exist(String sign){
if (StringUtils.isEmpty(sign)) {
return false;
}
LambdaQueryWrapper<TestCaseInfo> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(TestCaseInfo::getSign,sign);
return testCaseInfoDao.exists(wrapper);
}
private void setUserName(TestCaseInfoResp testCaseInfoResp) { private void setUserName(TestCaseInfoResp testCaseInfoResp) {
if (!StringUtils.isEmpty(testCaseInfoResp.getCreator())){ if (!StringUtils.isEmpty(testCaseInfoResp.getCreator())){

View File

@ -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();
}
}

View File

@ -7,20 +7,34 @@
<!-- 这里暂时没有任何SQL方法 --> <!-- 这里暂时没有任何SQL方法 -->
<select id="getList" resultType="cd.casic.ci.process.dto.resp.group.GroupListResp"> <select id="getList" resultType="cd.casic.ci.process.dto.resp.group.GroupListResp">
SELECT * FROM SELECT id,
(SELECT * FROM pip_group group_name,
UNION ALL type,
(SELECT null AS id, creator,
"未分组" AS group_name, create_time,
"PROJECT" AS type , updater,
"" AS creator, update_time,
NOW() AS create_time, group_id,
NOW() AS update_time, IFNULL(count,0) `count` FROM
"" AS updater) (SELECT
) pg id,
LEFT JOIN group_name,
(SELECT group_id,COUNT(*) count FROM pip_pipeline GROUP BY group_id) pl type,
ON ((pg.id = pl.group_id ) OR (ISNULL(pl.group_id) AND ISNULL(pl.group_id))) creator,
create_time,
updater,
update_time
FROM pip_group
UNION ALL
(SELECT null AS id,
"未分组" AS group_name,
"PROJECT" AS type ,
"" AS creator,
NOW() AS create_time,
"" AS updater,
NOW() AS update_time)
) pg
LEFT JOIN (SELECT group_id,COUNT(*) count FROM pip_pipeline GROUP BY group_id) pl ON (pg.id = pl.group_id OR (ISNULL(pg.id) AND ISNULL(group_id)) )
<where> <where>
<if test="groupName!=null and groupName!=''"> <if test="groupName!=null and groupName!=''">
AND pg.`group_name` LIKE CONCAT('%',#{groupName},'%') AND pg.`group_name` LIKE CONCAT('%',#{groupName},'%')

View File

@ -0,0 +1,28 @@
package cd.casic.server;
import cd.casic.ci.process.util.FileUtil;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
@SpringBootTest(classes = {OpsServerApplication.class})
@ActiveProfiles("local")
@Slf4j
public class FileUtilTest {
@Test
public void testMd5() throws IOException, NoSuchAlgorithmException {
FileInputStream fis = new FileInputStream("D:\\博彦科技-项目相关\\ops-pro\\ops-server\\target\\ops-server.jar");
String md5Str = FileUtil.getMD5Str(fis);
System.out.println(md5Str);
FileInputStream fis2 = new FileInputStream("D:\\博彦科技-项目相关\\ops-pro\\ops-server\\src\\test\\resources\\javaaaaa.zip");
String md5Str2 = FileUtil.getMD5Str(fis2);
System.out.println(md5Str2);
System.out.println(md5Str.equals(md5Str2));
}
}