From 440123c8691227db020b64cf7dbb4d1c00ce473c Mon Sep 17 00:00:00 2001 From: gjh <1421wake> Date: Fri, 21 Mar 2025 15:21:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E7=9B=AE=E5=BD=95=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ServiceCatalogCategoryController.java | 16 +++++++ .../platform/domain/AgreementInfo.java | 2 +- .../domain/ServiceCatalogCategory.java | 4 +- .../platform/domain/bo/AgreementInfoBo.java | 2 +- .../domain/bo/ServiceCatalogCategoryBo.java | 4 +- .../platform/domain/vo/AgreementInfoVo.java | 2 +- .../domain/vo/ServiceCatalogCategoryVo.java | 4 +- .../IServiceCatalogCategoryService.java | 4 ++ .../ServiceCatalogCategoryServiceImpl.java | 43 ++++++++++++++++++- 9 files changed, 71 insertions(+), 10 deletions(-) diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ServiceCatalogCategoryController.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ServiceCatalogCategoryController.java index 9e50ad4..757b9c2 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ServiceCatalogCategoryController.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/controller/ServiceCatalogCategoryController.java @@ -126,4 +126,20 @@ public class ServiceCatalogCategoryController extends BaseController { @PathVariable String id) { return R.ok(serviceCatalogCategoryService.querySubInfoById(id)); } + + + + @SaCheckPermission("platform:catalogCategory:queryCategory") + @GetMapping("/queryCategory") + public R> queryCategory() { + return R.ok(serviceCatalogCategoryService.queryCategory()); + } + + @SaCheckPermission("platform:catalogCategory:buildFullTree") + @GetMapping("/queryBuildFullTree") + public R> buildFullTree() { + return R.ok(serviceCatalogCategoryService.buildFullTree()); + } + + } diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/AgreementInfo.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/AgreementInfo.java index 1b4f35f..0d1a768 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/AgreementInfo.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/AgreementInfo.java @@ -70,7 +70,7 @@ public class AgreementInfo extends TenantEntity { /** * 交付方式 */ - private Long deliverType; + private String deliverType; /** * 交付成果 diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/ServiceCatalogCategory.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/ServiceCatalogCategory.java index 831cdfa..b9b0813 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/ServiceCatalogCategory.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/ServiceCatalogCategory.java @@ -33,12 +33,12 @@ public class ServiceCatalogCategory extends TenantEntity { /** * 项目id */ - private String projectId; + private String categoryId; /** * 项目目录名称 */ - private String projectName; + private String categoryName; /** * 描述 diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/AgreementInfoBo.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/AgreementInfoBo.java index b47c2ae..d62164c 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/AgreementInfoBo.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/AgreementInfoBo.java @@ -78,7 +78,7 @@ public class AgreementInfoBo extends BaseEntity { * 交付方式 */ @NotNull(message = "交付方式不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long deliverType; + private String deliverType; /** * 交付成果 diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/ServiceCatalogCategoryBo.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/ServiceCatalogCategoryBo.java index 5c23cba..14af6cf 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/ServiceCatalogCategoryBo.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/bo/ServiceCatalogCategoryBo.java @@ -30,13 +30,13 @@ public class ServiceCatalogCategoryBo extends BaseEntity { * 项目id */ @NotBlank(message = "项目id不能为空", groups = { AddGroup.class, EditGroup.class }) - private String projectId; + private String categoryId; /** * 项目目录名称 */ @NotBlank(message = "项目目录名称不能为空", groups = { AddGroup.class, EditGroup.class }) - private String projectName; + private String categoryName; /** * 描述 diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/AgreementInfoVo.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/AgreementInfoVo.java index 334729f..17dd23a 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/AgreementInfoVo.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/AgreementInfoVo.java @@ -86,7 +86,7 @@ public class AgreementInfoVo implements Serializable { * 交付方式 */ @ExcelProperty(value = "交付方式") - private Long deliverType; + private String deliverType; /** * 交付成果 diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/ServiceCatalogCategoryVo.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/ServiceCatalogCategoryVo.java index 4d697c1..a808126 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/ServiceCatalogCategoryVo.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/domain/vo/ServiceCatalogCategoryVo.java @@ -38,13 +38,13 @@ public class ServiceCatalogCategoryVo implements Serializable { * 项目id */ @ExcelProperty(value = "项目id") - private String projectId; + private String categoryId; /** * 项目目录名称 */ @ExcelProperty(value = "项目目录名称") - private String projectName; + private String categoryName; /** * 描述 diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IServiceCatalogCategoryService.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IServiceCatalogCategoryService.java index 6c80665..984b142 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IServiceCatalogCategoryService.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/IServiceCatalogCategoryService.java @@ -75,4 +75,8 @@ public interface IServiceCatalogCategoryService { List queryAll(); List querySubInfoById(String id); + + List queryCategory(); + + List buildFullTree(); } diff --git a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/ServiceCatalogCategoryServiceImpl.java b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/ServiceCatalogCategoryServiceImpl.java index 607cc92..87ea6fe 100644 --- a/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/ServiceCatalogCategoryServiceImpl.java +++ b/ruoyi-modules/guoyan-platform/src/main/java/org/dromara/platform/service/impl/ServiceCatalogCategoryServiceImpl.java @@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.dromara.platform.domain.bo.ServiceCatalogCategoryBo; import org.dromara.platform.domain.vo.ServiceCatalogCategoryVo; @@ -69,7 +70,7 @@ public class ServiceCatalogCategoryServiceImpl implements IServiceCatalogCategor private LambdaQueryWrapper buildQueryWrapper(ServiceCatalogCategoryBo bo) { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.like(StringUtils.isNotBlank(bo.getProjectName()), ServiceCatalogCategory::getProjectName, bo.getProjectName()); + lqw.like(StringUtils.isNotBlank(bo.getCategoryName()), ServiceCatalogCategory::getCategoryName, bo.getCategoryName()); lqw.eq(StringUtils.isNotBlank(bo.getDescription()), ServiceCatalogCategory::getDescription, bo.getDescription()); lqw.eq(StringUtils.isNotBlank(bo.getCode()), ServiceCatalogCategory::getCode, bo.getCode()); lqw.eq(bo.getIsChildren() != null, ServiceCatalogCategory::getIsChildren, bo.getIsChildren()); @@ -183,5 +184,45 @@ public class ServiceCatalogCategoryServiceImpl implements IServiceCatalogCategor return new ArrayList<>(); } + @Override + public List queryCategory() { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ServiceCatalogCategory::getIsChildren, false); + List serviceCatalogCategories = baseMapper.selectList(queryWrapper); + List convertList = MapstructUtils.convert(serviceCatalogCategories, ServiceCatalogCategoryVo.class); + return convertList; + } + + + @Override + public List buildFullTree() { + // 获取所有服务类别记录 + List allCategories = baseMapper.selectList(null); + + // 创建一个Map以便快速查找任何ID对应的类别 + Map categoryMap = new HashMap<>(); + for (ServiceCatalogCategory category : allCategories) { + categoryMap.put(category.getId(), category); + } + // 根节点列表 + List rootNodes = new ArrayList<>(); + + for (ServiceCatalogCategory category : allCategories) { + String ownerId = category.getOwnerId(); // 获取父级目录ID + if (ownerId == null || !categoryMap.containsKey(ownerId)) { + // 如果没有父节点或父节点不在当前集合中,则认为它是根节点 + rootNodes.add(category); + } else { + // 否则添加到父节点的children列表中 + ServiceCatalogCategory parentCategory = categoryMap.get(ownerId); + if (parentCategory.getChildren() == null) { + parentCategory.setChildren(new ArrayList<>()); + } + parentCategory.getChildren().add(category); + } + } + + return rootNodes; + } }