权限完善
This commit is contained in:
@@ -17,7 +17,7 @@ import static com.dc.dc_project.common.ResultCode.*;
|
|||||||
* @date 2022/3/11
|
* @date 2022/3/11
|
||||||
* @apiNote
|
* @apiNote
|
||||||
*/
|
*/
|
||||||
@ControllerAdvice(basePackages = "com.dc.dc_project.controller")
|
@ControllerAdvice(basePackages = "com.dc.dc_project")
|
||||||
public class GlobalException {
|
public class GlobalException {
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(GlobalException.class);
|
private static final Logger logger = LoggerFactory.getLogger(GlobalException.class);
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import com.dc.dc_project.common.ResponseResult;
|
|||||||
import com.dc.dc_project.model.dto.PermissionAddDto;
|
import com.dc.dc_project.model.dto.PermissionAddDto;
|
||||||
import com.dc.dc_project.model.dto.PermissionDto;
|
import com.dc.dc_project.model.dto.PermissionDto;
|
||||||
import com.dc.dc_project.model.pojo.Permission;
|
import com.dc.dc_project.model.pojo.Permission;
|
||||||
|
import com.dc.dc_project.model.pojo.RolePermission;
|
||||||
import com.dc.dc_project.service.PermissionService;
|
import com.dc.dc_project.service.PermissionService;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@@ -34,4 +35,24 @@ public class PermissionController {
|
|||||||
Long userId = StpUtil.getLoginIdAsLong();
|
Long userId = StpUtil.getLoginIdAsLong();
|
||||||
return permissionService.add(permissionDto, userId);
|
return permissionService.add(permissionDto, userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/update_role")
|
||||||
|
public ResponseResult update_role(@RequestBody RolePermission rolePermission) {
|
||||||
|
Long userId = StpUtil.getLoginIdAsLong();
|
||||||
|
return permissionService.updateRole(rolePermission, userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/add_rp")
|
||||||
|
public ResponseResult addRP(@RequestBody RolePermission rolePermission) {
|
||||||
|
Long userId = StpUtil.getLoginIdAsLong();
|
||||||
|
return permissionService.addRP(rolePermission, userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/delete_rp")
|
||||||
|
public ResponseResult deleteRP(@RequestBody RolePermission rolePermission) {
|
||||||
|
Long userId = StpUtil.getLoginIdAsLong();
|
||||||
|
return permissionService.deleteRP(rolePermission, userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.dc.dc_project.mapper;
|
|||||||
import com.dc.dc_project.model.dto.PermissionDto;
|
import com.dc.dc_project.model.dto.PermissionDto;
|
||||||
import com.dc.dc_project.model.pojo.Permission;
|
import com.dc.dc_project.model.pojo.Permission;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -14,7 +15,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public interface PermissionMapper extends BaseMapper<Permission> {
|
public interface PermissionMapper extends BaseMapper<Permission> {
|
||||||
|
|
||||||
List<Permission> getList(PermissionDto permissionDto);
|
List<Permission> getList(@Param("permissionDto") PermissionDto permissionDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -4,9 +4,8 @@ package com.dc.dc_project.model.dto;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
|
||||||
@Data
|
@Data
|
||||||
public class PermissionDto extends BasePage<PermissionDto>{
|
public class PermissionDto{
|
||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ public class UserReqDto extends Page<UserReqDto> {
|
|||||||
|
|
||||||
private String email;
|
private String email;
|
||||||
|
|
||||||
private String status;
|
private Integer status;
|
||||||
|
|
||||||
private Long orgId;
|
private Long orgId;
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.dc.dc_project.model.TreeNode;
|
import com.dc.dc_project.model.TreeNode;
|
||||||
|
import com.dc.dc_project.model.pojo.Permission;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@@ -88,4 +89,23 @@ public class PermissionVo implements TreeNode<PermissionVo> {
|
|||||||
private Integer isDeleted;
|
private Integer isDeleted;
|
||||||
|
|
||||||
private List<PermissionVo> children;
|
private List<PermissionVo> children;
|
||||||
|
|
||||||
|
public static PermissionVo toVo(Permission permission){
|
||||||
|
PermissionVo permissionVo = new PermissionVo();
|
||||||
|
permissionVo.setId(permission.getId());
|
||||||
|
permissionVo.setParentId(permission.getParentId());
|
||||||
|
permissionVo.setName(permission.getName());
|
||||||
|
permissionVo.setCode(permission.getCode());
|
||||||
|
permissionVo.setType(permission.getType());
|
||||||
|
permissionVo.setPath(permission.getPath());
|
||||||
|
permissionVo.setMethod(permission.getMethod());
|
||||||
|
permissionVo.setIcon(permission.getIcon());
|
||||||
|
permissionVo.setSortOrder(permission.getSortOrder());
|
||||||
|
permissionVo.setStatus(permission.getStatus());
|
||||||
|
permissionVo.setRemark(permission.getRemark());
|
||||||
|
permissionVo.setCreatedAt(permission.getCreatedAt());
|
||||||
|
permissionVo.setUpdatedAt(permission.getUpdatedAt());
|
||||||
|
permissionVo.setIsDeleted(permission.getIsDeleted());
|
||||||
|
return permissionVo;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -5,6 +5,7 @@ import com.dc.dc_project.model.dto.PermissionAddDto;
|
|||||||
import com.dc.dc_project.model.dto.PermissionDto;
|
import com.dc.dc_project.model.dto.PermissionDto;
|
||||||
import com.dc.dc_project.model.pojo.Permission;
|
import com.dc.dc_project.model.pojo.Permission;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.dc.dc_project.model.pojo.RolePermission;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author ADMIN
|
* @author ADMIN
|
||||||
@@ -28,4 +29,28 @@ public interface PermissionService extends IService<Permission> {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
ResponseResult add(PermissionAddDto permissionDto, Long userId);
|
ResponseResult add(PermissionAddDto permissionDto, Long userId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新角色权限数据范围
|
||||||
|
* @param rolePermission
|
||||||
|
* @param userId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
ResponseResult updateRole(RolePermission rolePermission, Long userId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 添加角色权限关系
|
||||||
|
* @param rolePermission
|
||||||
|
* @param userId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
ResponseResult addRP(RolePermission rolePermission, Long userId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除角色权限关系
|
||||||
|
* @param rolePermission
|
||||||
|
* @param userId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
ResponseResult deleteRP(RolePermission rolePermission, Long userId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,17 +5,24 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.dc.dc_project.common.ResponseResult;
|
import com.dc.dc_project.common.ResponseResult;
|
||||||
|
import com.dc.dc_project.enums.DataScopeType;
|
||||||
import com.dc.dc_project.enums.IsDeleted;
|
import com.dc.dc_project.enums.IsDeleted;
|
||||||
import com.dc.dc_project.model.dto.PermissionAddDto;
|
import com.dc.dc_project.model.dto.PermissionAddDto;
|
||||||
import com.dc.dc_project.model.dto.PermissionDto;
|
import com.dc.dc_project.model.dto.PermissionDto;
|
||||||
import com.dc.dc_project.model.pojo.Permission;
|
import com.dc.dc_project.model.pojo.Permission;
|
||||||
|
import com.dc.dc_project.model.pojo.RolePermission;
|
||||||
import com.dc.dc_project.model.vo.PermissionVo;
|
import com.dc.dc_project.model.vo.PermissionVo;
|
||||||
import com.dc.dc_project.service.PermissionService;
|
import com.dc.dc_project.service.PermissionService;
|
||||||
import com.dc.dc_project.mapper.PermissionMapper;
|
import com.dc.dc_project.mapper.PermissionMapper;
|
||||||
|
import com.dc.dc_project.service.RolePermissionService;
|
||||||
|
import com.dc.dc_project.utils.TreeUtil;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author ADMIN
|
* @author ADMIN
|
||||||
@@ -24,9 +31,14 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@Slf4j
|
@Slf4j
|
||||||
|
@RequiredArgsConstructor(onConstructor_ = @Autowired)
|
||||||
public class PermissionServiceImpl extends ServiceImpl<PermissionMapper, Permission>
|
public class PermissionServiceImpl extends ServiceImpl<PermissionMapper, Permission>
|
||||||
implements PermissionService{
|
implements PermissionService{
|
||||||
|
|
||||||
|
private final PermissionMapper permissionMapper;
|
||||||
|
private final RolePermissionService rolePermissionService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResponseResult getList(PermissionDto permissionDto, Long userId) {
|
public ResponseResult getList(PermissionDto permissionDto, Long userId) {
|
||||||
|
|
||||||
@@ -42,11 +54,13 @@ public class PermissionServiceImpl extends ServiceImpl<PermissionMapper, Permiss
|
|||||||
|
|
||||||
List<Permission> permissionList = baseMapper.getList(permissionDto);
|
List<Permission> permissionList = baseMapper.getList(permissionDto);
|
||||||
|
|
||||||
|
List<PermissionVo> permissionVoList = permissionList.stream().map(PermissionVo::toVo).toList();
|
||||||
|
|
||||||
|
List<PermissionVo> root = TreeUtil.buildTree(permissionVoList, 1L);
|
||||||
|
|
||||||
|
|
||||||
//return ResponseResult.success(page);
|
//return ResponseResult.success(page);
|
||||||
return null;
|
return ResponseResult.success(root);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -59,6 +73,54 @@ public class PermissionServiceImpl extends ServiceImpl<PermissionMapper, Permiss
|
|||||||
return this.save(permission) ? ResponseResult.success() : ResponseResult.error();
|
return this.save(permission) ? ResponseResult.success() : ResponseResult.error();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResponseResult updateRole(RolePermission rolePermission, Long userId) {
|
||||||
|
if (rolePermission.getId() == null || rolePermission.getDataScopeType() == null) {
|
||||||
|
return ResponseResult.error("参数错误");
|
||||||
|
}
|
||||||
|
if (DataScopeType.getByCode(rolePermission.getDataScopeType()) == null){
|
||||||
|
return ResponseResult.error("数据权限类型错误");
|
||||||
|
}
|
||||||
|
RolePermission rolePermission1 = rolePermissionService.getById(rolePermission.getId());
|
||||||
|
if (rolePermission1 == null) {
|
||||||
|
return ResponseResult.error("权限不存在");
|
||||||
|
}
|
||||||
|
rolePermission1.setDataScopeType(rolePermission.getDataScopeType());
|
||||||
|
return rolePermissionService.updateById(rolePermission1) ? ResponseResult.success() : ResponseResult.error();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResponseResult addRP(RolePermission rolePermission, Long userId) {
|
||||||
|
if(rolePermission.getDataScopeType() != null && DataScopeType.getByCode(rolePermission.getDataScopeType()) == null){
|
||||||
|
return ResponseResult.error("数据权限类型错误");
|
||||||
|
}
|
||||||
|
if (rolePermission.getRoleId() == null || rolePermission.getPermissionId() == null) {
|
||||||
|
return ResponseResult.error("参数错误");
|
||||||
|
}
|
||||||
|
// 数据检查
|
||||||
|
if(rolePermissionService.exists(
|
||||||
|
new LambdaQueryWrapper<RolePermission>()
|
||||||
|
.eq(RolePermission::getRoleId, rolePermission.getRoleId())
|
||||||
|
.eq(RolePermission::getPermissionId, rolePermission.getPermissionId()))
|
||||||
|
){
|
||||||
|
return ResponseResult.error("权限已存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
rolePermission.setCreatedBy(StpUtil.getLoginIdAsString());
|
||||||
|
|
||||||
|
return rolePermissionService.save(rolePermission) ? ResponseResult.success() : ResponseResult.error();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResponseResult deleteRP(RolePermission rolePermission, Long userId) {
|
||||||
|
if (rolePermission.getId() == null) {
|
||||||
|
return ResponseResult.error("参数错误");
|
||||||
|
}
|
||||||
|
|
||||||
|
return rolePermissionService.removeById(rolePermission.getId()) ? ResponseResult.success() : ResponseResult.error();
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,5 @@
|
|||||||
</if>
|
</if>
|
||||||
and sp.is_deleted = 0
|
and sp.is_deleted = 0
|
||||||
</where>
|
</where>
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Reference in New Issue
Block a user