测试用例zip下载修改

This commit is contained in:
even 2025-07-09 16:14:14 +08:00
parent 70552a714a
commit 952fc2988d
7 changed files with 36 additions and 15 deletions

View File

@ -3,6 +3,7 @@ package cd.casic.ci.api;
import cd.casic.ci.process.dto.req.testCase.TestCaseManagerQueryReq; import cd.casic.ci.process.dto.req.testCase.TestCaseManagerQueryReq;
import cd.casic.ci.process.dto.req.testCase.TestCaseManagerReq; import cd.casic.ci.process.dto.req.testCase.TestCaseManagerReq;
import cd.casic.ci.process.dto.resp.testCase.TestCaseManagerDownloadResp;
import cd.casic.ci.process.dto.resp.testCase.TestCaseManagerResp; import cd.casic.ci.process.dto.resp.testCase.TestCaseManagerResp;
import cd.casic.ci.process.process.dataObject.base.BaseIdReq; import cd.casic.ci.process.process.dataObject.base.BaseIdReq;
import cd.casic.ci.process.process.service.testCase.TestCaseManagerService; import cd.casic.ci.process.process.service.testCase.TestCaseManagerService;
@ -85,7 +86,7 @@ public class TestCaseManagerController {
return CommonResult.success(resp); return CommonResult.success(resp);
} }
@GetMapping("/downLoadById") @GetMapping("/downLoadById")
public void downLoadByManagerId(@RequestParam String managerId, HttpServletResponse response){ public CommonResult<TestCaseManagerDownloadResp> downLoadByManagerId(@RequestParam String managerId){
testCaseManagerService.downLoadById(managerId,response); return CommonResult.success(testCaseManagerService.downLoadById(managerId));
} }
} }

View File

@ -0,0 +1,9 @@
package cd.casic.ci.process.dto.resp.testCase;
import lombok.Data;
@Data
public class TestCaseManagerDownloadResp {
private String fileName;
private String file;
}

View File

@ -29,6 +29,7 @@ public interface TargetVersionConverter {
void updateReqCopyToTargetVersion(TargetVersionUpdateReq req,@MappingTarget TargetVersion targetVersion); void updateReqCopyToTargetVersion(TargetVersionUpdateReq req,@MappingTarget TargetVersion targetVersion);
TargetVersion targetCreateReqToTargetVersionBean(TargetManagerCreateReq req); TargetVersion targetCreateReqToTargetVersionBean(TargetManagerCreateReq req);
TargetVersionCreateReq targetCreateReqToTargetVersionCreateReq(TargetManagerCreateReq req);
TargetVersion versionCreateReqToTargetVersionBean(TargetVersionCreateReq req); TargetVersion versionCreateReqToTargetVersionBean(TargetVersionCreateReq req);
} }

View File

@ -46,4 +46,8 @@ public class TargetVersion extends PipBaseElement {
* 文件地址路径 * 文件地址路径
*/ */
private String filePath; private String filePath;
/**
* 目标版本
* */
private String versionCompose;
} }

View File

@ -28,6 +28,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
@ -77,11 +78,12 @@ public class TargetManagerServiceImpl extends ServiceImpl<TargetManagerDao, Targ
} }
this.save(targetManager); this.save(targetManager);
TargetVersionCreateReq targetVersion = TargetVersionConverter.INSTANCE.targetCreateReqToTargetVersionCreateReq(req);
createVersion(targetVersion);
// //保存第一个版本
//保存第一个版本 // targetVersion.setTargetId(targetManager.getId());
TargetVersion targetVersion = TargetVersionConverter.INSTANCE.targetCreateReqToTargetVersionBean(req); // targetVersionService.save(targetVersion);
targetVersion.setTargetId(targetManager.getId());
targetVersionService.save(targetVersion);
} }
@Override @Override
@ -231,7 +233,7 @@ public class TargetManagerServiceImpl extends ServiceImpl<TargetManagerDao, Targ
QueryWrapper<TargetVersion> wrapper = new QueryWrapper<>(); QueryWrapper<TargetVersion> wrapper = new QueryWrapper<>();
wrapper.eq("version",targetVersion.getVersion()); wrapper.eq("version",targetVersion.getVersion());
wrapper.eq("target_id",targetVersion.getTargetId()); wrapper.eq("target_id",targetVersion.getTargetId());
if (!ObjectUtils.isEmpty(targetVersionDao.selectList(wrapper))){ if (!CollectionUtils.isEmpty(targetVersionDao.selectList(wrapper))){
throw new ServiceException(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode(),"版本已存在"); throw new ServiceException(GlobalErrorCodeConstants.INTERNAL_SERVER_ERROR.getCode(),"版本已存在");
} }

View File

@ -3,6 +3,7 @@ package cd.casic.ci.process.process.service.testCase;
import cd.casic.ci.process.dto.req.testCase.TestCaseManagerQueryReq; import cd.casic.ci.process.dto.req.testCase.TestCaseManagerQueryReq;
import cd.casic.ci.process.dto.req.testCase.TestCaseManagerReq; import cd.casic.ci.process.dto.req.testCase.TestCaseManagerReq;
import cd.casic.ci.process.dto.resp.testCase.TestCaseManagerDownloadResp;
import cd.casic.ci.process.dto.resp.testCase.TestCaseManagerResp; import cd.casic.ci.process.dto.resp.testCase.TestCaseManagerResp;
import cd.casic.ci.process.process.dataObject.testCase.TestCaseManager; import cd.casic.ci.process.process.dataObject.testCase.TestCaseManager;
import cd.casic.framework.commons.pojo.PageResult; import cd.casic.framework.commons.pojo.PageResult;
@ -36,6 +37,6 @@ public interface TestCaseManagerService extends IService<TestCaseManager> {
TestCaseManagerResp findById(String id); TestCaseManagerResp findById(String id);
void downLoadById(String id , HttpServletResponse response); TestCaseManagerDownloadResp downLoadById(String id );
} }

View File

@ -4,6 +4,7 @@ package cd.casic.ci.process.process.service.testCase.impl;
import cd.casic.ci.process.dto.req.testCase.TestCaseManagerQueryReq; import cd.casic.ci.process.dto.req.testCase.TestCaseManagerQueryReq;
import cd.casic.ci.process.dto.req.testCase.TestCaseManagerReq; import cd.casic.ci.process.dto.req.testCase.TestCaseManagerReq;
import cd.casic.ci.process.dto.resp.testCase.TestCaseInfoResp; import cd.casic.ci.process.dto.resp.testCase.TestCaseInfoResp;
import cd.casic.ci.process.dto.resp.testCase.TestCaseManagerDownloadResp;
import cd.casic.ci.process.dto.resp.testCase.TestCaseManagerResp; import cd.casic.ci.process.dto.resp.testCase.TestCaseManagerResp;
import cd.casic.ci.process.process.converter.TestCaseManagerConverter; import cd.casic.ci.process.process.converter.TestCaseManagerConverter;
import cd.casic.ci.process.process.dao.testCase.TestCaseInfoDao; import cd.casic.ci.process.process.dao.testCase.TestCaseInfoDao;
@ -25,7 +26,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jcraft.jsch.*; import com.jcraft.jsch.*;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
@ -35,7 +35,6 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -152,11 +151,9 @@ public class TestCaseManagerServiceImpl extends ServiceImpl<TestCaseManagerDao,
} }
@Override @Override
public void downLoadById(String id, HttpServletResponse response) { public TestCaseManagerDownloadResp downLoadById(String id) {
response.setContentType("application/zip"); ByteArrayOutputStream bos = new ByteArrayOutputStream();
response.setHeader("Content-Disposition", "attachment; filename=SEED.zip"); try (ZipOutputStream zipOutputStream = new ZipOutputStream(bos)){
try (ServletOutputStream outputStream = response.getOutputStream();
ZipOutputStream zipOutputStream = new ZipOutputStream(outputStream)){
JSch jsch = new JSch(); JSch jsch = new JSch();
Session session = jsch.getSession(properties.getUsername(), properties.getRemoteHost(), properties.getRemotePort()); Session session = jsch.getSession(properties.getUsername(), properties.getRemoteHost(), properties.getRemotePort());
session.setPassword(properties.getPassword()); session.setPassword(properties.getPassword());
@ -183,6 +180,12 @@ public class TestCaseManagerServiceImpl extends ServiceImpl<TestCaseManagerDao,
} catch (Exception e) { } catch (Exception e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
byte[] byteArray = bos.toByteArray();
String file = Base64.getEncoder().encodeToString(byteArray);
TestCaseManagerDownloadResp testCaseManagerDownloadResp = new TestCaseManagerDownloadResp();
testCaseManagerDownloadResp.setFile(file);
testCaseManagerDownloadResp.setFileName("SEED.zip");
return testCaseManagerDownloadResp;
} }