diff --git a/src/main/java/com/dc/dc_project/controller/StandardCategoryController.java b/src/main/java/com/dc/dc_project/controller/StandardCategoryController.java index 3e9cfd6..c419734 100644 --- a/src/main/java/com/dc/dc_project/controller/StandardCategoryController.java +++ b/src/main/java/com/dc/dc_project/controller/StandardCategoryController.java @@ -28,6 +28,12 @@ public class StandardCategoryController { return standardCategoryService.getList(standardCategoryDto); } + @PostMapping("/tree") + public ResponseResult tree(@RequestBody StandardCategoryQueDto standardCategoryDto) { + Long userId = StpUtil.getLoginIdAsLong(); + return standardCategoryService.getTree(standardCategoryDto, userId); + } + @PostMapping("/add") public ResponseResult add(@RequestBody @Validated StandardCategoryDto standardCategoryDto) { return standardCategoryService.add(standardCategoryDto); diff --git a/src/main/java/com/dc/dc_project/model/vo/StandardCategoryVo.java b/src/main/java/com/dc/dc_project/model/vo/StandardCategoryVo.java new file mode 100644 index 0000000..5b3b524 --- /dev/null +++ b/src/main/java/com/dc/dc_project/model/vo/StandardCategoryVo.java @@ -0,0 +1,58 @@ +package com.dc.dc_project.model.vo; + + +import com.dc.dc_project.model.TreeNode; +import com.dc.dc_project.model.pojo.StandardCategory; +import jakarta.validation.constraints.NotNull; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class StandardCategoryVo implements TreeNode { + + /** + * 上级分类ID + */ + private Long parentId; + + private Long id; + + /** + * 分类名称(如水利、电力、公路等) + */ + @NotNull + private String name; + + /** + * 分类编码(可用于同步外部标准库) + */ + private String code; + + /** + * 排序号 + */ + private Integer sortOrder; + + /** + * 备注 + */ + private String remark; + + private List children; + + public static StandardCategoryVo poToVo(StandardCategory standardCategory){ + StandardCategoryVo standardCategoryVo = new StandardCategoryVo(); + standardCategoryVo.setId(standardCategory.getId()); + standardCategoryVo.setName(standardCategory.getName()); + standardCategoryVo.setCode(standardCategory.getCode()); + standardCategoryVo.setSortOrder(standardCategory.getSortOrder()); + standardCategoryVo.setRemark(standardCategory.getRemark()); + standardCategoryVo.setParentId(standardCategory.getParentId()); + return standardCategoryVo; + } +} diff --git a/src/main/java/com/dc/dc_project/service/StandardCategoryService.java b/src/main/java/com/dc/dc_project/service/StandardCategoryService.java index 6a69e86..0881c4d 100644 --- a/src/main/java/com/dc/dc_project/service/StandardCategoryService.java +++ b/src/main/java/com/dc/dc_project/service/StandardCategoryService.java @@ -45,4 +45,13 @@ public interface StandardCategoryService extends IService { * @return **/ ResponseResult updateStandardCategory(StandardCategoryUpdateDto standardCategoryDto); + + /** + * 获取标准分类树 + * @param standardCategoryDto + * @param userId + * @ + * @return + **/ + ResponseResult getTree(StandardCategoryQueDto standardCategoryDto, Long userId); } diff --git a/src/main/java/com/dc/dc_project/service/impl/StandardCategoryServiceImpl.java b/src/main/java/com/dc/dc_project/service/impl/StandardCategoryServiceImpl.java index ff2cf41..5d3892f 100644 --- a/src/main/java/com/dc/dc_project/service/impl/StandardCategoryServiceImpl.java +++ b/src/main/java/com/dc/dc_project/service/impl/StandardCategoryServiceImpl.java @@ -7,12 +7,15 @@ import com.dc.dc_project.model.dto.StandardCategoryDto; import com.dc.dc_project.model.dto.StandardCategoryQueDto; import com.dc.dc_project.model.dto.StandardCategoryUpdateDto; import com.dc.dc_project.model.pojo.StandardCategory; +import com.dc.dc_project.model.vo.StandardCategoryVo; import com.dc.dc_project.service.StandardCategoryService; import com.dc.dc_project.mapper.StandardCategoryMapper; +import com.dc.dc_project.utils.TreeUtil; import org.springframework.stereotype.Service; import lombok.extern.slf4j.Slf4j; import java.util.List; +import java.util.stream.Collectors; /** * @author ADMIN @@ -106,6 +109,17 @@ public class StandardCategoryServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper() + .eq(StandardCategory::getIsDeleted, 0) + .eq(standardCategoryDto.getId() != null, StandardCategory::getId, standardCategoryDto.getId()) + .like(standardCategoryDto.getName() != null, StandardCategory::getName, standardCategoryDto.getName()); + List list = this.list(queryWrapper); + List tree = TreeUtil.buildTree(list.stream().map(StandardCategoryVo::poToVo).collect(Collectors.toList())); + return ResponseResult.success(tree); + } }