diff --git a/src/main/java/com/zhangmeng/online/exam/controller/UserController.java b/src/main/java/com/zhangmeng/online/exam/controller/UserController.java index 68114a5..7106661 100644 --- a/src/main/java/com/zhangmeng/online/exam/controller/UserController.java +++ b/src/main/java/com/zhangmeng/online/exam/controller/UserController.java @@ -43,41 +43,40 @@ public class UserController { TypedQuery query = entityManager.createQuery("select obj from User obj where obj.id = 1", User.class); User root = query.getResultList().get(0); - -// Set roles = root.getRoles(); -// for (Role role : roles) { -// Set permissions = role.getPermissions(); -// for (Permission permission : permissions) { -// if (permission.getParent() == null) {//一级菜单 -// Map map = new HashMap<>(); -// map.put("id", permission.getId()); -// map.put("name", permission.getName()); -// map.put("icon", permission.getIcon()); -// map.put("url", permission.getUrl()); -// map.put("description", permission.getDescription()); -// map.put("sort", permission.getSort()); -// map.put("children", new ArrayList<>()); -// list.add(map); -// } else { -// if (list.isEmpty()) { -// continue; -// } -// for (Map map : list) { -// if (map.get("id").equals(permission.getParent().getId())) { -// List> children = (List>) map.get("children"); -// Map childMap = new HashMap<>(); -// childMap.put("id", permission.getId()); -// childMap.put("name", permission.getName()); -// childMap.put("icon", permission.getIcon()); -// childMap.put("url", permission.getUrl()); -// childMap.put("description", permission.getDescription()); -// childMap.put("sort", permission.getSort()); -// children.add(childMap); -// } -// } -// } -// } -// } + Set roles = root.getRoles(); + for (Role role : roles) { + Set permissions = role.getPermissions(); + for (Permission permission : permissions) { + if (permission.getParent() == null) {//一级菜单 + Map map = new HashMap<>(); + map.put("id", permission.getId()); + map.put("name", permission.getName()); + map.put("icon", permission.getIcon()); + map.put("url", permission.getUrl()); + map.put("description", permission.getDescription()); + map.put("sort", permission.getSort()); + map.put("children", new ArrayList<>()); + list.add(map); + } else { + if (list.isEmpty()) { + continue; + } + for (Map map : list) { + if (map.get("id").equals(permission.getParent().getId())) { + List> children = (List>) map.get("children"); + Map childMap = new HashMap<>(); + childMap.put("id", permission.getId()); + childMap.put("name", permission.getName()); + childMap.put("icon", permission.getIcon()); + childMap.put("url", permission.getUrl()); + childMap.put("description", permission.getDescription()); + childMap.put("sort", permission.getSort()); + children.add(childMap); + } + } + } + } + } return Result.success(list); } } \ No newline at end of file diff --git a/src/main/java/com/zhangmeng/online/exam/entity/Permission.java b/src/main/java/com/zhangmeng/online/exam/entity/Permission.java index ffcc7cd..f0bb89c 100644 --- a/src/main/java/com/zhangmeng/online/exam/entity/Permission.java +++ b/src/main/java/com/zhangmeng/online/exam/entity/Permission.java @@ -1,10 +1,7 @@ package com.zhangmeng.online.exam.entity; import com.zhangmeng.online.exam.entity.baseEntity.BaseEntity; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; +import lombok.*; import javax.persistence.*; import java.util.HashSet; @@ -16,10 +13,11 @@ import java.util.Set; * @version: 1.0 */ @NoArgsConstructor -@Data +@ToString(exclude = {"roles"}) +@Getter +@Setter @AllArgsConstructor @Entity -@EqualsAndHashCode(callSuper = false) @Table(name = "permission") public class Permission extends BaseEntity { @@ -37,7 +35,7 @@ public class Permission extends BaseEntity { @Column(name = "frontpath") private String frontpath; - @ManyToMany(mappedBy = "permissions") + @ManyToMany(mappedBy = "permissions",targetEntity = Role.class) private Set roles = new HashSet<>(); @ManyToOne(fetch = FetchType.LAZY) diff --git a/src/main/java/com/zhangmeng/online/exam/entity/Role.java b/src/main/java/com/zhangmeng/online/exam/entity/Role.java index d442381..5d4936e 100644 --- a/src/main/java/com/zhangmeng/online/exam/entity/Role.java +++ b/src/main/java/com/zhangmeng/online/exam/entity/Role.java @@ -1,10 +1,7 @@ package com.zhangmeng.online.exam.entity; import com.zhangmeng.online.exam.entity.baseEntity.BaseEntity; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; +import lombok.*; import javax.persistence.*; import java.util.HashSet; @@ -16,10 +13,11 @@ import java.util.Set; * @version: 1.0 */ @NoArgsConstructor -@Data +@ToString(exclude = {"users","permissions"}) +@Getter +@Setter @AllArgsConstructor @Entity -@EqualsAndHashCode(callSuper = false) @Table(name = "role") public class Role extends BaseEntity { @@ -27,7 +25,7 @@ public class Role extends BaseEntity { private String description; - @ManyToMany(mappedBy = "roles") + @ManyToMany(mappedBy = "roles",targetEntity = User.class) private Set users = new HashSet<>(); @ManyToMany(fetch = FetchType.LAZY) diff --git a/src/main/java/com/zhangmeng/online/exam/entity/User.java b/src/main/java/com/zhangmeng/online/exam/entity/User.java index 6a9b5aa..0ee1edd 100644 --- a/src/main/java/com/zhangmeng/online/exam/entity/User.java +++ b/src/main/java/com/zhangmeng/online/exam/entity/User.java @@ -1,10 +1,7 @@ package com.zhangmeng.online.exam.entity; import com.zhangmeng.online.exam.entity.baseEntity.BaseEntity; -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.NoArgsConstructor; +import lombok.*; import javax.persistence.*; import java.util.HashSet; @@ -16,10 +13,11 @@ import java.util.Set; * @version: 1.0 */ @NoArgsConstructor -@Data +@ToString(exclude = {"roles"}) +@Getter +@Setter @AllArgsConstructor @Entity -@EqualsAndHashCode(callSuper = false) @Table(name = "user") public class User extends BaseEntity {