Skip to content

Commit abc26c2

Browse files
committed
refactor: update service and repository structure to use DTOs and improve clarity
1 parent f9dbefd commit abc26c2

36 files changed

+427
-353
lines changed

backend/services/operator-market-service/src/main/java/com/datamate/operator/OperatorMarketServiceConfiguration.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@
1313
@Configuration
1414
@EnableAsync
1515
@EnableScheduling
16-
@EntityScan(basePackages = "com.datamate.operator.domain.modal")
16+
@EntityScan(basePackages = "com.datamate.operator.domain.model")
1717
@ComponentScan(basePackages = {
18-
"com.datamate.operator",
19-
"com.datamate.shared"
18+
"com.datamate.operator"
2019
})
2120
public class OperatorMarketServiceConfiguration {
2221
// Service configuration class for JAR packaging

backend/services/operator-market-service/src/main/java/com/datamate/operator/application/CategoryService.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.datamate.operator.application;
22

33

4-
import com.datamate.operator.domain.modal.Category;
5-
import com.datamate.operator.domain.modal.CategoryRelation;
6-
import com.datamate.operator.infrastructure.persistence.mapper.CategoryMapper;
7-
import com.datamate.operator.infrastructure.persistence.mapper.CategoryRelationMapper;
4+
import com.datamate.operator.domain.repository.CategoryRelationRepository;
5+
import com.datamate.operator.domain.repository.CategoryRepository;
6+
import com.datamate.operator.interfaces.dto.CategoryDto;
7+
import com.datamate.operator.interfaces.dto.CategoryRelationDto;
88
import com.datamate.operator.interfaces.dto.CategoryTreeResponse;
99
import com.datamate.operator.interfaces.dto.SubCategory;
1010
import lombok.RequiredArgsConstructor;
@@ -18,30 +18,30 @@
1818
@Service
1919
@RequiredArgsConstructor
2020
public class CategoryService {
21-
private final CategoryMapper categoryMapper;
21+
private final CategoryRepository categoryRepo;
2222

23-
private final CategoryRelationMapper categoryRelationMapper;
23+
private final CategoryRelationRepository categoryRelationRepo;
2424

2525
public List<CategoryTreeResponse> getAllCategories() {
26-
List<Category> allCategories = categoryMapper.findAllCategories();
27-
List<CategoryRelation> allRelations = categoryRelationMapper.findAllRelation();
26+
List<CategoryDto> allCategories = categoryRepo.findAllCategories();
27+
List<CategoryRelationDto> allRelations = categoryRelationRepo.findAllRelation();
2828

2929
Map<Integer, Integer> relationMap = allRelations.stream()
3030
.collect(Collectors.groupingBy(
31-
CategoryRelation::getCategoryId,
31+
CategoryRelationDto::getCategoryId,
3232
Collectors.collectingAndThen(Collectors.counting(), Math::toIntExact)));
3333

3434
Map<Integer, String> nameMap = allCategories.stream()
35-
.collect(Collectors.toMap(Category::getId, Category::getName));
36-
Map<Integer, List<Category>> groupedByParentId = allCategories.stream()
35+
.collect(Collectors.toMap(CategoryDto::getId, CategoryDto::getName));
36+
Map<Integer, List<CategoryDto>> groupedByParentId = allCategories.stream()
3737
.filter(relation -> relation.getParentId() > 0)
38-
.collect(Collectors.groupingBy(Category::getParentId));
38+
.collect(Collectors.groupingBy(CategoryDto::getParentId));
3939

4040
return groupedByParentId.entrySet().stream()
4141
.sorted(Map.Entry.comparingByKey())
4242
.map(entry -> {
4343
Integer parentId = entry.getKey();
44-
List<Category> group = entry.getValue();
44+
List<CategoryDto> group = entry.getValue();
4545
CategoryTreeResponse response = new CategoryTreeResponse();
4646
response.setId(parentId);
4747
response.setName(nameMap.get(parentId));

backend/services/operator-market-service/src/main/java/com/datamate/operator/application/LabelService.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
11
package com.datamate.operator.application;
22

3-
import com.datamate.operator.interfaces.dto.Label;
4-
import com.datamate.operator.interfaces.dto.*;
3+
import com.datamate.operator.interfaces.dto.LabelDto;
54
import org.springframework.stereotype.Service;
65
import java.util.List;
76
import java.util.Collections;
87

98
@Service
109
public class LabelService {
11-
public List<Label> getLabels(Integer page, Integer size, String keyword) {
10+
public List<LabelDto> getLabels(Integer page, Integer size, String keyword) {
1211
// TODO: 查询标签列表
1312
return Collections.emptyList();
1413
}
15-
public void updateLabel(String id, List<Label> updateLabelRequest) {
14+
public void updateLabel(String id, List<LabelDto> updateLabelDtoRequest) {
1615
// TODO: 更新标签
1716
}
18-
public void createLabels(Label labelsPostRequest) {
17+
public void createLabels(LabelDto labelsPostRequest) {
1918
// TODO: 批量创建标签
2019
}
2120
}
Lines changed: 27 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
package com.datamate.operator.application;
22

3-
import com.datamate.operator.domain.converter.OperatorConverter;
4-
import com.datamate.operator.infrastructure.persistence.mapper.CategoryRelationMapper;
5-
import com.datamate.operator.infrastructure.persistence.mapper.OperatorMapper;
6-
import com.datamate.operator.interfaces.dto.CreateOperatorRequest;
7-
import com.datamate.operator.interfaces.dto.OperatorResponse;
8-
import com.datamate.operator.interfaces.dto.UpdateOperatorRequest;
9-
import com.datamate.operator.interfaces.dto.*;
10-
import com.datamate.operator.domain.modal.Operator;
3+
import com.datamate.operator.infrastructure.converter.OperatorConverter;
4+
import com.datamate.operator.domain.model.OperatorView;
5+
import com.datamate.operator.domain.repository.CategoryRelationRepository;
6+
import com.datamate.operator.domain.repository.OperatorRepository;
7+
import com.datamate.operator.domain.repository.OperatorViewRepository;
8+
import com.datamate.operator.interfaces.dto.OperatorDto;
119
import lombok.RequiredArgsConstructor;
1210
import org.springframework.stereotype.Service;
1311
import org.springframework.web.multipart.MultipartFile;
@@ -17,60 +15,42 @@
1715
@Service
1816
@RequiredArgsConstructor
1917
public class OperatorService {
20-
private final OperatorMapper operatorMapper;
18+
private final OperatorRepository operatorRepo;
2119

22-
private final CategoryRelationMapper relationMapper;
20+
private final OperatorViewRepository operatorViewRepo;
2321

24-
public List<OperatorResponse> getOperators(Integer page, Integer size, List<Integer> categories,
25-
String operatorName, Boolean isStar) {
26-
Integer offset = page * size;
27-
List<Operator> filteredOperators = operatorMapper.findOperatorsByCriteria(size, offset, operatorName,
22+
private final CategoryRelationRepository relationRepo;
23+
24+
public List<OperatorDto> getOperators(Integer page, Integer size, List<Integer> categories,
25+
String operatorName, Boolean isStar) {
26+
List<OperatorView> filteredOperators = operatorViewRepo.findOperatorsByCriteria(page, size, operatorName,
2827
categories, isStar);
29-
return filteredOperators.stream()
30-
.map(OperatorConverter.INSTANCE::operatorToResponse).toList();
28+
return filteredOperators.stream().map(OperatorConverter.INSTANCE::fromEntityToDto).toList();
3129
}
3230

3331
public int getOperatorsCount(List<Integer> categories, String operatorName, Boolean isStar) {
34-
return operatorMapper.countOperatorsByCriteria(operatorName, categories, isStar);
32+
return operatorViewRepo.countOperatorsByCriteria(operatorName, categories, isStar);
3533
}
3634

37-
public OperatorResponse getOperatorById(String id) {
38-
Operator operator = operatorMapper.findOperatorById(id);
39-
return OperatorConverter.INSTANCE.operatorToResponse(operator);
35+
public OperatorDto getOperatorById(String id) {
36+
OperatorView operator = operatorViewRepo.findOperatorById(id);
37+
return OperatorConverter.INSTANCE.fromEntityToDto(operator);
4038
}
4139

42-
public OperatorResponse createOperator(CreateOperatorRequest req) {
43-
Operator operator = new Operator();
44-
operator.setId(req.getId());
45-
operator.setName(req.getName());
46-
operator.setDescription(req.getDescription());
47-
operator.setVersion(req.getVersion());
48-
operator.setInputs(req.getInputs());
49-
operator.setOutputs(req.getOutputs());
50-
operator.setRuntime(req.getRuntime());
51-
operator.setSettings(req.getSettings());
52-
operatorMapper.insertOperator(operator);
53-
relationMapper.batchInsert(req.getId(), req.getCategories());
54-
return OperatorConverter.INSTANCE.operatorToResponse(operator);
40+
public OperatorDto createOperator(OperatorDto req) {
41+
operatorRepo.insertOperator(req);
42+
relationRepo.batchInsert(req.getId(), req.getCategories());
43+
return getOperatorById(req.getId());
5544
}
5645

57-
public OperatorResponse updateOperator(String id, UpdateOperatorRequest req) {
58-
Operator operator = new Operator();
59-
operator.setId(id);
60-
operator.setName(req.getName());
61-
operator.setDescription(req.getDescription());
62-
operator.setVersion(req.getVersion());
63-
operator.setInputs(req.getInputs());
64-
operator.setOutputs(req.getOutputs());
65-
operator.setRuntime(req.getRuntime());
66-
operator.setSettings(req.getSettings());
67-
operatorMapper.updateOperator(operator);
68-
relationMapper.batchInsert(id, req.getCategories());
46+
public OperatorDto updateOperator(String id, OperatorDto req) {
47+
operatorRepo.updateOperator(req);
48+
relationRepo.batchInsert(id, req.getCategories());
6949
return getOperatorById(id);
7050
}
7151

72-
public OperatorResponse uploadOperator(MultipartFile file, String description) {
52+
public OperatorDto uploadOperator(MultipartFile file, String description) {
7353
// TODO: 文件上传与解析
74-
return new OperatorResponse();
54+
return new OperatorDto();
7555
}
7656
}

backend/services/operator-market-service/src/main/java/com/datamate/operator/domain/modal/RelationCategoryDTO.java

Lines changed: 0 additions & 15 deletions
This file was deleted.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.datamate.operator.domain.model;
2+
3+
import com.baomidou.mybatisplus.annotation.TableName;
4+
import lombok.Getter;
5+
import lombok.Setter;
6+
7+
@Setter
8+
@Getter
9+
@TableName(value = "t_operator_category", autoResultMap = true)
10+
public class Category {
11+
private Integer id;
12+
13+
private String name;
14+
15+
private String type;
16+
17+
private Integer parentId;
18+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.datamate.operator.domain.model;
2+
3+
import com.baomidou.mybatisplus.annotation.TableName;
4+
import lombok.AllArgsConstructor;
5+
import lombok.Getter;
6+
import lombok.Setter;
7+
8+
@Setter
9+
@Getter
10+
@AllArgsConstructor
11+
@TableName(value = "t_operator_category_relation", autoResultMap = true)
12+
public class CategoryRelation {
13+
private Integer categoryId;
14+
15+
private String operatorId;
16+
}

backend/services/operator-market-service/src/main/java/com/datamate/operator/domain/modal/Operator.java renamed to backend/services/operator-market-service/src/main/java/com/datamate/operator/domain/model/Operator.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1-
package com.datamate.operator.domain.modal;
1+
package com.datamate.operator.domain.model;
22

3+
import com.baomidou.mybatisplus.annotation.TableName;
34
import lombok.Getter;
45
import lombok.Setter;
56

67
import java.time.LocalDateTime;
78

89
@Getter
910
@Setter
11+
@TableName(value = "t_operator")
1012
public class Operator {
1113
private String id;
1214

@@ -20,12 +22,12 @@ public class Operator {
2022

2123
private String outputs;
2224

23-
private String categories;
24-
2525
private String runtime;
2626

2727
private String settings;
2828

29+
private String fileName;
30+
2931
private Boolean isStar;
3032

3133
private LocalDateTime createdAt;
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package com.datamate.operator.domain.model;
2+
3+
import com.baomidou.mybatisplus.annotation.TableField;
4+
import com.baomidou.mybatisplus.annotation.TableName;
5+
import lombok.Getter;
6+
import lombok.Setter;
7+
8+
import java.time.LocalDateTime;
9+
10+
@Getter
11+
@Setter
12+
@TableName(value = "v_operator")
13+
public class OperatorView {
14+
@TableField(value = "operator_id")
15+
private String id;
16+
17+
@TableField(value = "operator_name")
18+
private String name;
19+
20+
private String description;
21+
22+
private String version;
23+
24+
private String inputs;
25+
26+
private String outputs;
27+
28+
private String categories;
29+
30+
private String runtime;
31+
32+
private String settings;
33+
34+
private Boolean isStar;
35+
36+
private LocalDateTime createdAt;
37+
38+
private LocalDateTime updatedAt;
39+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.datamate.operator.domain.repository;
2+
3+
import com.baomidou.mybatisplus.extension.repository.IRepository;
4+
import com.datamate.operator.domain.model.CategoryRelation;
5+
import com.datamate.operator.interfaces.dto.CategoryRelationDto;
6+
import org.apache.ibatis.annotations.Param;
7+
8+
import java.util.List;
9+
10+
public interface CategoryRelationRepository extends IRepository<CategoryRelation> {
11+
12+
List<CategoryRelationDto> findAllRelation();
13+
14+
void batchInsert(@Param("operatorId") String operatorId, @Param("categories") List<Integer> categories);
15+
}

0 commit comments

Comments
 (0)