66import com .datamate .datamanagement .application .DatasetFileApplicationService ;
77import com .datamate .datamanagement .domain .model .dataset .DatasetFile ;
88import com .datamate .datamanagement .interfaces .converter .DatasetConverter ;
9- import com .datamate .datamanagement .interfaces .dto .DatasetFileResponse ;
10- import com .datamate .datamanagement .interfaces .dto .PagedDatasetFileResponse ;
11- import com .datamate .datamanagement .interfaces .dto .UploadFileRequest ;
12- import com .datamate .datamanagement .interfaces .dto .UploadFilesPreRequest ;
9+ import com .datamate .datamanagement .interfaces .dto .*;
1310import jakarta .servlet .http .HttpServletResponse ;
1411import jakarta .validation .Valid ;
1512import lombok .extern .slf4j .Slf4j ;
2320import org .springframework .http .MediaType ;
2421import org .springframework .http .ResponseEntity ;
2522import org .springframework .web .bind .annotation .*;
26- import org .springframework .web .multipart .MultipartFile ;
2723
24+ import java .util .List ;
2825import java .util .stream .Collectors ;
2926
3027/**
@@ -44,20 +41,20 @@ public DatasetFileController(DatasetFileApplicationService datasetFileApplicatio
4441
4542 @ GetMapping
4643 public ResponseEntity <Response <PagedDatasetFileResponse >> getDatasetFiles (
47- @ PathVariable ("datasetId" ) String datasetId ,
48- @ RequestParam (value = "page" , required = false , defaultValue = "0" ) Integer page ,
49- @ RequestParam (value = "size" , required = false , defaultValue = "20" ) Integer size ,
50- @ RequestParam (value = "fileType" , required = false ) String fileType ,
51- @ RequestParam (value = "status" , required = false ) String status ) {
44+ @ PathVariable ("datasetId" ) String datasetId ,
45+ @ RequestParam (value = "page" , required = false , defaultValue = "0" ) Integer page ,
46+ @ RequestParam (value = "size" , required = false , defaultValue = "20" ) Integer size ,
47+ @ RequestParam (value = "fileType" , required = false ) String fileType ,
48+ @ RequestParam (value = "status" , required = false ) String status ) {
5249 Pageable pageable = PageRequest .of (page != null ? page : 0 , size != null ? size : 20 );
5350
5451 Page <DatasetFile > filesPage = datasetFileApplicationService .getDatasetFiles (
55- datasetId , fileType , status , pageable );
52+ datasetId , fileType , status , pageable );
5653
5754 PagedDatasetFileResponse response = new PagedDatasetFileResponse ();
5855 response .setContent (filesPage .getContent ().stream ()
59- .map (DatasetConverter .INSTANCE ::convertToResponse )
60- .collect (Collectors .toList ()));
56+ .map (DatasetConverter .INSTANCE ::convertToResponse )
57+ .collect (Collectors .toList ()));
6158 response .setPage (filesPage .getNumber ());
6259 response .setSize (filesPage .getSize ());
6360 response .setTotalElements ((int ) filesPage .getTotalElements ());
@@ -70,8 +67,8 @@ public ResponseEntity<Response<PagedDatasetFileResponse>> getDatasetFiles(
7067
7168 @ GetMapping ("/{fileId}" )
7269 public ResponseEntity <Response <DatasetFileResponse >> getDatasetFileById (
73- @ PathVariable ("datasetId" ) String datasetId ,
74- @ PathVariable ("fileId" ) String fileId ) {
70+ @ PathVariable ("datasetId" ) String datasetId ,
71+ @ PathVariable ("fileId" ) String fileId ) {
7572 try {
7673 DatasetFile datasetFile = datasetFileApplicationService .getDatasetFile (datasetId , fileId );
7774 return ResponseEntity .ok (Response .ok (DatasetConverter .INSTANCE .convertToResponse (datasetFile )));
@@ -82,8 +79,8 @@ public ResponseEntity<Response<DatasetFileResponse>> getDatasetFileById(
8279
8380 @ DeleteMapping ("/{fileId}" )
8481 public ResponseEntity <Response <Void >> deleteDatasetFile (
85- @ PathVariable ("datasetId" ) String datasetId ,
86- @ PathVariable ("fileId" ) String fileId ) {
82+ @ PathVariable ("datasetId" ) String datasetId ,
83+ @ PathVariable ("fileId" ) String fileId ) {
8784 try {
8885 datasetFileApplicationService .deleteDatasetFile (datasetId , fileId );
8986 return ResponseEntity .ok ().build ();
@@ -101,10 +98,10 @@ public ResponseEntity<Resource> downloadDatasetFileById(@PathVariable("datasetId
10198 Resource resource = datasetFileApplicationService .downloadFile (datasetId , fileId );
10299
103100 return ResponseEntity .ok ()
104- .contentType (MediaType .APPLICATION_OCTET_STREAM )
105- .header (HttpHeaders .CONTENT_DISPOSITION ,
106- "attachment; filename=\" " + datasetFile .getFileName () + "\" " )
107- .body (resource );
101+ .contentType (MediaType .APPLICATION_OCTET_STREAM )
102+ .header (HttpHeaders .CONTENT_DISPOSITION ,
103+ "attachment; filename=\" " + datasetFile .getFileName () + "\" " )
104+ .body (resource );
108105 } catch (IllegalArgumentException e ) {
109106 return ResponseEntity .status (HttpStatus .NOT_FOUND ).build ();
110107 } catch (Exception e ) {
@@ -136,11 +133,26 @@ public ResponseEntity<Response<String>> preUpload(@PathVariable("datasetId") Str
136133 * @param uploadFileRequest 上传文件请求
137134 */
138135 @ PostMapping ("/upload/chunk" )
139- public ResponseEntity <Void > chunkUpload (@ PathVariable ("datasetId" ) String datasetId , @ Valid UploadFileRequest uploadFileRequest ) {
136+ public ResponseEntity <Void > chunkUpload (@ PathVariable ("datasetId" ) String datasetId ,
137+ @ Valid UploadFileRequest uploadFileRequest ) {
140138 log .info ("file upload reqId:{}, fileNo:{}, total chunk num:{}, current chunkNo:{}" ,
141- uploadFileRequest .getReqId (), uploadFileRequest .getFileNo (), uploadFileRequest .getTotalChunkNum (),
142- uploadFileRequest .getChunkNo ());
139+ uploadFileRequest .getReqId (), uploadFileRequest .getFileNo (), uploadFileRequest .getTotalChunkNum (),
140+ uploadFileRequest .getChunkNo ());
143141 datasetFileApplicationService .chunkUpload (datasetId , uploadFileRequest );
144142 return ResponseEntity .ok ().build ();
145143 }
144+
145+ /**
146+ * 将指定路径中的文件拷贝到数据集目录下
147+ *
148+ * @param datasetId 数据集ID
149+ * @param req 源文件路径列表
150+ * @return 数据集文件响应DTO列表
151+ */
152+ @ PostMapping ("/upload/copy" )
153+ public List <DatasetFileResponse > copyFilesToDatasetDir (@ PathVariable ("datasetId" ) String datasetId ,
154+ @ RequestBody @ Valid CopyFilesRequest req ) {
155+ List <DatasetFile > datasetFiles = datasetFileApplicationService .copyFilesToDatasetDir (datasetId , req );
156+ return DatasetConverter .INSTANCE .convertToResponseList (datasetFiles );
157+ }
146158}
0 commit comments