From 0696e47724265dbe331fc53c08011172afeeeee1 Mon Sep 17 00:00:00 2001
From: fengshuonan <sn93@qq.com>
Date: Tue, 18 Jul 2023 23:27:31 +0800
Subject: [PATCH] =?UTF-8?q?=E3=80=908.0=E3=80=91=E3=80=90sys=E3=80=91?=
 =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=BD=93=E5=89=8D=E7=94=A8=E6=88=B7=E7=9A=84?=
 =?UTF-8?q?=E6=95=B0=E6=8D=AE=E8=8C=83=E5=9B=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../role/service/PermissionAssignService.java |  3 +-
 .../impl/PermissionAssignServiceImpl.java     | 28 +++++++++++++++++++
 2 files changed, 30 insertions(+), 1 deletion(-)

diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/PermissionAssignService.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/PermissionAssignService.java
index 8384ac666..62047ccf9 100644
--- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/PermissionAssignService.java
+++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/PermissionAssignService.java
@@ -1,5 +1,6 @@
 package cn.stylefeng.roses.kernel.sys.modular.role.service;
 
+import cn.stylefeng.roses.kernel.sys.api.UserDataScopeApi;
 import cn.stylefeng.roses.kernel.sys.modular.role.pojo.request.RoleBindPermissionRequest;
 import cn.stylefeng.roses.kernel.sys.modular.role.pojo.response.RoleBindPermissionResponse;
 
@@ -11,7 +12,7 @@ import java.util.Set;
  * @author fengshuonan
  * @since 2023/6/13 16:13
  */
-public interface PermissionAssignService {
+public interface PermissionAssignService extends UserDataScopeApi {
 
     /**
      * 获取角色绑定的权限列表
diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/PermissionAssignServiceImpl.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/PermissionAssignServiceImpl.java
index e400d5355..f2c5c6edd 100644
--- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/PermissionAssignServiceImpl.java
+++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/PermissionAssignServiceImpl.java
@@ -1,7 +1,10 @@
 package cn.stylefeng.roses.kernel.sys.modular.role.service.impl;
 
 import cn.hutool.extra.spring.SpringUtil;
+import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
 import cn.stylefeng.roses.kernel.event.sdk.publish.BusinessEventPublisher;
+import cn.stylefeng.roses.kernel.sys.api.SysUserRoleServiceApi;
+import cn.stylefeng.roses.kernel.sys.api.enums.permission.DataScopeTypeEnum;
 import cn.stylefeng.roses.kernel.sys.modular.app.entity.SysApp;
 import cn.stylefeng.roses.kernel.sys.modular.app.service.SysAppService;
 import cn.stylefeng.roses.kernel.sys.modular.menu.entity.SysMenu;
@@ -19,6 +22,7 @@ import cn.stylefeng.roses.kernel.sys.modular.role.pojo.response.RoleBindPermissi
 import cn.stylefeng.roses.kernel.sys.modular.role.service.PermissionAssignService;
 import cn.stylefeng.roses.kernel.sys.modular.role.service.SysRoleMenuOptionsService;
 import cn.stylefeng.roses.kernel.sys.modular.role.service.SysRoleMenuService;
+import cn.stylefeng.roses.kernel.sys.modular.role.service.SysRoleService;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.springframework.stereotype.Service;
 
@@ -53,6 +57,12 @@ public class PermissionAssignServiceImpl implements PermissionAssignService {
     @Resource
     private SysRoleMenuService sysRoleMenuService;
 
+    @Resource
+    private SysUserRoleServiceApi sysUserRoleServiceApi;
+
+    @Resource
+    private SysRoleService sysRoleService;
+
     @Override
     public RoleBindPermissionResponse getRoleBindPermission(RoleBindPermissionRequest roleBindPermissionRequest) {
 
@@ -140,4 +150,22 @@ public class PermissionAssignServiceImpl implements PermissionAssignService {
         return resultPermissions;
     }
 
+    @Override
+    public DataScopeTypeEnum currentUserDataScopeType() {
+
+        // 获取当前用户id
+        Long userId = LoginContext.me().getLoginUser().getUserId();
+
+        // 获取用户的角色列表
+        List<Long> userHaveRoleIds = sysUserRoleServiceApi.getUserRoleIdList(userId);
+
+        // 获取这些角色对应的数据范围
+        return sysRoleService.getRoleDataScope(userHaveRoleIds);
+    }
+
+    @Override
+    public Set<Long> currentUserOrgScopeList() {
+        return null;
+    }
+
 }