From 35860a00b1d6fb6dc059e2a66fcbc1c959d6078d Mon Sep 17 00:00:00 2001 From: zhouyl <583641232@qq.com> Date: Mon, 2 Sep 2024 15:35:39 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=20=20=E5=85=81=E8=AE=B8=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E4=B8=8A=E4=BC=A0=E5=92=8C=E4=B8=8B=E8=BD=BD=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/TestReportController.java | 55 ++++++++++++++++++- .../functional/domain/TestReport.java | 8 ++- .../system/service/ISysOssService.java | 3 + .../service/impl/SysOssServiceImpl.java | 10 ++++ 4 files changed, 73 insertions(+), 3 deletions(-) diff --git a/tp-admin/src/main/java/com/inscloudtech/web/controller/system/TestReportController.java b/tp-admin/src/main/java/com/inscloudtech/web/controller/system/TestReportController.java index fce206e..889dca1 100644 --- a/tp-admin/src/main/java/com/inscloudtech/web/controller/system/TestReportController.java +++ b/tp-admin/src/main/java/com/inscloudtech/web/controller/system/TestReportController.java @@ -3,14 +3,18 @@ package com.inscloudtech.web.controller.system; /***/ +import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.inscloudtech.common.annotation.Log; import com.inscloudtech.common.core.domain.PageQuery; import com.inscloudtech.common.core.domain.R; +import com.inscloudtech.common.core.domain.model.LoginUser; import com.inscloudtech.common.core.page.TableDataInfo; import com.inscloudtech.common.enums.BusinessType; +import com.inscloudtech.common.helper.LoginHelper; import com.inscloudtech.common.utils.file.FileUploadUtils; import com.inscloudtech.functional.domain.TestReport; import com.inscloudtech.functional.service.TestReportService; @@ -22,6 +26,9 @@ import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + /** * 测试报告管理 * @@ -48,6 +55,10 @@ public class TestReportController { Page page = new Page(); page.setSize(pageQuery.getPageSize()); page.setCurrent(pageQuery.getPageNum()); + if (!StpUtil.hasRole("admin")) { + testReport.setCreateBy(LoginHelper.getUserId().toString()); + } + Page result = testReportService.page(page, Wrappers.query(testReport)); TableDataInfo dataInfo = new TableDataInfo(); dataInfo.setTotal(result.getTotal()); @@ -72,8 +83,8 @@ public class TestReportController { */ @SneakyThrows @Log(title = "测试报告管理", businessType = BusinessType.INSERT) - @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) - public R uploadToolAndTips( @RequestPart("file") MultipartFile file, + @PostMapping(value = "/uploadReport", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R upload( @RequestPart("file") MultipartFile file, @RequestPart("reportName") String reportName) { if (StrUtil.isEmpty(reportName)) { @@ -88,11 +99,51 @@ public class TestReportController { testReport.setReportPath(toolVo.getOriginalName()); testReport.setReportOssId(toolVo.getOssId()); } + testReport.setUpdateType("报告"); + testReportService.save(testReport); + return R.ok("操作成功!"); + } + + /** + * 上传测试数据 + * + */ + @SneakyThrows + @Log(title = "测试数据管理", businessType = BusinessType.INSERT) + @PostMapping(value = "/uploadTestData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public R uploadToolAndTips( @RequestPart("file") MultipartFile file, + @RequestPart("reportName") String reportName) { + + if (StrUtil.isEmpty(reportName)) { + return R.fail("数据名称不能为空!"); + } + + testReportService.check(reportName); + TestReport testReport = new TestReport(); + testReport.setReportName(reportName); + if(file != null && FileUploadUtils.checkTxtFileValid(file)){ + SysOssVo toolVo = iSysOssService.upload(file); + testReport.setReportPath(toolVo.getOriginalName()); + testReport.setReportOssId(toolVo.getOssId()); + } + testReport.setUpdateType("测试数据"); testReportService.save(testReport); return R.ok("操作成功!"); } + /** + * 下载测试数据 + * + * @param ossId OSS对象ID + */ + @SaCheckPermission("system:oss:download") + @GetMapping("/downloadTestData/{ossId}") + public void download(@PathVariable Long ossId, HttpServletResponse response) throws IOException { + + iSysOssService.downloadWithCreateBy(ossId,LoginHelper.getUserId().toString(),response); + } + /** * 通过id删除测试报告 diff --git a/tp-functional/src/main/java/com/inscloudtech/functional/domain/TestReport.java b/tp-functional/src/main/java/com/inscloudtech/functional/domain/TestReport.java index a3c4016..70a35ec 100644 --- a/tp-functional/src/main/java/com/inscloudtech/functional/domain/TestReport.java +++ b/tp-functional/src/main/java/com/inscloudtech/functional/domain/TestReport.java @@ -26,7 +26,7 @@ public class TestReport extends BaseEntity { @TableId(value = "id") private Long id; /** - * 报告名称 + * 报告名称/测试数据名称 */ @TableField(condition = SqlCondition.LIKE) private String reportName; @@ -47,4 +47,10 @@ public class TestReport extends BaseEntity { */ private Long resultOssId; + /** + * 上传类型-报告/数据 + */ + private String updateType; + + } diff --git a/tp-system/src/main/java/com/inscloudtech/system/service/ISysOssService.java b/tp-system/src/main/java/com/inscloudtech/system/service/ISysOssService.java index a523368..f67f8c0 100644 --- a/tp-system/src/main/java/com/inscloudtech/system/service/ISysOssService.java +++ b/tp-system/src/main/java/com/inscloudtech/system/service/ISysOssService.java @@ -31,6 +31,9 @@ public interface ISysOssService { void download(Long ossId, HttpServletResponse response) throws IOException; + void downloadWithCreateBy(Long ossId,String CreateBy ,HttpServletResponse response) throws IOException; + + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); } diff --git a/tp-system/src/main/java/com/inscloudtech/system/service/impl/SysOssServiceImpl.java b/tp-system/src/main/java/com/inscloudtech/system/service/impl/SysOssServiceImpl.java index f70db02..7d0e3eb 100644 --- a/tp-system/src/main/java/com/inscloudtech/system/service/impl/SysOssServiceImpl.java +++ b/tp-system/src/main/java/com/inscloudtech/system/service/impl/SysOssServiceImpl.java @@ -138,6 +138,16 @@ public class SysOssServiceImpl implements ISysOssService, OssService { }*/ } + @Override + public void downloadWithCreateBy(Long ossId, String CreateBy, HttpServletResponse response) throws IOException { + SysOssVo sysOss = baseMapper.selectVoOne(new LambdaQueryWrapper() + .eq(SysOss::getOssId, ossId).eq(SysOss::getCreateBy, CreateBy)); + if (ObjectUtil.isNull(sysOss)) { + throw new ServiceException("文件数据不存在!"); + } + this.downloadLocal(sysOss.getFileName(),sysOss.getOriginalName(),response); + } + @SneakyThrows public void downloadLocal(String fileName, String originalName, HttpServletResponse response){ if (!FileUtils.checkAllowDownload(fileName)) {