Преглед на файлове

新增角色支持修改信息设置权限接口

hubin преди 9 месеца
родител
ревизия
dc70b5efe3

+ 8 - 0
src/main/java/com/aizuda/boot/modules/system/controller/SysRoleController.java

@@ -7,6 +7,7 @@ package com.aizuda.boot.modules.system.controller;
 
 import com.aizuda.boot.modules.system.entity.SysRole;
 import com.aizuda.boot.modules.system.entity.dto.RoleResourceDTO;
+import com.aizuda.boot.modules.system.entity.dto.SysRoleDTO;
 import com.aizuda.boot.modules.system.service.ISysRoleResourceService;
 import com.aizuda.boot.modules.system.service.ISysRoleService;
 import com.aizuda.core.api.ApiController;
@@ -74,6 +75,13 @@ public class SysRoleController extends ApiController {
         return sysRoleService.updateById(sysRole);
     }
 
+    @Operation(summary = "根据 id 修改信息设置权限")
+    @Permission("sys:role:update")
+    @PostMapping("/update-resource-set")
+    public boolean updateResourceSet(@Validated(Update.class) @RequestBody SysRoleDTO dto) {
+        return sysRoleService.updateResourceSet(dto);
+    }
+
     @Operation(summary = "根据 id 修改状态")
     @Permission("sys:role:status")
     @PostMapping("/status/{id}")

+ 22 - 0
src/main/java/com/aizuda/boot/modules/system/entity/dto/SysRoleDTO.java

@@ -0,0 +1,22 @@
+package com.aizuda.boot.modules.system.entity.dto;
+
+import com.aizuda.boot.modules.system.entity.SysRole;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+/**
+ * 系统角色DTO
+ *
+ * @author 青苗
+ * @since 2024-09-16
+ */
+@Getter
+@Setter
+public class SysRoleDTO extends SysRole {
+
+    @Schema(description = "资源ID列表")
+    private List<Long> resourceIds;
+
+}

+ 6 - 0
src/main/java/com/aizuda/boot/modules/system/service/ISysRoleService.java

@@ -6,6 +6,7 @@
 package com.aizuda.boot.modules.system.service;
 
 import com.aizuda.boot.modules.system.entity.SysRole;
+import com.aizuda.boot.modules.system.entity.dto.SysRoleDTO;
 import com.aizuda.service.service.IBaseService;
 import com.aizuda.service.vo.TreeVO;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -35,6 +36,11 @@ public interface ISysRoleService extends IBaseService<SysRole> {
      */
     List<SysRole> listAll();
 
+    /**
+     * 根据 DTO 修改角色信息
+     */
+    boolean updateResourceSet(SysRoleDTO dto);
+
     /**
      * 修改状态
      */

+ 15 - 0
src/main/java/com/aizuda/boot/modules/system/service/impl/SysRoleServiceImpl.java

@@ -6,6 +6,8 @@
 package com.aizuda.boot.modules.system.service.impl;
 
 import com.aizuda.boot.modules.system.entity.SysRole;
+import com.aizuda.boot.modules.system.entity.dto.RoleResourceDTO;
+import com.aizuda.boot.modules.system.entity.dto.SysRoleDTO;
 import com.aizuda.boot.modules.system.mapper.SysRoleMapper;
 import com.aizuda.boot.modules.system.service.ISysRoleResourceService;
 import com.aizuda.boot.modules.system.service.ISysRoleService;
@@ -51,6 +53,19 @@ public class SysRoleServiceImpl extends BaseServiceImpl<SysRoleMapper, SysRole>
         return super.list();
     }
 
+    @Override
+    public boolean updateResourceSet(SysRoleDTO dto) {
+        ApiAssert.isEmpty(dto.getId(), "主键不存在无法更新");
+        SysRole sysRole = dto.convert(SysRole.class);
+        ApiAssert.fail(!super.updateById(sysRole), "角色信息修改失败");
+
+        // 更新角色资源权限
+        RoleResourceDTO rrd = new RoleResourceDTO();
+        rrd.setRoleId(dto.getId());
+        rrd.setResourceIds(dto.getResourceIds());
+        return sysRoleResourceService.saveByRoleResourceParam(rrd);
+    }
+
     @Override
     public boolean updateById(SysRole sysRole) {
         ApiAssert.isEmpty(sysRole.getId(), "主键不存在无法更新");