用户权限展示.
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
package com.xuxd.kafka.console.beans.vo;
|
||||
|
||||
import com.xuxd.kafka.console.beans.dos.SysPermissionDO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author: xuxd
|
||||
* @date: 2023/4/17 21:18
|
||||
**/
|
||||
@Data
|
||||
public class SysPermissionVO {
|
||||
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 权限类型: 0:菜单,1:按钮
|
||||
*/
|
||||
private Integer type;
|
||||
|
||||
private Long parentId;
|
||||
|
||||
private String permission;
|
||||
|
||||
private Long key;
|
||||
|
||||
private List<SysPermissionVO> children;
|
||||
|
||||
public static SysPermissionVO from(SysPermissionDO permissionDO) {
|
||||
SysPermissionVO permissionVO = new SysPermissionVO();
|
||||
|
||||
permissionVO.setPermission(permissionDO.getPermission());
|
||||
permissionVO.setType(permissionDO.getType());
|
||||
permissionVO.setName(permissionDO.getName());
|
||||
permissionVO.setParentId(permissionDO.getParentId());
|
||||
permissionVO.setKey(permissionDO.getId());
|
||||
return permissionVO;
|
||||
}
|
||||
}
|
||||
@@ -5,10 +5,7 @@ import com.xuxd.kafka.console.beans.dto.SysPermissionDTO;
|
||||
import com.xuxd.kafka.console.beans.dto.SysRoleDTO;
|
||||
import com.xuxd.kafka.console.beans.dto.SysUserDTO;
|
||||
import com.xuxd.kafka.console.service.UserManageService;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* @author: xuxd
|
||||
@@ -41,4 +38,9 @@ public class UserManageController {
|
||||
public Object addPermission(@RequestBody SysPermissionDTO permissionDTO) {
|
||||
return userManageService.addPermission(permissionDTO);
|
||||
}
|
||||
|
||||
@GetMapping("/permission")
|
||||
public Object selectPermission() {
|
||||
return userManageService.selectPermission();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,4 +21,6 @@ public interface UserManageService {
|
||||
ResponseData addRole(SysRoleDTO roleDTO);
|
||||
|
||||
ResponseData addUser(SysUserDTO userDTO);
|
||||
|
||||
ResponseData selectPermission();
|
||||
}
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
package com.xuxd.kafka.console.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.xuxd.kafka.console.beans.ResponseData;
|
||||
import com.xuxd.kafka.console.beans.dos.SysPermissionDO;
|
||||
import com.xuxd.kafka.console.beans.dto.SysPermissionDTO;
|
||||
import com.xuxd.kafka.console.beans.dto.SysRoleDTO;
|
||||
import com.xuxd.kafka.console.beans.dto.SysUserDTO;
|
||||
import com.xuxd.kafka.console.beans.vo.SysPermissionVO;
|
||||
import com.xuxd.kafka.console.dao.SysPermissionMapper;
|
||||
import com.xuxd.kafka.console.dao.SysRoleMapper;
|
||||
import com.xuxd.kafka.console.dao.SysUserMapper;
|
||||
@@ -12,6 +15,9 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.ObjectProvider;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author: xuxd
|
||||
* @date: 2023/4/11 21:24
|
||||
@@ -51,4 +57,59 @@ public class UserManageServiceImpl implements UserManageService {
|
||||
userMapper.insert(userDTO.toDO());
|
||||
return ResponseData.create().success();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseData selectPermission() {
|
||||
QueryWrapper<SysPermissionDO> queryWrapper = new QueryWrapper<>();
|
||||
|
||||
List<SysPermissionDO> permissionDOS = permissionMapper.selectList(queryWrapper);
|
||||
List<SysPermissionVO> vos = new ArrayList<>();
|
||||
Map<Long, Integer> posMap = new HashMap<>();
|
||||
Map<Long, SysPermissionVO> voMap = new HashMap<>();
|
||||
|
||||
Iterator<SysPermissionDO> iterator = permissionDOS.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
SysPermissionDO permissionDO = iterator.next();
|
||||
if (permissionDO.getParentId() == null) {
|
||||
// 菜单
|
||||
SysPermissionVO vo = SysPermissionVO.from(permissionDO);
|
||||
vos.add(vo);
|
||||
int index = vos.size() - 1;
|
||||
// 记录位置
|
||||
posMap.put(permissionDO.getId(), index);
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
// 上面把菜单都处理过了
|
||||
while (!permissionDOS.isEmpty()) {
|
||||
iterator = permissionDOS.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
SysPermissionDO permissionDO = iterator.next();
|
||||
Long parentId = permissionDO.getParentId();
|
||||
if (posMap.containsKey(parentId)) {
|
||||
// 菜单下的按扭
|
||||
SysPermissionVO vo = SysPermissionVO.from(permissionDO);
|
||||
Integer index = posMap.get(parentId);
|
||||
SysPermissionVO menuVO = vos.get(index);
|
||||
if (menuVO.getChildren() == null) {
|
||||
menuVO.setChildren(new ArrayList<>());
|
||||
}
|
||||
menuVO.getChildren().add(vo);
|
||||
voMap.put(permissionDO.getId(), vo);
|
||||
iterator.remove();
|
||||
} else if (voMap.containsKey(parentId)) {
|
||||
// 按钮下的按扭
|
||||
SysPermissionVO vo = SysPermissionVO.from(permissionDO);
|
||||
SysPermissionVO buttonVO = voMap.get(parentId);
|
||||
if (buttonVO.getChildren() == null) {
|
||||
buttonVO.setChildren(new ArrayList<>());
|
||||
}
|
||||
buttonVO.getChildren().add(vo);
|
||||
voMap.put(permissionDO.getId(), vo);
|
||||
iterator.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
return ResponseData.create().data(vos).success();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user