diff --git a/api-test/frontend/src/business/commons/QuoteFileList.vue b/api-test/frontend/src/business/commons/QuoteFileList.vue index 52980c53d38d..0a1b5319c66c 100644 --- a/api-test/frontend/src/business/commons/QuoteFileList.vue +++ b/api-test/frontend/src/business/commons/QuoteFileList.vue @@ -28,6 +28,23 @@ @refresh="getProjectFiles" ref="table"> + + + {{ scope.row.name }} + + + + {{ scope.row.name }} + + + + + + - + @@ -60,7 +77,7 @@ - + @@ -136,6 +153,11 @@ export default { }, created() {}, methods: { + parseGitBranch(attachInfo) { + let branch = 'master'; + branch = JSON.parse(attachInfo)['branch']; + return branch; + }, submit() { if (this.$refs.table.selectRows && this.$refs.table.selectRows.size > 0) { this.$emit('checkRows', this.$refs.table.selectRows); diff --git a/framework/sdk-parent/sdk/src/main/java/io/metersphere/base/mapper/ext/BaseFileMetadataMapper.java b/framework/sdk-parent/sdk/src/main/java/io/metersphere/base/mapper/ext/BaseFileMetadataMapper.java index 5b29bf8fd9f9..d3a015e2015b 100644 --- a/framework/sdk-parent/sdk/src/main/java/io/metersphere/base/mapper/ext/BaseFileMetadataMapper.java +++ b/framework/sdk-parent/sdk/src/main/java/io/metersphere/base/mapper/ext/BaseFileMetadataMapper.java @@ -1,6 +1,7 @@ package io.metersphere.base.mapper.ext; import io.metersphere.base.domain.FileMetadataWithBLOBs; +import io.metersphere.dto.FileMetadataDTO; import io.metersphere.metadata.vo.MoveFIleMetadataRequest; import io.metersphere.request.QueryProjectFileRequest; import org.apache.ibatis.annotations.Param; @@ -11,6 +12,8 @@ public interface BaseFileMetadataMapper { List getProjectFiles(@Param("projectId") String projectId, @Param("request") QueryProjectFileRequest request); + List getFileMetadataByProject(@Param("projectId") String projectId, @Param("request") QueryProjectFileRequest request); + List getTypes(); void move(@Param("request") MoveFIleMetadataRequest request); diff --git a/framework/sdk-parent/sdk/src/main/java/io/metersphere/base/mapper/ext/BaseFileMetadataMapper.xml b/framework/sdk-parent/sdk/src/main/java/io/metersphere/base/mapper/ext/BaseFileMetadataMapper.xml index b6844cfce465..633186c9865a 100644 --- a/framework/sdk-parent/sdk/src/main/java/io/metersphere/base/mapper/ext/BaseFileMetadataMapper.xml +++ b/framework/sdk-parent/sdk/src/main/java/io/metersphere/base/mapper/ext/BaseFileMetadataMapper.xml @@ -63,6 +63,71 @@ + + + SELECT file_metadata.*,file_module.name AS moduleName FROM file_metadata + INNER JOIN file_module ON file_metadata.module_id = file_module.id + WHERE file_metadata.project_id = #{projectId,jdbcType=VARCHAR} AND file_metadata.type != 'RSA_KEY' AND file_metadata.latest IS TRUE + + AND ( file_metadata.name LIKE CONCAT('%', #{request.name}, '%') + OR file_metadata.tags LIKE CONCAT('%', #{request.name}, '%') + OR file_metadata.description LIKE CONCAT('%', #{request.name}, '%') + OR file_metadata.create_user LIKE CONCAT('%', #{request.name}, '%')) + + + AND file_metadata.module_id = #{request.moduleId} + + + + + + + and file_metadata.type in + + #{value} + + + + and file_metadata.create_user in + + #{value} + + + + and file_metadata.module_id in + + #{value} + + + + + + + + order by + + + file_metadata.name ${order.type} + + + file_metadata.type ${order.type} + + + file_metadata.create_user ${order.type} + + + file_metadata.update_user ${order.type} + + + file_metadata.create_time ${order.type} + + + file_metadata.update_time ${order.type} + + + + + SELECT type FROM file_metadata diff --git a/framework/sdk-parent/sdk/src/main/java/io/metersphere/dto/FileMetadataDTO.java b/framework/sdk-parent/sdk/src/main/java/io/metersphere/dto/FileMetadataDTO.java new file mode 100644 index 000000000000..f595e932a57c --- /dev/null +++ b/framework/sdk-parent/sdk/src/main/java/io/metersphere/dto/FileMetadataDTO.java @@ -0,0 +1,9 @@ +package io.metersphere.dto; + +import io.metersphere.base.domain.FileMetadataWithBLOBs; +import lombok.Data; + +@Data +public class FileMetadataDTO extends FileMetadataWithBLOBs { + private String moduleName; +} diff --git a/framework/sdk-parent/sdk/src/main/java/io/metersphere/metadata/controller/FileMetadataController.java b/framework/sdk-parent/sdk/src/main/java/io/metersphere/metadata/controller/FileMetadataController.java index 9bc1f7f8a631..015f002a57f7 100644 --- a/framework/sdk-parent/sdk/src/main/java/io/metersphere/metadata/controller/FileMetadataController.java +++ b/framework/sdk-parent/sdk/src/main/java/io/metersphere/metadata/controller/FileMetadataController.java @@ -8,6 +8,7 @@ import io.metersphere.commons.constants.OperLogModule; import io.metersphere.commons.utils.PageUtils; import io.metersphere.commons.utils.Pager; +import io.metersphere.dto.FileMetadataDTO; import io.metersphere.log.annotation.MsAuditLog; import io.metersphere.metadata.service.FileMetadataService; import io.metersphere.metadata.vo.DownloadRequest; @@ -15,13 +16,13 @@ import io.metersphere.metadata.vo.FileMetadataCreateRequest; import io.metersphere.metadata.vo.MoveFIleMetadataRequest; import io.metersphere.request.QueryProjectFileRequest; +import jakarta.annotation.Resource; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; -import jakarta.annotation.Resource; import java.util.List; @RequestMapping("/file/metadata") @@ -36,11 +37,11 @@ public ResponseEntity image(@PathVariable("fileId") String fileId) { } @PostMapping("/project/{projectId}/{goPage}/{pageSize}") - public Pager> getProjectFiles(@PathVariable String projectId, - @PathVariable int goPage, @PathVariable int pageSize, - @RequestBody QueryProjectFileRequest request) { + public Pager> getProjectFiles(@PathVariable String projectId, + @PathVariable int goPage, @PathVariable int pageSize, + @RequestBody QueryProjectFileRequest request) { Page page = PageHelper.startPage(goPage, pageSize, true); - return PageUtils.setPageInfo(page, fileMetadataService.getProjectFiles(projectId, request)); + return PageUtils.setPageInfo(page, fileMetadataService.getFileMetadataByProject(projectId, request)); } @PostMapping(value = "/create") diff --git a/framework/sdk-parent/sdk/src/main/java/io/metersphere/metadata/service/FileMetadataService.java b/framework/sdk-parent/sdk/src/main/java/io/metersphere/metadata/service/FileMetadataService.java index 74eccb2dd9a5..b4aefbed3cc1 100644 --- a/framework/sdk-parent/sdk/src/main/java/io/metersphere/metadata/service/FileMetadataService.java +++ b/framework/sdk-parent/sdk/src/main/java/io/metersphere/metadata/service/FileMetadataService.java @@ -16,6 +16,7 @@ import io.metersphere.commons.utils.SessionUtils; import io.metersphere.dto.AttachmentBodyFile; import io.metersphere.dto.FileInfoDTO; +import io.metersphere.dto.FileMetadataDTO; import io.metersphere.i18n.Translator; import io.metersphere.log.utils.ReflexObjectUtil; import io.metersphere.log.vo.DetailColumn; @@ -165,6 +166,18 @@ public FileMetadata saveFile(MultipartFile file, String projectId) { return saveFile(file, fileMetadata); } + public List getFileMetadataByProject(String projectId, QueryProjectFileRequest request) { + if (CollectionUtils.isEmpty(request.getOrders())) { + OrderRequest req = new OrderRequest(); + req.setName("update_time"); + req.setType("desc"); + request.setOrders(new ArrayList<>() {{ + this.add(req); + }}); + } + return baseFileMetadataMapper.getFileMetadataByProject(projectId, request); + } + public List getProjectFiles(String projectId, QueryProjectFileRequest request) { if (CollectionUtils.isEmpty(request.getOrders())) { OrderRequest req = new OrderRequest();