Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,9 @@
@Configuration
@EnableAsync
@EnableScheduling
@EntityScan(basePackages = "com.datamate.operator.domain.modal")
@EntityScan(basePackages = "com.datamate.operator.domain.model")
@ComponentScan(basePackages = {
"com.datamate.operator",
"com.datamate.shared"
"com.datamate.operator"
})
public class OperatorMarketServiceConfiguration {
// Service configuration class for JAR packaging
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package com.datamate.operator.application;


import com.datamate.operator.domain.modal.Category;
import com.datamate.operator.domain.modal.CategoryRelation;
import com.datamate.operator.infrastructure.persistence.mapper.CategoryMapper;
import com.datamate.operator.infrastructure.persistence.mapper.CategoryRelationMapper;
import com.datamate.operator.domain.repository.CategoryRelationRepository;
import com.datamate.operator.domain.repository.CategoryRepository;
import com.datamate.operator.interfaces.dto.CategoryDto;
import com.datamate.operator.interfaces.dto.CategoryRelationDto;
import com.datamate.operator.interfaces.dto.CategoryTreeResponse;
import com.datamate.operator.interfaces.dto.SubCategory;
import lombok.RequiredArgsConstructor;
Expand All @@ -18,30 +18,30 @@
@Service
@RequiredArgsConstructor
public class CategoryService {
private final CategoryMapper categoryMapper;
private final CategoryRepository categoryRepo;

private final CategoryRelationMapper categoryRelationMapper;
private final CategoryRelationRepository categoryRelationRepo;

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

Map<Integer, Integer> relationMap = allRelations.stream()
.collect(Collectors.groupingBy(
CategoryRelation::getCategoryId,
CategoryRelationDto::getCategoryId,
Collectors.collectingAndThen(Collectors.counting(), Math::toIntExact)));

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

return groupedByParentId.entrySet().stream()
.sorted(Map.Entry.comparingByKey())
.map(entry -> {
Integer parentId = entry.getKey();
List<Category> group = entry.getValue();
List<CategoryDto> group = entry.getValue();
CategoryTreeResponse response = new CategoryTreeResponse();
response.setId(parentId);
response.setName(nameMap.get(parentId));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
package com.datamate.operator.application;

import com.datamate.operator.interfaces.dto.Label;
import com.datamate.operator.interfaces.dto.*;
import com.datamate.operator.interfaces.dto.LabelDto;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Collections;

@Service
public class LabelService {
public List<Label> getLabels(Integer page, Integer size, String keyword) {
public List<LabelDto> getLabels(Integer page, Integer size, String keyword) {
// TODO: 查询标签列表
return Collections.emptyList();
}
public void updateLabel(String id, List<Label> updateLabelRequest) {
public void updateLabel(String id, List<LabelDto> updateLabelDtoRequest) {
// TODO: 更新标签
}
public void createLabels(Label labelsPostRequest) {
public void createLabels(LabelDto labelsPostRequest) {
// TODO: 批量创建标签
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
package com.datamate.operator.application;

import com.datamate.operator.domain.converter.OperatorConverter;
import com.datamate.operator.infrastructure.persistence.mapper.CategoryRelationMapper;
import com.datamate.operator.infrastructure.persistence.mapper.OperatorMapper;
import com.datamate.operator.interfaces.dto.CreateOperatorRequest;
import com.datamate.operator.interfaces.dto.OperatorResponse;
import com.datamate.operator.interfaces.dto.UpdateOperatorRequest;
import com.datamate.operator.interfaces.dto.*;
import com.datamate.operator.domain.modal.Operator;
import com.datamate.operator.infrastructure.converter.OperatorConverter;
import com.datamate.operator.domain.model.OperatorView;
import com.datamate.operator.domain.repository.CategoryRelationRepository;
import com.datamate.operator.domain.repository.OperatorRepository;
import com.datamate.operator.domain.repository.OperatorViewRepository;
import com.datamate.operator.interfaces.dto.OperatorDto;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
Expand All @@ -17,60 +15,42 @@
@Service
@RequiredArgsConstructor
public class OperatorService {
private final OperatorMapper operatorMapper;
private final OperatorRepository operatorRepo;

private final CategoryRelationMapper relationMapper;
private final OperatorViewRepository operatorViewRepo;

public List<OperatorResponse> getOperators(Integer page, Integer size, List<Integer> categories,
String operatorName, Boolean isStar) {
Integer offset = page * size;
List<Operator> filteredOperators = operatorMapper.findOperatorsByCriteria(size, offset, operatorName,
private final CategoryRelationRepository relationRepo;

public List<OperatorDto> getOperators(Integer page, Integer size, List<Integer> categories,
String operatorName, Boolean isStar) {
List<OperatorView> filteredOperators = operatorViewRepo.findOperatorsByCriteria(page, size, operatorName,
categories, isStar);
return filteredOperators.stream()
.map(OperatorConverter.INSTANCE::operatorToResponse).toList();
return filteredOperators.stream().map(OperatorConverter.INSTANCE::fromEntityToDto).toList();
}

public int getOperatorsCount(List<Integer> categories, String operatorName, Boolean isStar) {
return operatorMapper.countOperatorsByCriteria(operatorName, categories, isStar);
return operatorViewRepo.countOperatorsByCriteria(operatorName, categories, isStar);
}

public OperatorResponse getOperatorById(String id) {
Operator operator = operatorMapper.findOperatorById(id);
return OperatorConverter.INSTANCE.operatorToResponse(operator);
public OperatorDto getOperatorById(String id) {
OperatorView operator = operatorViewRepo.findOperatorById(id);
return OperatorConverter.INSTANCE.fromEntityToDto(operator);
}

public OperatorResponse createOperator(CreateOperatorRequest req) {
Operator operator = new Operator();
operator.setId(req.getId());
operator.setName(req.getName());
operator.setDescription(req.getDescription());
operator.setVersion(req.getVersion());
operator.setInputs(req.getInputs());
operator.setOutputs(req.getOutputs());
operator.setRuntime(req.getRuntime());
operator.setSettings(req.getSettings());
operatorMapper.insertOperator(operator);
relationMapper.batchInsert(req.getId(), req.getCategories());
return OperatorConverter.INSTANCE.operatorToResponse(operator);
public OperatorDto createOperator(OperatorDto req) {
operatorRepo.insertOperator(req);
relationRepo.batchInsert(req.getId(), req.getCategories());
return getOperatorById(req.getId());
}

public OperatorResponse updateOperator(String id, UpdateOperatorRequest req) {
Operator operator = new Operator();
operator.setId(id);
operator.setName(req.getName());
operator.setDescription(req.getDescription());
operator.setVersion(req.getVersion());
operator.setInputs(req.getInputs());
operator.setOutputs(req.getOutputs());
operator.setRuntime(req.getRuntime());
operator.setSettings(req.getSettings());
operatorMapper.updateOperator(operator);
relationMapper.batchInsert(id, req.getCategories());
public OperatorDto updateOperator(String id, OperatorDto req) {
operatorRepo.updateOperator(req);
relationRepo.batchInsert(id, req.getCategories());
return getOperatorById(id);
}

public OperatorResponse uploadOperator(MultipartFile file, String description) {
public OperatorDto uploadOperator(MultipartFile file, String description) {
// TODO: 文件上传与解析
return new OperatorResponse();
return new OperatorDto();
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.datamate.operator.domain.model;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;

@Setter
@Getter
@TableName(value = "t_operator_category", autoResultMap = true)
public class Category {
private Integer id;

private String name;

private String type;

private Integer parentId;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.datamate.operator.domain.model;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;

@Setter
@Getter
@AllArgsConstructor
@TableName(value = "t_operator_category_relation", autoResultMap = true)
public class CategoryRelation {
private Integer categoryId;

private String operatorId;
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package com.datamate.operator.domain.modal;
package com.datamate.operator.domain.model;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;

import java.time.LocalDateTime;

@Getter
@Setter
@TableName(value = "t_operator")
public class Operator {
private String id;

Expand All @@ -20,12 +22,12 @@ public class Operator {

private String outputs;

private String categories;

private String runtime;

private String settings;

private String fileName;

private Boolean isStar;

private LocalDateTime createdAt;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package com.datamate.operator.domain.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;

import java.time.LocalDateTime;

@Getter
@Setter
@TableName(value = "v_operator")
public class OperatorView {
@TableField(value = "operator_id")
private String id;

@TableField(value = "operator_name")
private String name;

private String description;

private String version;

private String inputs;

private String outputs;

private String categories;

private String runtime;

private String settings;

private Boolean isStar;

private LocalDateTime createdAt;

private LocalDateTime updatedAt;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.datamate.operator.domain.repository;

import com.baomidou.mybatisplus.extension.repository.IRepository;
import com.datamate.operator.domain.model.CategoryRelation;
import com.datamate.operator.interfaces.dto.CategoryRelationDto;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface CategoryRelationRepository extends IRepository<CategoryRelation> {

List<CategoryRelationDto> findAllRelation();

void batchInsert(@Param("operatorId") String operatorId, @Param("categories") List<Integer> categories);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.datamate.operator.domain.repository;

import com.baomidou.mybatisplus.extension.repository.IRepository;
import com.datamate.operator.domain.model.Category;
import com.datamate.operator.interfaces.dto.CategoryDto;

import java.util.List;

public interface CategoryRepository extends IRepository<Category> {
List<CategoryDto> findAllCategories();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.datamate.operator.domain.repository;

import com.baomidou.mybatisplus.extension.repository.IRepository;
import com.datamate.operator.domain.model.Operator;
import com.datamate.operator.interfaces.dto.OperatorDto;

import java.util.List;

public interface OperatorRepository extends IRepository<Operator> {
List<Operator> findAllOperators();

void updateOperator(OperatorDto operator);

void insertOperator(OperatorDto operator);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.datamate.operator.domain.repository;

import com.baomidou.mybatisplus.extension.repository.IRepository;
import com.datamate.operator.domain.model.OperatorView;

import java.util.List;

public interface OperatorViewRepository extends IRepository<OperatorView> {
List<OperatorView> findOperatorsByCriteria(Integer page, Integer size, String operatorName,
List<Integer> categories, Boolean isStar);

Integer countOperatorsByCriteria(String operatorName, List<Integer> categories, Boolean isStar);

OperatorView findOperatorById(String id);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.datamate.operator.infrastructure.converter;

import com.datamate.operator.domain.model.Category;
import com.datamate.operator.interfaces.dto.CategoryDto;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

@Mapper
public interface CategoryConverter {
CategoryConverter INSTANCE = Mappers.getMapper(CategoryConverter.class);

List<CategoryDto> fromEntityToDto (List<Category> dto);
}
Loading