2025年3月6日17:45:43

master
qmstyle 2025-03-06 17:45:50 +08:00
parent 90e06a7305
commit e202d57987
8 changed files with 229 additions and 45 deletions

View File

@ -61,6 +61,11 @@
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-security</artifactId>-->
<!-- </dependency>-->
</dependencies>
<build>

View File

@ -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();

View File

@ -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<Role> list = roleDao.findAll();
List<Map<String, Object>> resultList = new ArrayList<>();
for (Role role : list) {
Map<String, Object> 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);
}
}

View File

@ -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<User> list = userDao.findAll();
List<Map<String, Object>> resultList = new ArrayList<>();
for (User user : list) {
Map<String, Object> 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<Map<String, Object>> list = new ArrayList<>();
List<Menu> list = new ArrayList<>();
TypedQuery<User> 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<Permission> permissions = role.getPermissions();
for (Permission permission : permissions) {
if (permission.getParent() == null) {//一级菜单
Map<String, Object> 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<String, Object> map : list) {
if (map.get("id").equals(permission.getParent().getId())) {
List<Map<String, Object>> children = (List<Map<String, Object>>) map.get("children");
Map<String, Object> 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<Menu> 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;
}
}

View File

@ -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<Menu> children;
}

View File

@ -36,11 +36,11 @@ public class Result {
this.data = data;
}
public static Result success(List<Map<String, Object>> 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;
}

View File

@ -21,6 +21,25 @@ import java.util.Set;
@Table(name = "role")
public class Role extends BaseEntity<Long> {
@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;

View File

@ -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<Long> {
@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<Map<String,Object>> enumListMap(){
User.Status[] values = User.Status.values();
List<Map<String, Object>> list = new ArrayList<>();
for (User.Status value : values) {
Map<String, Object> 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;