diff --git a/src/main/java/com/dc/dc_project/config/exception/GlobalException.java b/src/main/java/com/dc/dc_project/config/exception/GlobalException.java index 2c9af94..8ecfff3 100644 --- a/src/main/java/com/dc/dc_project/config/exception/GlobalException.java +++ b/src/main/java/com/dc/dc_project/config/exception/GlobalException.java @@ -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); diff --git a/src/main/java/com/dc/dc_project/controller/sys/PermissionController.java b/src/main/java/com/dc/dc_project/controller/sys/PermissionController.java index e9e3f96..0e67555 100644 --- a/src/main/java/com/dc/dc_project/controller/sys/PermissionController.java +++ b/src/main/java/com/dc/dc_project/controller/sys/PermissionController.java @@ -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); + } + + } diff --git a/src/main/java/com/dc/dc_project/mapper/PermissionMapper.java b/src/main/java/com/dc/dc_project/mapper/PermissionMapper.java index ccd464f..a7d0713 100644 --- a/src/main/java/com/dc/dc_project/mapper/PermissionMapper.java +++ b/src/main/java/com/dc/dc_project/mapper/PermissionMapper.java @@ -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 { - List getList(PermissionDto permissionDto); + List getList(@Param("permissionDto") PermissionDto permissionDto); } diff --git a/src/main/java/com/dc/dc_project/model/dto/PermissionDto.java b/src/main/java/com/dc/dc_project/model/dto/PermissionDto.java index f9237a2..0f6b693 100644 --- a/src/main/java/com/dc/dc_project/model/dto/PermissionDto.java +++ b/src/main/java/com/dc/dc_project/model/dto/PermissionDto.java @@ -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{ +public class PermissionDto{ private String name; diff --git a/src/main/java/com/dc/dc_project/model/dto/user/UserReqDto.java b/src/main/java/com/dc/dc_project/model/dto/user/UserReqDto.java index f5fb771..3eb8ca9 100644 --- a/src/main/java/com/dc/dc_project/model/dto/user/UserReqDto.java +++ b/src/main/java/com/dc/dc_project/model/dto/user/UserReqDto.java @@ -19,7 +19,7 @@ public class UserReqDto extends Page { private String email; - private String status; + private Integer status; private Long orgId; diff --git a/src/main/java/com/dc/dc_project/model/vo/PermissionVo.java b/src/main/java/com/dc/dc_project/model/vo/PermissionVo.java index 2d5fac5..a12c19c 100644 --- a/src/main/java/com/dc/dc_project/model/vo/PermissionVo.java +++ b/src/main/java/com/dc/dc_project/model/vo/PermissionVo.java @@ -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 { private Integer isDeleted; private List 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; + } } \ No newline at end of file diff --git a/src/main/java/com/dc/dc_project/service/PermissionService.java b/src/main/java/com/dc/dc_project/service/PermissionService.java index 3d86ac6..437e5d4 100644 --- a/src/main/java/com/dc/dc_project/service/PermissionService.java +++ b/src/main/java/com/dc/dc_project/service/PermissionService.java @@ -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 { * @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); } diff --git a/src/main/java/com/dc/dc_project/service/impl/PermissionServiceImpl.java b/src/main/java/com/dc/dc_project/service/impl/PermissionServiceImpl.java index d62d5d6..f71fba0 100644 --- a/src/main/java/com/dc/dc_project/service/impl/PermissionServiceImpl.java +++ b/src/main/java/com/dc/dc_project/service/impl/PermissionServiceImpl.java @@ -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 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 permissionList = baseMapper.getList(permissionDto); + List permissionVoList = permissionList.stream().map(PermissionVo::toVo).toList(); + List 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() + .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(); + + } } diff --git a/src/main/resources/mapper/PermissionMapper.xml b/src/main/resources/mapper/PermissionMapper.xml index efea127..8f1948c 100644 --- a/src/main/resources/mapper/PermissionMapper.xml +++ b/src/main/resources/mapper/PermissionMapper.xml @@ -24,6 +24,5 @@ and sp.is_deleted = 0 -