ソースを参照

角色流程权限相关接口

chenjun 1 年間 前
コミット
33946ea562

+ 9 - 0
zjugis-module-system/zjugis-module-system-biz/src/main/java/com/zjugis/module/system/controller/admin/permission/PermissionController.java

@@ -3,6 +3,7 @@ package com.zjugis.module.system.controller.admin.permission;
 import cn.hutool.core.collection.CollUtil;
 import com.zjugis.framework.common.pojo.CommonResult;
 import com.zjugis.module.system.controller.admin.permission.vo.permission.PermissionAssignRoleDataScopeReqVO;
+import com.zjugis.module.system.controller.admin.permission.vo.permission.PermissionAssignRoleFlowReqVO;
 import com.zjugis.module.system.controller.admin.permission.vo.permission.PermissionAssignRoleMenuReqVO;
 import com.zjugis.module.system.controller.admin.permission.vo.permission.PermissionAssignUserRoleReqVO;
 import com.zjugis.module.system.service.permission.PermissionService;
@@ -57,6 +58,14 @@ public class PermissionController {
         return success(true);
     }
 
+    @PostMapping("/assign-role-flow")
+    @Operation(summary = "赋予角色流程权限")
+    @PreAuthorize("@ss.hasPermission('system:permission:assign-role-flow')")
+    public CommonResult<Boolean> assignRoleFlow(@Valid @RequestBody PermissionAssignRoleFlowReqVO reqVO) {
+        permissionService.assignRoleFlow(reqVO.getRoleId(), reqVO.getFlowIds());
+        return success(true);
+    }
+
     @Operation(summary = "获得管理员拥有的角色编号列表")
     @Parameter(name = "userId", description = "用户编号", required = true)
     @GetMapping("/list-user-roles")

+ 26 - 0
zjugis-module-system/zjugis-module-system-biz/src/main/java/com/zjugis/module/system/controller/admin/permission/vo/permission/PermissionAssignRoleFlowReqVO.java

@@ -0,0 +1,26 @@
+package com.zjugis.module.system.controller.admin.permission.vo.permission;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.util.Collections;
+import java.util.Set;
+
+/**
+ * @Author 陈俊
+ * @Date 2024/5/24 16:37
+ * @Version 1.0
+ */
+@Schema(description = "管理后台 - 赋予角色流程权限 Request VO")
+@Data
+public class PermissionAssignRoleFlowReqVO {
+
+    @Schema(description = "角色编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    @NotNull(message = "角色编号不能为空")
+    private Long roleId;
+
+    @Schema(description = "流程数组", requiredMode = Schema.RequiredMode.REQUIRED, example = "1,3,5")
+    private Set<String> flowIds = Collections.emptySet(); // 兜底
+
+}

+ 6 - 0
zjugis-module-system/zjugis-module-system-biz/src/main/java/com/zjugis/module/system/service/permission/PermissionService.java

@@ -153,4 +153,10 @@ public interface PermissionService {
      */
     FlowPermissionRespDTO getFlowPermission(String userId);
 
+    /**
+     * 设置角色的流程权限
+     * @param roleId 角色编号
+     * @param flowIds 流程编号数组
+     */
+    void assignRoleFlow(Long roleId, Set<String> flowIds);
 }

+ 5 - 0
zjugis-module-system/zjugis-module-system-biz/src/main/java/com/zjugis/module/system/service/permission/PermissionServiceImpl.java

@@ -346,6 +346,11 @@ public class PermissionServiceImpl implements PermissionService {
         return result;
     }
 
+    @Override
+    public void assignRoleFlow(Long roleId, Set<String> flowIds) {
+        roleService.assignRoleFlow(roleId, flowIds);
+    }
+
     /**
      * 获得自身的代理对象,解决 AOP 生效问题
      *

+ 7 - 0
zjugis-module-system/zjugis-module-system-biz/src/main/java/com/zjugis/module/system/service/permission/RoleService.java

@@ -140,4 +140,11 @@ public interface RoleService {
     void validateRoleList(Collection<Long> ids);
 
     List<RoleDO> getRoleListByUserId(String userId);
+
+    /**
+     * 设置角色流程权限
+     * @param roleId
+     * @param flowIds
+     */
+    void assignRoleFlow(Long roleId, Set<String> flowIds);
 }

+ 12 - 0
zjugis-module-system/zjugis-module-system-biz/src/main/java/com/zjugis/module/system/service/permission/RoleServiceImpl.java

@@ -262,6 +262,18 @@ public class RoleServiceImpl implements RoleService {
         return roleMapper.selectBatchIds(roleIds);
     }
 
+    @Override
+    public void assignRoleFlow(Long id, Set<String> flowIds) {
+        // 校验是否可以更新
+        validateRoleForUpdate(id);
+
+        // 更新流程
+        RoleDO updateObject = new RoleDO();
+        updateObject.setId(id);
+        updateObject.setFlowIds(flowIds);
+        roleMapper.updateById(updateObject);
+    }
+
     /**
      * 获得自身的代理对象,解决 AOP 生效问题
      *