2025年4月9日18:19:32
parent
007442f2b8
commit
9fe20c9fcc
|
|
@ -6,13 +6,14 @@ import com.zhangmeng.online.exam.entity.Permission;
|
||||||
import com.zhangmeng.online.exam.entity.Role;
|
import com.zhangmeng.online.exam.entity.Role;
|
||||||
import com.zhangmeng.online.exam.utils.PageUtils;
|
import com.zhangmeng.online.exam.utils.PageUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.*;
|
||||||
import org.springframework.data.domain.PageRequest;
|
import org.springframework.data.jpa.domain.Specification;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.data.domain.Sort;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -45,10 +46,18 @@ public class PermissionController {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@RequestMapping("/list")
|
@RequestMapping("/list")
|
||||||
public Result list(Integer pageNum, Integer pageSize) {
|
public Result list(Integer pageNum, Integer pageSize,boolean isTop) {
|
||||||
|
|
||||||
Pageable pageable = PageRequest.of(PageUtils.getPageNum(pageNum), pageSize, Sort.Direction.DESC, "addTime");
|
Pageable pageable = PageRequest.of(PageUtils.getPageNum(pageNum), pageSize, Sort.Direction.DESC, "addTime");
|
||||||
Page<Permission> all = permissionDao.findAll(pageable);
|
|
||||||
|
Page<Permission> all;
|
||||||
|
if (isTop){
|
||||||
|
Specification<Permission> spec = isDescriptionNull(); // 仅查询description为null的情况
|
||||||
|
all = permissionDao.findAll(spec, pageable);
|
||||||
|
}else {
|
||||||
|
all = permissionDao.findAll(pageable);
|
||||||
|
}
|
||||||
|
|
||||||
List<Permission> list = all.getContent();
|
List<Permission> list = all.getContent();
|
||||||
List<Map<String, Object>> resultList = new ArrayList<>();
|
List<Map<String, Object>> resultList = new ArrayList<>();
|
||||||
for (Permission permission : list) {
|
for (Permission permission : list) {
|
||||||
|
|
@ -57,8 +66,42 @@ public class PermissionController {
|
||||||
map.put("name", permission.getName());
|
map.put("name", permission.getName());
|
||||||
map.put("desc", permission.getDescription());
|
map.put("desc", permission.getDescription());
|
||||||
map.put("url", permission.getUrl());
|
map.put("url", permission.getUrl());
|
||||||
|
map.put("sort", permission.getSort());
|
||||||
|
map.put("parentId", permission.getParent()==null?0L:permission.getParent().getId());
|
||||||
|
|
||||||
resultList.add(map);
|
resultList.add(map);
|
||||||
}
|
}
|
||||||
return Result.success(pageNum, pageSize, all.getTotalElements(), resultList);
|
return Result.success(pageNum, pageSize, all.getTotalElements(), resultList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequestMapping("/save")
|
||||||
|
public Result save(@RequestParam @RequestBody Map<String, Object> params, HttpServletRequest request) {
|
||||||
|
Permission permission;
|
||||||
|
Map<String, String[]> parameterMap = request.getParameterMap();
|
||||||
|
|
||||||
|
String id = params.get("id").toString();
|
||||||
|
String name = params.get("name").toString();
|
||||||
|
String description = params.get("description").toString();
|
||||||
|
String url = params.get("url").toString();
|
||||||
|
String parent_id = params.get("parent_id").toString();
|
||||||
|
|
||||||
|
if (id != null && !id.isEmpty()){
|
||||||
|
permission = permissionDao.getById(Long.parseLong(id));
|
||||||
|
}else {
|
||||||
|
permission = new Permission();
|
||||||
|
}
|
||||||
|
permission.setName(name);
|
||||||
|
permission.setDescription(description);
|
||||||
|
permission.setUrl(url);
|
||||||
|
if (parent_id != null && !parent_id.isEmpty()){
|
||||||
|
permission.setParent(permissionDao.getById(Long.parseLong(parent_id)));
|
||||||
|
}
|
||||||
|
permissionDao.save(permission);
|
||||||
|
|
||||||
|
return Result.success(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Specification<Permission> isDescriptionNull() {
|
||||||
|
return (root, query, cb) -> cb.isNull(root.get("parent"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -44,15 +44,35 @@ public class UserController {
|
||||||
|
|
||||||
@RequestMapping("/save")
|
@RequestMapping("/save")
|
||||||
public Result save(@RequestParam @RequestBody Map<String, Object> params) {
|
public Result save(@RequestParam @RequestBody Map<String, Object> params) {
|
||||||
|
String id = params.get("id").toString();
|
||||||
String username = params.get("username").toString();
|
String username = params.get("username").toString();
|
||||||
String password = params.get("password").toString();
|
String password = params.get("password").toString();
|
||||||
String email = params.get("email").toString();
|
String email = params.get("email").toString();
|
||||||
String phone = params.get("phone").toString();
|
String phone = params.get("phone").toString();
|
||||||
|
String status = params.get("status").toString();
|
||||||
|
String role_ids = params.get("role_ids").toString();
|
||||||
|
String[] role_id_arr = role_ids.split(",");
|
||||||
|
Set<Role> roles = new HashSet<>();
|
||||||
|
for (String role_id : role_id_arr) {
|
||||||
|
Role role = roleDao.findById(Long.parseLong(role_id)).get();
|
||||||
|
roles.add(role);
|
||||||
|
}
|
||||||
User user = new User();
|
User user = new User();
|
||||||
|
|
||||||
|
if (id!= null && !id.isEmpty()){
|
||||||
|
user = userDao.findById(Long.parseLong(id)).get();
|
||||||
|
}
|
||||||
|
|
||||||
user.setUsername(username);
|
user.setUsername(username);
|
||||||
user.setPassword(password);
|
user.setPassword(password);
|
||||||
user.setEmail(email);
|
user.setEmail(email);
|
||||||
user.setPhone(phone);
|
user.setPhone(phone);
|
||||||
|
user.setRoles(roles);
|
||||||
|
switch (status) {
|
||||||
|
case "1" -> user.setStatus(User.Status.VALID);
|
||||||
|
case "0" -> user.setStatus(User.Status.DISABLED);
|
||||||
|
case "2" -> user.setStatus(User.Status.LOCKED);
|
||||||
|
}
|
||||||
userDao.save(user);
|
userDao.save(user);
|
||||||
return Result.success(user.getId());
|
return Result.success(user.getId());
|
||||||
}
|
}
|
||||||
|
|
@ -91,7 +111,15 @@ public class UserController {
|
||||||
map.put("email", user.getEmail());
|
map.put("email", user.getEmail());
|
||||||
map.put("phone", user.getPhone());
|
map.put("phone", user.getPhone());
|
||||||
map.put("password", user.getPassword());
|
map.put("password", user.getPassword());
|
||||||
|
map.put("status", user.getStatus());
|
||||||
|
Set<Role> roles = user.getRoles();
|
||||||
|
|
||||||
|
StringBuilder roleIds = new StringBuilder();
|
||||||
|
for (Role role : roles) {
|
||||||
|
roleIds.append(role.getId()).append(",");
|
||||||
|
}
|
||||||
|
|
||||||
|
map.put("role_ids", roleIds);
|
||||||
return Result.success(map);
|
return Result.success(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,12 @@ package com.zhangmeng.online.exam.dao;
|
||||||
|
|
||||||
import com.zhangmeng.online.exam.entity.Permission;
|
import com.zhangmeng.online.exam.entity.Permission;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author zm
|
* @author zm
|
||||||
* @date 2025/2/28 16:04
|
* @date 2025/2/28 16:04
|
||||||
* @version: 1.0
|
* @version: 1.0
|
||||||
*/
|
*/
|
||||||
public interface PermissionDao extends JpaRepository<Permission, Long> {
|
public interface PermissionDao extends JpaRepository<Permission, Long>, JpaSpecificationExecutor<Permission> {
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue