新增权限获取接口、权限编辑接口
This commit is contained in:
parent
07cf979b42
commit
7be9ac3302
@ -1,10 +1,15 @@
|
|||||||
package com.jsl.oa.controllers;
|
package com.jsl.oa.controllers;
|
||||||
|
|
||||||
|
import com.jsl.oa.model.voData.PermissionEditVo;
|
||||||
|
import com.jsl.oa.model.voData.UserEditVo;
|
||||||
import com.jsl.oa.services.PermissionService;
|
import com.jsl.oa.services.PermissionService;
|
||||||
import com.jsl.oa.utils.BaseResponse;
|
import com.jsl.oa.utils.BaseResponse;
|
||||||
import com.jsl.oa.utils.ErrorCode;
|
import com.jsl.oa.utils.ErrorCode;
|
||||||
|
import com.jsl.oa.utils.Processing;
|
||||||
import com.jsl.oa.utils.ResultUtil;
|
import com.jsl.oa.utils.ResultUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.validation.BindingResult;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
@ -36,4 +41,13 @@ public class PermissionController {
|
|||||||
return permissionService.permissionGet(request);
|
return permissionService.permissionGet(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@PutMapping("/permission/edit")
|
||||||
|
public BaseResponse permissionEdit(@RequestBody @Validated PermissionEditVo permissionEditVo, BindingResult bindingResult, HttpServletRequest request){
|
||||||
|
// 判断是否有参数错误
|
||||||
|
if (bindingResult.hasErrors()) {
|
||||||
|
return ResultUtil.error(ErrorCode.REQUEST_BODY_ERROR, Processing.getValidatedErrorList(bindingResult));
|
||||||
|
}
|
||||||
|
return permissionService.permissionEdit(permissionEditVo,request);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -143,7 +143,7 @@ public class RoleController {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: TODO 改变用户角色权限信息
|
* @Description: 改变用户角色权限信息
|
||||||
* @Date: 2024/1/20
|
* @Date: 2024/1/20
|
||||||
* @Param request:
|
* @Param request:
|
||||||
* @Param uid: 用户id
|
* @Param uid: 用户id
|
||||||
|
@ -149,7 +149,7 @@ public class UserController {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: TODO 管理员添加用户
|
* @Description: 管理员添加用户
|
||||||
* @Date: 2024/1/18
|
* @Date: 2024/1/18
|
||||||
* @Param userEditProfileVO:
|
* @Param userEditProfileVO:
|
||||||
* @Param bindingResult:
|
* @Param bindingResult:
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
package com.jsl.oa.mapper;
|
package com.jsl.oa.mapper;
|
||||||
|
|
||||||
import com.jsl.oa.model.doData.PermissionDO;
|
import com.jsl.oa.model.doData.PermissionDO;
|
||||||
|
import com.jsl.oa.model.doData.RolePermissionDO;
|
||||||
import org.apache.ibatis.annotations.Insert;
|
import org.apache.ibatis.annotations.Insert;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
import org.apache.ibatis.annotations.Update;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -20,4 +22,14 @@ public interface PermissionMapper {
|
|||||||
|
|
||||||
@Select("SELECT * FROM organize_oa.oa_permissions where id=#{id}")
|
@Select("SELECT * FROM organize_oa.oa_permissions where id=#{id}")
|
||||||
PermissionDO permissionGetById(Long id);
|
PermissionDO permissionGetById(Long id);
|
||||||
|
|
||||||
|
@Select("SELECT * FROM organize_oa.oa_role_permissions where pid=#{pid}")
|
||||||
|
RolePermissionDO rolePermissionGetByPid(Long pid);
|
||||||
|
|
||||||
|
@Select("SELECT * FROM organize_oa.oa_permissions")
|
||||||
|
List<PermissionDO> getAllPermission();
|
||||||
|
|
||||||
|
@Update("UPDATE organize_oa.oa_permissions SET pid = #{pid}, name = #{name}, code = #{code}, " +
|
||||||
|
"type = #{type} WHERE id = #{id}")
|
||||||
|
boolean updatePermission(PermissionDO permissionDO);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.jsl.oa.model.voData;
|
package com.jsl.oa.model.voData;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -7,7 +8,6 @@ import java.util.List;
|
|||||||
public class PermissionContentVo {
|
public class PermissionContentVo {
|
||||||
|
|
||||||
private Long id;
|
private Long id;
|
||||||
private Long pid;
|
|
||||||
private String name;
|
private String name;
|
||||||
private String code;
|
private String code;
|
||||||
private Short type;
|
private Short type;
|
||||||
|
20
src/main/java/com/jsl/oa/model/voData/PermissionEditVo.java
Normal file
20
src/main/java/com/jsl/oa/model/voData/PermissionEditVo.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package com.jsl.oa.model.voData;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import java.sql.Timestamp;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class PermissionEditVo {
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private Long id;
|
||||||
|
private Long pid;
|
||||||
|
private String name;
|
||||||
|
private String code;
|
||||||
|
private Short type;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
|||||||
package com.jsl.oa.services;
|
package com.jsl.oa.services;
|
||||||
|
|
||||||
|
import com.jsl.oa.model.voData.PermissionEditVo;
|
||||||
import com.jsl.oa.utils.BaseResponse;
|
import com.jsl.oa.utils.BaseResponse;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
@ -11,4 +12,6 @@ public interface PermissionService {
|
|||||||
BaseResponse permissionUser(HttpServletRequest request, Long uid);
|
BaseResponse permissionUser(HttpServletRequest request, Long uid);
|
||||||
|
|
||||||
BaseResponse permissionGet(HttpServletRequest request);
|
BaseResponse permissionGet(HttpServletRequest request);
|
||||||
|
|
||||||
|
BaseResponse permissionEdit(PermissionEditVo permissionEditVo, HttpServletRequest request);
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,14 @@
|
|||||||
package com.jsl.oa.services.impl;
|
package com.jsl.oa.services.impl;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.jsl.oa.dao.UserDAO;
|
import com.jsl.oa.dao.UserDAO;
|
||||||
import com.jsl.oa.mapper.PermissionMapper;
|
import com.jsl.oa.mapper.PermissionMapper;
|
||||||
import com.jsl.oa.mapper.RoleMapper;
|
import com.jsl.oa.mapper.RoleMapper;
|
||||||
|
import com.jsl.oa.model.doData.PermissionDO;
|
||||||
|
import com.jsl.oa.model.doData.RolePermissionDO;
|
||||||
|
import com.jsl.oa.model.voData.PermissionContentVo;
|
||||||
|
import com.jsl.oa.model.voData.PermissionEditVo;
|
||||||
import com.jsl.oa.services.PermissionService;
|
import com.jsl.oa.services.PermissionService;
|
||||||
import com.jsl.oa.utils.BaseResponse;
|
import com.jsl.oa.utils.BaseResponse;
|
||||||
import com.jsl.oa.utils.ErrorCode;
|
import com.jsl.oa.utils.ErrorCode;
|
||||||
@ -12,7 +18,10 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@ -28,7 +37,7 @@ public class PermissionServiceImpl implements PermissionService {
|
|||||||
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||||
}
|
}
|
||||||
permissionMapper.permissionAdd(rid,pid);
|
permissionMapper.permissionAdd(rid,pid);
|
||||||
return null;
|
return ResultUtil.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -40,13 +49,39 @@ public class PermissionServiceImpl implements PermissionService {
|
|||||||
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
|
return ResultUtil.error(ErrorCode.USER_NOT_EXIST);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 开发中
|
|
||||||
@Override
|
@Override
|
||||||
public BaseResponse permissionGet(HttpServletRequest request) {
|
public BaseResponse permissionGet(HttpServletRequest request) {
|
||||||
|
//检验用户权限是否为管理员
|
||||||
if(!Processing.checkUserIsAdmin(request,roleMapper)){
|
if(!Processing.checkUserIsAdmin(request,roleMapper)){
|
||||||
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||||
}
|
}
|
||||||
return null;
|
//获取所有权限数据
|
||||||
|
List<PermissionDO> permissionDOS = permissionMapper.getAllPermission();
|
||||||
|
//将数据按父子类封装
|
||||||
|
List<PermissionContentVo> permissionContentVos = Processing.convertToVoList(permissionDOS);
|
||||||
|
|
||||||
|
return ResultUtil.success(permissionContentVos);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BaseResponse permissionEdit(PermissionEditVo permissionEditVo, HttpServletRequest request) {
|
||||||
|
//检验用户权限是否为管理员
|
||||||
|
if(!Processing.checkUserIsAdmin(request,roleMapper)){
|
||||||
|
return ResultUtil.error(ErrorCode.NOT_ADMIN);
|
||||||
|
}
|
||||||
|
//根据id获取对应permission数据
|
||||||
|
PermissionDO permissionDO = permissionMapper.permissionGetById(permissionEditVo.getId());
|
||||||
|
if(permissionDO == null){
|
||||||
|
return ResultUtil.error(ErrorCode.PERMISSION_NOT_EXIST);
|
||||||
|
}
|
||||||
|
//传递要编辑的数据
|
||||||
|
Processing.copyProperties(permissionEditVo,permissionDO);
|
||||||
|
//更新permission
|
||||||
|
if(!permissionMapper.updatePermission(permissionDO)){
|
||||||
|
return ResultUtil.error(ErrorCode.DATABASE_UPDATE_ERROR);
|
||||||
|
}
|
||||||
|
return ResultUtil.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -198,7 +198,7 @@ public class UserServiceImpl implements UserService {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: TODO 判断用户是否为管理员
|
* @Description: 判断用户是否为管理员
|
||||||
* @Date: 2024/1/18
|
* @Date: 2024/1/18
|
||||||
* @Param request: 请求头
|
* @Param request: 请求头
|
||||||
**/
|
**/
|
||||||
|
@ -12,9 +12,9 @@ public enum ErrorCode {
|
|||||||
USER_EXIST("UserExist", 40013, "用户名已存在"),
|
USER_EXIST("UserExist", 40013, "用户名已存在"),
|
||||||
TIMESTAMP_ERROR("TimestampError", 40014, "时间戳错误"),
|
TIMESTAMP_ERROR("TimestampError", 40014, "时间戳错误"),
|
||||||
USER_NOT_EXIST("UserNotExist", 40015, "用户不存在"),
|
USER_NOT_EXIST("UserNotExist", 40015, "用户不存在"),
|
||||||
USER_ROLE_NOT_EXIST("UserRoleNotExist", 40016, "用户权限不存在"),
|
USER_ROLE_NOT_EXIST("UserRoleNotExist", 40016, "用户角色不存在"),
|
||||||
USER_ROLE_NOT_MANAGER("UserRoleNotExist", 40017, "用户权限非管理员权限"),
|
USER_ROLE_NOT_MANAGER("UserRoleNotExist", 40017, "用户角色非管理员"),
|
||||||
USER_NOT_CHANGE_TO_THEMSELVES("UserNotChangeToThemselves", 40018, "用户不能改变自己的权限"),
|
USER_NOT_CHANGE_TO_THEMSELVES("UserNotChangeToThemselves", 40018, "用户不能改变自己的角色"),
|
||||||
UNAUTHORIZED("Unauthorized", 40100, "未授权"),
|
UNAUTHORIZED("Unauthorized", 40100, "未授权"),
|
||||||
TOKEN_EXPIRED("TokenExpired", 40101, "Token已过期"),
|
TOKEN_EXPIRED("TokenExpired", 40101, "Token已过期"),
|
||||||
VERIFICATION_INVALID("VerificationInvalid", 40102, "验证码无效"),
|
VERIFICATION_INVALID("VerificationInvalid", 40102, "验证码无效"),
|
||||||
@ -27,7 +27,8 @@ public enum ErrorCode {
|
|||||||
PASSWORD_NOT_SAME("PasswordNotSame", 40304, "两次密码不一致"),
|
PASSWORD_NOT_SAME("PasswordNotSame", 40304, "两次密码不一致"),
|
||||||
ID_NOT_EXIST("IdNotExist", 40400, "ID不存在"),
|
ID_NOT_EXIST("IdNotExist", 40400, "ID不存在"),
|
||||||
ROLE_NOT_FOUNDED("RoleNotFounded", 40401, "角色不存在"),
|
ROLE_NOT_FOUNDED("RoleNotFounded", 40401, "角色不存在"),
|
||||||
ROLE_NAME_REPEAT("RoleNameRepeat", 40402, "权限名称重复"),
|
ROLE_NAME_REPEAT("RoleNameRepeat", 40402, "角色名称重复"),
|
||||||
|
PERMISSION_NOT_EXIST("permissionNotExist",40501,"权限不存在"),
|
||||||
DATABASE_INSERT_ERROR("DatabaseInsertError", 50010, "数据库插入错误"),
|
DATABASE_INSERT_ERROR("DatabaseInsertError", 50010, "数据库插入错误"),
|
||||||
DATABASE_UPDATE_ERROR("DatabaseUpdateError", 50011, "数据库更新错误"),
|
DATABASE_UPDATE_ERROR("DatabaseUpdateError", 50011, "数据库更新错误"),
|
||||||
DATABASE_DELETE_ERROR("DatabaseDeleteError", 50012, "数据库删除错误"),
|
DATABASE_DELETE_ERROR("DatabaseDeleteError", 50012, "数据库删除错误"),
|
||||||
|
@ -2,9 +2,11 @@ package com.jsl.oa.utils;
|
|||||||
|
|
||||||
import com.jsl.oa.exception.ClassCopyException;
|
import com.jsl.oa.exception.ClassCopyException;
|
||||||
import com.jsl.oa.mapper.RoleMapper;
|
import com.jsl.oa.mapper.RoleMapper;
|
||||||
|
import com.jsl.oa.model.doData.PermissionDO;
|
||||||
import com.jsl.oa.model.doData.RoleDO;
|
import com.jsl.oa.model.doData.RoleDO;
|
||||||
import com.jsl.oa.model.doData.RoleUserDO;
|
import com.jsl.oa.model.doData.RoleUserDO;
|
||||||
import com.jsl.oa.model.doData.UserDO;
|
import com.jsl.oa.model.doData.UserDO;
|
||||||
|
import com.jsl.oa.model.voData.PermissionContentVo;
|
||||||
import com.jsl.oa.model.voData.UserProfileVo;
|
import com.jsl.oa.model.voData.UserProfileVo;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
@ -13,10 +15,7 @@ import org.springframework.validation.ObjectError;
|
|||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Comparator;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Random;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <h1>自定义快捷工具类</h1>
|
* <h1>自定义快捷工具类</h1>
|
||||||
@ -183,7 +182,7 @@ public class Processing {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: TODO VO类与实体类属性赋值
|
* @Description: VO类与实体类属性赋值
|
||||||
* @Date: 2024/1/18
|
* @Date: 2024/1/18
|
||||||
* @Param source:
|
* @Param source:
|
||||||
* @Param dest:
|
* @Param dest:
|
||||||
@ -232,7 +231,7 @@ public class Processing {
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Description: TODO 将性别转为字符形式
|
* @Description: 将性别转为字符形式
|
||||||
* @Date: 2024/1/18
|
* @Date: 2024/1/18
|
||||||
**/
|
**/
|
||||||
public static String getSex(short sex){
|
public static String getSex(short sex){
|
||||||
@ -272,4 +271,58 @@ public class Processing {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 将Permission归纳为父子关系的json形式
|
||||||
|
* @Date: 2024/1/20
|
||||||
|
* @Param permissions: 权限实体类
|
||||||
|
**/
|
||||||
|
public static List<PermissionContentVo> convertToVoList(List<PermissionDO> permissions) {
|
||||||
|
List<PermissionContentVo> vos = new ArrayList<>();
|
||||||
|
Map<Long, List<PermissionDO>> childrenMap = new HashMap<>();
|
||||||
|
|
||||||
|
for (PermissionDO permission : permissions) {
|
||||||
|
if (permission.getPid() != null) {
|
||||||
|
List<PermissionDO> children = childrenMap.getOrDefault(permission.getPid(), new ArrayList<>());
|
||||||
|
children.add(permission);
|
||||||
|
childrenMap.put(permission.getPid(), children);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (PermissionDO permission : permissions) {
|
||||||
|
if (permission.getPid() == null) {
|
||||||
|
PermissionContentVo vo = convertToVo(permission, childrenMap);
|
||||||
|
vos.add(vo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return vos;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Description: 封装PermissionContentVo的子类,被convertToVoList方法调用
|
||||||
|
* @Date: 2024/1/20
|
||||||
|
* @Param permission: 权限实体类
|
||||||
|
* @Param childrenMap: 要封装的子类
|
||||||
|
**/
|
||||||
|
public static PermissionContentVo convertToVo(PermissionDO permission, Map<Long, List<PermissionDO>> childrenMap) {
|
||||||
|
PermissionContentVo vo = new PermissionContentVo();
|
||||||
|
copyProperties(permission,vo);
|
||||||
|
|
||||||
|
List<PermissionDO> children = childrenMap.get(permission.getId());
|
||||||
|
if (children != null) {
|
||||||
|
List<PermissionContentVo> childVos = new ArrayList<>();
|
||||||
|
for (PermissionDO child : children) {
|
||||||
|
PermissionContentVo childVo = convertToVo(child, childrenMap);
|
||||||
|
childVos.add(childVo);
|
||||||
|
}
|
||||||
|
vo.setChildren(childVos);
|
||||||
|
}
|
||||||
|
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user