diff --git a/src/main/java/xyz/playedu/api/controller/backend/AdminRoleController.java b/src/main/java/xyz/playedu/api/controller/backend/AdminRoleController.java index 5ad671b..0acaf37 100644 --- a/src/main/java/xyz/playedu/api/controller/backend/AdminRoleController.java +++ b/src/main/java/xyz/playedu/api/controller/backend/AdminRoleController.java @@ -1,5 +1,6 @@ package xyz.playedu.api.controller.backend; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -14,8 +15,10 @@ import xyz.playedu.api.service.AdminPermissionService; import xyz.playedu.api.service.AdminRoleService; import xyz.playedu.api.types.JsonResponse; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -24,6 +27,7 @@ import java.util.stream.Collectors; */ @RestController @RequestMapping("/backend/v1/admin-role") +@Slf4j public class AdminRoleController { @Autowired @@ -61,11 +65,26 @@ public class AdminRoleController { @GetMapping("/{id}") public JsonResponse edit(@PathVariable(name = "id") Integer id) throws NotFoundException { AdminRole role = roleService.findOrFail(id); + + // 关联的权限 List permissionIds = roleService.getPermissionIdsByRoleId(role.getId()); + List permAction = new ArrayList<>(); + List permData = new ArrayList<>(); + if (permissionIds != null && permissionIds.size() > 0) { + List permissions = permissionService.chunks(permissionIds); + Map> permissionsGroup = permissions.stream().collect(Collectors.groupingBy(AdminPermission::getType)); + if (permissionsGroup.get("action") != null) { + permAction = permissionsGroup.get("action").stream().map(AdminPermission::getId).toList(); + } + if (permissionsGroup.get("data") != null) { + permData = permissionsGroup.get("data").stream().map(AdminPermission::getId).toList(); + } + } HashMap data = new HashMap<>(); data.put("role", role); - data.put("permission_ids", permissionIds); + data.put("perm_action", permAction); + data.put("perm_data", permData); return JsonResponse.data(data); } diff --git a/src/main/java/xyz/playedu/api/service/AdminPermissionService.java b/src/main/java/xyz/playedu/api/service/AdminPermissionService.java index 3722b65..c326fa5 100644 --- a/src/main/java/xyz/playedu/api/service/AdminPermissionService.java +++ b/src/main/java/xyz/playedu/api/service/AdminPermissionService.java @@ -21,4 +21,6 @@ public interface AdminPermissionService extends IService { List allIds(); + List chunks(List ids); + } diff --git a/src/main/java/xyz/playedu/api/service/impl/AdminPermissionServiceImpl.java b/src/main/java/xyz/playedu/api/service/impl/AdminPermissionServiceImpl.java index 63a005a..1562a60 100644 --- a/src/main/java/xyz/playedu/api/service/impl/AdminPermissionServiceImpl.java +++ b/src/main/java/xyz/playedu/api/service/impl/AdminPermissionServiceImpl.java @@ -52,6 +52,11 @@ public class AdminPermissionServiceImpl extends ServiceImpl chunks(List ids) { + return list(query().getWrapper().in("id", ids)); + } }