Skip to content

Commit 015e66f

Browse files
committed
feature: update cleaning template service and controller for pagination handling and status updates
2 parents 208a1c9 + 37a75e5 commit 015e66f

File tree

29 files changed

+574
-196
lines changed

29 files changed

+574
-196
lines changed

backend/services/data-cleaning-service/src/main/java/com/dataengine/cleaning/application/service/CleaningTemplateService.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@ public List<CleaningTemplate> getTemplates(String keywords, Integer page, Intege
3535
Map<String, OperatorResponse> operatorsMap = allOperators.stream()
3636
.collect(Collectors.toMap(OperatorResponse::getId, Function.identity()));
3737

38-
Integer offset = page * size;
38+
Integer offset = null;
39+
if (page != null && size != null) {
40+
offset = page * size;
41+
}
3942
List<TemplateWithInstance> allTemplates = cleaningTemplateMapper.findAllTemplates(keywords, size, offset);
4043
Map<String, List<TemplateWithInstance>> templatesMap = allTemplates.stream()
4144
.collect(Collectors.groupingBy(TemplateWithInstance::getId));

backend/services/data-cleaning-service/src/main/java/com/dataengine/cleaning/interfaces/api/CleaningTaskController.java

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,13 @@
11
package com.dataengine.cleaning.interfaces.api;
22

3+
import com.dataengine.cleaning.application.service.CleaningTaskService;
34
import com.dataengine.cleaning.interfaces.dto.CleaningTask;
45
import com.dataengine.cleaning.interfaces.dto.CreateCleaningTaskRequest;
5-
import com.dataengine.cleaning.application.service.CleaningTaskService;
6-
6+
import com.dataengine.common.infrastructure.common.Response;
77
import com.dataengine.common.interfaces.PagedResponse;
8-
import com.dataengine.common.interfaces.Response;
98
import lombok.RequiredArgsConstructor;
109
import org.springframework.http.ResponseEntity;
11-
import org.springframework.web.bind.annotation.DeleteMapping;
12-
import org.springframework.web.bind.annotation.GetMapping;
13-
import org.springframework.web.bind.annotation.PathVariable;
14-
import org.springframework.web.bind.annotation.PostMapping;
15-
import org.springframework.web.bind.annotation.RequestBody;
16-
import org.springframework.web.bind.annotation.RequestMapping;
17-
import org.springframework.web.bind.annotation.RequestParam;
18-
import org.springframework.web.bind.annotation.RestController;
10+
import org.springframework.web.bind.annotation.*;
1911

2012
import java.util.List;
2113

backend/services/data-cleaning-service/src/main/java/com/dataengine/cleaning/interfaces/api/CleaningTemplateController.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
package com.dataengine.cleaning.interfaces.api;
22

33
import com.dataengine.cleaning.application.service.CleaningTemplateService;
4-
54
import com.dataengine.cleaning.interfaces.dto.CleaningTemplate;
65
import com.dataengine.cleaning.interfaces.dto.CreateCleaningTemplateRequest;
76
import com.dataengine.cleaning.interfaces.dto.UpdateCleaningTemplateRequest;
7+
import com.dataengine.common.infrastructure.common.Response;
88
import com.dataengine.common.interfaces.PagedResponse;
9-
import com.dataengine.common.interfaces.Response;
109
import lombok.RequiredArgsConstructor;
1110
import org.springframework.http.ResponseEntity;
1211
import org.springframework.web.bind.annotation.DeleteMapping;
@@ -34,9 +33,13 @@ public ResponseEntity<Response<PagedResponse<CleaningTemplate>>> cleaningTemplat
3433
@RequestParam(value = "size", required = false) Integer size,
3534
@RequestParam(value = "keywords", required = false) String keyword) {
3635
List<CleaningTemplate> templates = cleaningTemplateService.getTemplates(keyword, page, size);
37-
int count = cleaningTemplateService.countTemplates(keyword);
38-
int totalPages = (count + size + 1) / size;
39-
return ResponseEntity.ok(Response.ok(PagedResponse.of(templates, page, count, totalPages)));
36+
if (page != null && size != null) {
37+
int count = cleaningTemplateService.countTemplates(keyword);
38+
int totalPages = (count + size + 1) / size;
39+
return ResponseEntity.ok(Response.ok(PagedResponse.of(templates, page, count, totalPages)));
40+
} else {
41+
return ResponseEntity.ok(Response.ok(PagedResponse.of(templates)));
42+
}
4043
}
4144

4245
@PostMapping

backend/services/data-management-service/src/main/java/com/dataengine/datamanagement/application/DatasetApplicationService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.dataengine.datamanagement.application;
22

3+
import com.dataengine.datamanagement.common.enums.DatasetStatusType;
34
import com.dataengine.datamanagement.domain.model.dataset.Dataset;
45
import com.dataengine.datamanagement.domain.model.dataset.DatasetFile;
56
import com.dataengine.datamanagement.domain.model.dataset.Tag;
@@ -111,7 +112,7 @@ public Dataset updateDataset(String datasetId, String name, String description,
111112

112113
if (name != null && !name.isEmpty()) dataset.setName(name);
113114
if (description != null) dataset.setDescription(description);
114-
if (status != null && !status.isEmpty()) dataset.setStatus(status);
115+
if (status != null && !status.isEmpty()) dataset.setStatus(DatasetStatusType.valueOf(status));
115116
dataset.setUpdatedAt(LocalDateTime.now());
116117

117118
Set<Tag> processedTags = new HashSet<>();
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.dataengine.datamanagement.common.enums;
2+
3+
/**
4+
* 数据集状态类型
5+
* <p>数据集可以处于以下几种状态:
6+
* <p>草稿(DRAFT):数据集正在创建中,尚未完成。
7+
* <p>活动(ACTIVE):数据集处于活动状态, 可以被查询和使用,也可以被更新和删除。
8+
* <p>处理中(PROCESSING):数据集正在处理中,可能需要一些时间,处理完成后会变成活动状态。
9+
* <p>已归档(ARCHIVED):数据集已被归档,不可以更新文件,可以解锁变成活动状态。
10+
* <p>已发布(PUBLISHED):数据集已被发布,可供外部使用,外部用户可以查询和使用数据集。
11+
* <p>已弃用(DEPRECATED):数据集已被弃用,不建议再使用。
12+
*
13+
* @author dallas
14+
* @since 2025-10-17
15+
*/
16+
public enum DatasetStatusType {
17+
/**
18+
* 草稿状态
19+
*/
20+
DRAFT,
21+
/**
22+
* 活动状态
23+
*/
24+
ACTIVE,
25+
/**
26+
* 处理中状态
27+
*/
28+
PROCESSING,
29+
/**
30+
* 已归档状态
31+
*/
32+
ARCHIVED,
33+
/**
34+
* 已发布状态
35+
*/
36+
PUBLISHED,
37+
/**
38+
* 已弃用状态
39+
*/
40+
DEPRECATED
41+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.dataengine.datamanagement.common.enums;
2+
3+
import lombok.Getter;
4+
5+
/**
6+
* 数据集类型值对象
7+
*
8+
* @author DataEngine
9+
* @since 2025-10-15
10+
*/
11+
public enum DatasetType {
12+
TEXT("text", "文本数据集"),
13+
IMAGE("image", "图像数据集"),
14+
AUDIO("audio", "音频数据集"),
15+
VIDEO("video", "视频数据集"),
16+
OTHER("other", "其他数据集");
17+
18+
@Getter
19+
private final String code;
20+
21+
@Getter
22+
private final String description;
23+
24+
DatasetType(String code, String description) {
25+
this.code = code;
26+
this.description = description;
27+
}
28+
}

backend/services/data-management-service/src/main/java/com/dataengine/datamanagement/domain/model/dataset/Dataset.java

Lines changed: 56 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import com.baomidou.mybatisplus.annotation.TableField;
44
import com.baomidou.mybatisplus.annotation.TableName;
55
import com.dataengine.common.domain.model.base.BaseEntity;
6+
import com.dataengine.datamanagement.common.enums.DatasetStatusType;
7+
import com.dataengine.datamanagement.common.enums.DatasetType;
68
import lombok.Getter;
79
import lombok.Setter;
810

@@ -19,21 +21,69 @@
1921
@Setter
2022
@TableName(value = "t_dm_datasets", autoResultMap = true)
2123
public class Dataset extends BaseEntity<String> {
24+
/**
25+
* 数据集名称
26+
*/
2227
private String name;
28+
/**
29+
* 数据集描述
30+
*/
2331
private String description;
24-
private String datasetType;
32+
/**
33+
* 数据集类型
34+
*/
35+
private DatasetType datasetType;
36+
/**
37+
* 数据集分类
38+
*/
2539
private String category;
40+
/**
41+
* 数据集路径
42+
*/
2643
private String path;
44+
/**
45+
* 数据集格式
46+
*/
2747
private String format;
48+
/**
49+
* 数据集模式信息,JSON格式, 用于解析当前数据集的文件结构
50+
*/
2851
private String schemaInfo;
52+
/**
53+
* 数据集大小(字节)
54+
*/
2955
private Long sizeBytes = 0L;
56+
/**
57+
* 文件数量
58+
*/
3059
private Long fileCount = 0L;
60+
/**
61+
* 记录数量
62+
*/
3163
private Long recordCount = 0L;
64+
/**
65+
* 数据集保留天数
66+
*/
3267
private Integer retentionDays = 0;
68+
/**
69+
* 额外元数据,JSON格式
70+
*/
3371
private String metadata;
34-
private String status; // DRAFT/ACTIVE/ARCHIVED/PROCESSING
72+
/**
73+
* 数据集状态
74+
*/
75+
private DatasetStatusType status;
76+
/**
77+
* 是否为公共数据集
78+
*/
3579
private Boolean isPublic = false;
80+
/**
81+
* 是否为精选数据集
82+
*/
3683
private Boolean isFeatured = false;
84+
/**
85+
* 数据集版本号
86+
*/
3787
private Long version = 0L;
3888

3989
// 聚合内的便捷集合(非持久化关联,由应用服务填充)
@@ -45,8 +95,8 @@ public class Dataset extends BaseEntity<String> {
4595
public Dataset() {
4696
}
4797

48-
public Dataset(String name, String description, String datasetType, String category, String path, String format,
49-
String status, String createdBy) {
98+
public Dataset(String name, String description, DatasetType datasetType, String category, String path,
99+
String format, DatasetStatusType status, String createdBy) {
50100
this.name = name;
51101
this.description = description;
52102
this.datasetType = datasetType;
@@ -62,7 +112,7 @@ public Dataset(String name, String description, String datasetType, String categ
62112
public void initCreateParam(String datasetBasePath) {
63113
this.id = UUID.randomUUID().toString();
64114
this.path = datasetBasePath + File.separator + this.id;
65-
this.status = StatusConstants.DatasetStatuses.ACTIVE;
115+
this.status = DatasetStatusType.DRAFT;
66116
this.createdBy = "system";
67117
this.updatedBy = "system";
68118
this.createdAt = LocalDateTime.now();
@@ -76,7 +126,7 @@ public void updateBasicInfo(String name, String description, String category) {
76126
this.updatedAt = LocalDateTime.now();
77127
}
78128

79-
public void updateStatus(String status, String updatedBy) {
129+
public void updateStatus(DatasetStatusType status, String updatedBy) {
80130
this.status = status;
81131
this.updatedBy = updatedBy;
82132
this.updatedAt = LocalDateTime.now();

backend/services/data-management-service/src/main/java/com/dataengine/datamanagement/domain/model/dataset/DatasetType.java

Lines changed: 0 additions & 41 deletions
This file was deleted.

backend/services/data-management-service/src/main/java/com/dataengine/datamanagement/interfaces/rest/DatasetController.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package com.dataengine.datamanagement.interfaces.rest;
22

3+
import com.dataengine.common.infrastructure.common.Response;
4+
import com.dataengine.common.infrastructure.exception.SystemErrorCode;
35
import com.dataengine.common.interfaces.PagedResponse;
4-
import com.dataengine.common.interfaces.Response;
56
import com.dataengine.datamanagement.application.DatasetApplicationService;
67
import com.dataengine.datamanagement.domain.model.dataset.Dataset;
78
import com.dataengine.datamanagement.interfaces.converter.DatasetConverter;
@@ -20,7 +21,6 @@
2021
@RestController
2122
@RequestMapping("/data-management/datasets")
2223
public class DatasetController {
23-
2424
private final DatasetApplicationService datasetApplicationService;
2525

2626
@Autowired
@@ -47,7 +47,7 @@ public ResponseEntity<Response<DatasetResponse>> createDataset(@RequestBody Crea
4747
Dataset dataset = datasetApplicationService.createDataset(createDatasetRequest);
4848
return ResponseEntity.status(HttpStatus.CREATED).body(Response.ok(DatasetConverter.INSTANCE.convertToResponse(dataset)));
4949
} catch (IllegalArgumentException e) {
50-
return ResponseEntity.badRequest().body(Response.error("参数错误", null));
50+
return ResponseEntity.badRequest().body(Response.error(SystemErrorCode.UNKNOWN_ERROR, null));
5151
}
5252
}
5353

@@ -57,7 +57,7 @@ public ResponseEntity<Response<DatasetResponse>> getDatasetById(@PathVariable("d
5757
Dataset dataset = datasetApplicationService.getDataset(datasetId);
5858
return ResponseEntity.ok(Response.ok(DatasetConverter.INSTANCE.convertToResponse(dataset)));
5959
} catch (IllegalArgumentException e) {
60-
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(Response.error("数据集不存在", null));
60+
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(Response.error(SystemErrorCode.UNKNOWN_ERROR, null));
6161
}
6262
}
6363

@@ -75,7 +75,7 @@ public ResponseEntity<Response<DatasetResponse>> updateDataset(
7575
);
7676
return ResponseEntity.ok(Response.ok(DatasetConverter.INSTANCE.convertToResponse(dataset)));
7777
} catch (IllegalArgumentException e) {
78-
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(Response.error("数据集不存在", null));
78+
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(Response.error(SystemErrorCode.UNKNOWN_ERROR, null));
7979
}
8080
}
8181

@@ -85,7 +85,7 @@ public ResponseEntity<Response<Void>> deleteDataset(@PathVariable("datasetId") S
8585
datasetApplicationService.deleteDataset(datasetId);
8686
return ResponseEntity.noContent().build();
8787
} catch (IllegalArgumentException e) {
88-
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(Response.error("数据集不存在", null));
88+
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(Response.error(SystemErrorCode.UNKNOWN_ERROR, null));
8989
}
9090
}
9191

@@ -104,9 +104,9 @@ public ResponseEntity<Response<DatasetStatisticsResponse>> getDatasetStatistics(
104104

105105
return ResponseEntity.ok(Response.ok(response));
106106
} catch (IllegalArgumentException e) {
107-
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(Response.error("数据集不存在", null));
107+
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(Response.error(SystemErrorCode.UNKNOWN_ERROR, null));
108108
} catch (Exception e) {
109-
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(Response.error("服务器内部错误", null));
109+
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(Response.error(SystemErrorCode.UNKNOWN_ERROR, null));
110110
}
111111
}
112112

0 commit comments

Comments
 (0)