From e202d579870ee16059d683510b488ff4ca3b7b84 Mon Sep 17 00:00:00 2001 From: qmstyle Date: Thu, 6 Mar 2025 17:45:50 +0800 Subject: [PATCH] =?UTF-8?q?2025=E5=B9=B43=E6=9C=886=E6=97=A517:45:43?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 5 ++ .../exam/controller/InitController.java | 77 +++++++++++++++---- .../exam/controller/RoleController.java | 44 +++++++++++ .../exam/controller/UserController.java | 64 +++++++++------ .../com/zhangmeng/online/exam/dto/Menu.java | 26 +++++++ .../com/zhangmeng/online/exam/dto/Result.java | 4 +- .../zhangmeng/online/exam/entity/Role.java | 19 +++++ .../zhangmeng/online/exam/entity/User.java | 35 ++++++++- 8 files changed, 229 insertions(+), 45 deletions(-) create mode 100644 src/main/java/com/zhangmeng/online/exam/controller/RoleController.java create mode 100644 src/main/java/com/zhangmeng/online/exam/dto/Menu.java diff --git a/pom.xml b/pom.xml index fd9e7a9..589254d 100644 --- a/pom.xml +++ b/pom.xml @@ -61,6 +61,11 @@ spring-boot-starter-freemarker + + + + + diff --git a/src/main/java/com/zhangmeng/online/exam/controller/InitController.java b/src/main/java/com/zhangmeng/online/exam/controller/InitController.java index 1879493..f8a251a 100644 --- a/src/main/java/com/zhangmeng/online/exam/controller/InitController.java +++ b/src/main/java/com/zhangmeng/online/exam/controller/InitController.java @@ -41,52 +41,89 @@ public class InitController { permissionDao.save(p1); Permission p2 = new Permission(); - p2.setName("用户管理"); - p2.setIcon("user-filled"); + p2.setName("用户列表"); + p2.setIcon("user-list"); p2.setUrl("/user/list"); - p2.setDescription("用户管理"); - p2.setSort(1); + p2.setDescription("用户列表"); + p2.setSort(2); p2.setFrontpath("/user/list"); p2.setParent(p1); permissionDao.save(p2); Permission p3 = new Permission(); p3.setName("角色管理"); - p3.setIcon("role"); + p3.setIcon("role-list"); p3.setUrl("/role/list"); p3.setDescription("角色管理"); - p3.setSort(2); + p3.setSort(3); p3.setFrontpath("/role/list"); p3.setParent(p1); permissionDao.save(p3); Permission p4 = new Permission(); p4.setName("权限管理"); - p4.setIcon("permission"); + p4.setIcon("permission-list"); p4.setUrl("/permission/list"); p4.setDescription("权限管理"); - p4.setSort(3); + p4.setSort(4); p4.setFrontpath("/permission/list"); p4.setParent(p1); permissionDao.save(p4); + /****************************************************************************************************************************************/ + Permission p5 = new Permission(); p5.setName("问题管理"); - p5.setIcon("question"); - p5.setUrl("/question/list"); + p5.setIcon("question-manager"); p5.setDescription("问题管理"); - p5.setSort(4); + p5.setSort(5); permissionDao.save(p5); Permission p6 = new Permission(); p6.setName("问题列表"); p6.setIcon("question-list"); - p6.setUrl("/permission/list"); - p6.setDescription("权限管理"); - p6.setSort(3); - p6.setFrontpath("/permission/list"); - p6.setParent(p1); - permissionDao.save(p4); + p6.setUrl("/question/list"); + p6.setDescription("问题列表"); + p6.setSort(6); + p6.setFrontpath("/question/list"); + p6.setParent(p5); + permissionDao.save(p6); + + + Permission p7 = new Permission(); + p7.setName("职业管理"); + p7.setIcon("profession-manager"); + p7.setDescription("问题管理"); + p7.setSort(7); + permissionDao.save(p7); + + Permission p8 = new Permission(); + p8.setName("职业列表"); + p8.setIcon("profession-list"); + p8.setUrl("/profession/list"); + p8.setDescription("职业列表"); + p8.setSort(8); + p8.setFrontpath("/profession/list"); + p8.setParent(p7); + permissionDao.save(p8); + + Permission p9 = new Permission(); + p9.setName("学科管理"); + p9.setIcon("subject-manager"); + p9.setDescription("学科管理"); + p9.setSort(9); + permissionDao.save(p9); + + + Permission p10 = new Permission(); + p10.setName("学科列表"); + p10.setIcon("subject-list"); + p10.setUrl("/subject/list"); + p10.setDescription("学科列表"); + p10.setSort(10); + p10.setFrontpath("/subject/list"); + p10.setParent(p9); + permissionDao.save(p10); @@ -97,6 +134,12 @@ public class InitController { role.getPermissions().add(p2); role.getPermissions().add(p3); role.getPermissions().add(p4); + role.getPermissions().add(p5); + role.getPermissions().add(p6); + role.getPermissions().add(p7); + role.getPermissions().add(p8); + role.getPermissions().add(p9); + role.getPermissions().add(p10); roleDao.save(role); User admin = new User(); diff --git a/src/main/java/com/zhangmeng/online/exam/controller/RoleController.java b/src/main/java/com/zhangmeng/online/exam/controller/RoleController.java new file mode 100644 index 0000000..d62ffbc --- /dev/null +++ b/src/main/java/com/zhangmeng/online/exam/controller/RoleController.java @@ -0,0 +1,44 @@ +package com.zhangmeng.online.exam.controller; + +import com.zhangmeng.online.exam.dao.RoleDao; +import com.zhangmeng.online.exam.dto.Result; +import com.zhangmeng.online.exam.entity.Role; +import com.zhangmeng.online.exam.entity.User; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @author zm + * @date 2025/3/6 17:27 + * @version: 1.0 + */ +@RestController +@RequestMapping("/role") +public class RoleController { + + @Autowired + private RoleDao roleDao; + + @RequestMapping("/list") + public Result list() { + + List list = roleDao.findAll(); + List> resultList = new ArrayList<>(); + for (Role role : list) { + Map map = new HashMap<>(); + map.put("id", role.getId()); + map.put("name", role.getName()); + map.put("desc", role.getDescription()); + map.put("type_name", role.getType().name()); + resultList.add(map); + } + return Result.success(resultList); + } + +} 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 7106661..bac79dc 100644 --- a/src/main/java/com/zhangmeng/online/exam/controller/UserController.java +++ b/src/main/java/com/zhangmeng/online/exam/controller/UserController.java @@ -3,6 +3,7 @@ package com.zhangmeng.online.exam.controller; import com.zhangmeng.online.exam.dao.PermissionDao; import com.zhangmeng.online.exam.dao.RoleDao; import com.zhangmeng.online.exam.dao.UserDao; +import com.zhangmeng.online.exam.dto.Menu; import com.zhangmeng.online.exam.dto.Result; import com.zhangmeng.online.exam.entity.*; import com.zhangmeng.online.exam.entity.User; @@ -36,10 +37,25 @@ public class UserController { @Autowired private EntityManager entityManager; + @GetMapping("/list") + public Result userList() { + List list = userDao.findAll(); + List> resultList = new ArrayList<>(); + for (User user : list) { + Map map = new HashMap<>(); + map.put("id", user.getId()); + map.put("username", user.getUsername()); + map.put("email", user.getEmail()); + map.put("phone", user.getPhone()); + resultList.add(map); + } + return Result.success(resultList); + } + @GetMapping("/menu") public Result menuList() { - List> list = new ArrayList<>(); + List list = new ArrayList<>(); TypedQuery query = entityManager.createQuery("select obj from User obj where obj.id = 1", User.class); User root = query.getResultList().get(0); @@ -48,35 +64,35 @@ public class UserController { 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()); + Menu menu = getMenu(permission); + list.add(menu); + } + } + if (!list.isEmpty()) { + for (Permission permission : permissions) { + for (Menu map : list) { + if (permission.getParent() != null && map.getId().equals(permission.getParent().getId())) { + List children = map.getChildren(); + Menu childMap = getMenu(permission); children.add(childMap); } + } } } } return Result.success(list); } + + private static Menu getMenu(Permission permission) { + Menu childMap = new Menu(); + childMap.setId(permission.getId()); + childMap.setName(permission.getName()); + childMap.setIcon(permission.getIcon()); + childMap.setUrl(permission.getUrl()); + childMap.setDescription(permission.getDescription()); + childMap.setSort(permission.getSort()); + childMap.setChildren(new ArrayList<>()); + return childMap; + } } \ No newline at end of file diff --git a/src/main/java/com/zhangmeng/online/exam/dto/Menu.java b/src/main/java/com/zhangmeng/online/exam/dto/Menu.java new file mode 100644 index 0000000..98ef6ea --- /dev/null +++ b/src/main/java/com/zhangmeng/online/exam/dto/Menu.java @@ -0,0 +1,26 @@ +package com.zhangmeng.online.exam.dto; + +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.util.List; + +/** + * @author zm + * @date 2025/3/6 16:12 + * @version: 1.0 + */ +@Getter +@Setter +public class Menu { + + private Long id; + private String name; + private String icon; + private String url; + private String description; + private Integer sort; + private List children; + +} diff --git a/src/main/java/com/zhangmeng/online/exam/dto/Result.java b/src/main/java/com/zhangmeng/online/exam/dto/Result.java index ca4bc09..7b60bad 100644 --- a/src/main/java/com/zhangmeng/online/exam/dto/Result.java +++ b/src/main/java/com/zhangmeng/online/exam/dto/Result.java @@ -36,11 +36,11 @@ public class Result { this.data = data; } - public static Result success(List> list) { + public static Result success(Object data) { Result result = new Result(); result.setCode(SUCCESS); result.setMessage("success"); - result.setData(list); + result.setData(data); return result; } 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 5d4936e..f44bbf6 100644 --- a/src/main/java/com/zhangmeng/online/exam/entity/Role.java +++ b/src/main/java/com/zhangmeng/online/exam/entity/Role.java @@ -21,6 +21,25 @@ import java.util.Set; @Table(name = "role") public class Role extends BaseEntity { + @Getter + public enum Type { + + STUDENT("学生"),//学生 + TEACHER("教师"),//教师 + ADMIN("管理员");//管理员 + + private final String desc; + + Type(String desc) { + this.desc = desc; + } + + } + + @Column(name = "type") + @Enumerated(EnumType.ORDINAL) + private Type type; + private String name; private String description; 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 0ee1edd..d577987 100644 --- a/src/main/java/com/zhangmeng/online/exam/entity/User.java +++ b/src/main/java/com/zhangmeng/online/exam/entity/User.java @@ -4,8 +4,7 @@ import com.zhangmeng.online.exam.entity.baseEntity.BaseEntity; import lombok.*; import javax.persistence.*; -import java.util.HashSet; -import java.util.Set; +import java.util.*; /** * @author zm @@ -21,6 +20,38 @@ import java.util.Set; @Table(name = "user") public class User extends BaseEntity { + @Getter + public enum Status { + DISABLED("已停用"), + VALID("正常"), + LOCKED("锁定"); + + Status(String description) { + this.description = description; + } + + private String description;//描述 + + public void setDescription(String description) { + this.description = description; + } + + public static List> enumListMap(){ + User.Status[] values = User.Status.values(); + List> list = new ArrayList<>(); + for (User.Status value : values) { + Map map = new HashMap<>(); + String description = value.getDescription(); + map.put("description",description); + map.put("value",value); + list.add(map); + } + return list; + } + } + + private Status status; + private String username; private String password;