From 15e82e853b05f68fda2d0d14fc0388e19b810adf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Tue, 9 Dec 2025 14:28:41 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=92=E8=89=B2=E6=A8=A1=E6=9D=BF=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E6=A0=91=E5=BD=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../czg/market/entity/SysRoleTemplate.java | 4 +++ .../impl/SysRoleTemplateServiceImpl.java | 29 ++++++++++++++++--- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SysRoleTemplate.java b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SysRoleTemplate.java index 4dcb99254..28451071b 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SysRoleTemplate.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/entity/SysRoleTemplate.java @@ -8,6 +8,8 @@ import java.io.Serializable; import java.time.LocalDateTime; import java.io.Serial; +import java.util.ArrayList; +import java.util.List; import lombok.AllArgsConstructor; import lombok.Builder; @@ -76,4 +78,6 @@ public class SysRoleTemplate implements Serializable { */ private Integer pid; + private List children = new ArrayList<>(); + } diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java index 3a3d50097..9057d4da0 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/SysRoleTemplateServiceImpl.java @@ -13,7 +13,10 @@ import com.czg.market.service.SysRoleTemplateService; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * 角色模板 服务层实现。 @@ -42,10 +45,28 @@ public class SysRoleTemplateServiceImpl extends ServiceImpl listInfo(Long pid) { QueryWrapper queryWrapper = new QueryWrapper().eq(SysRoleTemplate::getPid, pid); - if (pid == null) { - queryWrapper.isNull(SysRoleTemplate::getPid); - } - return list(queryWrapper); + List list = list(queryWrapper); + + // 转成 map,便于通过 id 找节点 + Map map = list.stream() + .collect(Collectors.toMap(SysRoleTemplate::getId, v -> v)); + + // 存根节点 + List roots = new ArrayList<>(); + + list.forEach(item -> { + if (item.getPid() == null || item.getPid() == 0) { + // 这是根节点 + roots.add(item); + } else { + // 找父节点 + SysRoleTemplate parent = map.get(item.getPid()); + if (parent != null) { + parent.getChildren().add(item); + } + } + }); + return roots; } @Override