权限完善
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ public class UserReqDto extends Page<UserReqDto> {
|
||||
|
||||
private String email;
|
||||
|
||||
private String status;
|
||||
private Integer status;
|
||||
|
||||
private Long orgId;
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -24,6 +24,5 @@
|
||||
</if>
|
||||
and sp.is_deleted = 0
|
||||
</where>
|
||||
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user