权限完善

This commit is contained in:
lhx
2025-11-22 18:00:45 +08:00
parent 5ed755e5f6
commit d8cfcba5be
9 changed files with 134 additions and 7 deletions

View File

@@ -17,7 +17,7 @@ import static com.dc.dc_project.common.ResultCode.*;
* @date 2022/3/11
* @apiNote
*/
@ControllerAdvice(basePackages = "com.dc.dc_project.controller")
@ControllerAdvice(basePackages = "com.dc.dc_project")
public class GlobalException {
private static final Logger logger = LoggerFactory.getLogger(GlobalException.class);

View File

@@ -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.PermissionDto;
import com.dc.dc_project.model.pojo.Permission;
import com.dc.dc_project.model.pojo.RolePermission;
import com.dc.dc_project.service.PermissionService;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
@@ -34,4 +35,24 @@ public class PermissionController {
Long userId = StpUtil.getLoginIdAsLong();
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);
}
}

View File

@@ -3,6 +3,7 @@ package com.dc.dc_project.mapper;
import com.dc.dc_project.model.dto.PermissionDto;
import com.dc.dc_project.model.pojo.Permission;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -14,7 +15,7 @@ import java.util.List;
*/
public interface PermissionMapper extends BaseMapper<Permission> {
List<Permission> getList(PermissionDto permissionDto);
List<Permission> getList(@Param("permissionDto") PermissionDto permissionDto);
}

View File

@@ -4,9 +4,8 @@ package com.dc.dc_project.model.dto;
import lombok.Data;
import lombok.EqualsAndHashCode;
@EqualsAndHashCode(callSuper = true)
@Data
public class PermissionDto extends BasePage<PermissionDto>{
public class PermissionDto{
private String name;

View File

@@ -19,7 +19,7 @@ public class UserReqDto extends Page<UserReqDto> {
private String email;
private String status;
private Integer status;
private Long orgId;

View File

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.dc.dc_project.model.TreeNode;
import com.dc.dc_project.model.pojo.Permission;
import lombok.Data;
import java.time.LocalDateTime;
@@ -88,4 +89,23 @@ public class PermissionVo implements TreeNode<PermissionVo> {
private Integer isDeleted;
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;
}
}

View File

@@ -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.pojo.Permission;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dc.dc_project.model.pojo.RolePermission;
/**
* @author ADMIN
@@ -28,4 +29,28 @@ public interface PermissionService extends IService<Permission> {
* @return
*/
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);
}

View File

@@ -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.service.impl.ServiceImpl;
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.model.dto.PermissionAddDto;
import com.dc.dc_project.model.dto.PermissionDto;
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.service.PermissionService;
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 lombok.extern.slf4j.Slf4j;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author ADMIN
@@ -24,9 +31,14 @@ import java.util.List;
*/
@Service
@Slf4j
@RequiredArgsConstructor(onConstructor_ = @Autowired)
public class PermissionServiceImpl extends ServiceImpl<PermissionMapper, Permission>
implements PermissionService{
private final PermissionMapper permissionMapper;
private final RolePermissionService rolePermissionService;
@Override
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<PermissionVo> permissionVoList = permissionList.stream().map(PermissionVo::toVo).toList();
List<PermissionVo> root = TreeUtil.buildTree(permissionVoList, 1L);
//return ResponseResult.success(page);
return null;
return ResponseResult.success(root);
}
@Override
@@ -59,6 +73,54 @@ public class PermissionServiceImpl extends ServiceImpl<PermissionMapper, Permiss
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();
}
}

View File

@@ -24,6 +24,5 @@
</if>
and sp.is_deleted = 0
</where>
</select>
</mapper>