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

1、钉钉创建租户时,同时初始化租户相关数据

dongpo преди 1 година
родител
ревизия
43b9cc71f6

+ 45 - 22
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/tenant/TenantServiceImpl.java

@@ -181,35 +181,39 @@ public class TenantServiceImpl implements TenantService {
         //钉钉同步管理员ID
         DingUserTenantRelateDO dingUserTenantRelateDO = dingUserTenantRelateMapper.selectOne(DingUserTenantRelateDO::getTenantId,tenant.getId());
 
-        AtomicLong roleIdHolder = new AtomicLong(0L);
+        // AtomicLong roleIdHolder = new AtomicLong(0L);
         TenantUtils.execute(tenant.getId(), () -> {
-            roleIdHolder.set(createSystemSuperAdminRole(tenant.getId()));
+            // roleIdHolder.set(createSystemSuperAdminRole(tenant.getId()));
             // 分配角色
-            permissionService.assignUserRole(user.getId(), singleton(roleIdHolder.get()));
+            RoleDO roleDO = roleService.selectByName(RoleCodeEnum.SYSTEM_SUPER_ADMIN.getName());
+            if (roleDO == null || roleDO.getId() == null) {
+                throw exception(ROLE_NOT_EXISTS);
+            }
+            permissionService.assignUserRole(user.getId(), singleton(roleDO.getId()));
             if(null!=dingUserTenantRelateDO && dingUserTenantRelateDO.getUserId().equals(user.getUsername())){
                 // 修改租户的管理员
                 tenantMapper.updateById(new TenantDO().setId(tenant.getId()).setContactUserId(user.getId()));
             }
         });
-        Long roleId = roleIdHolder.get(); // 在 lambda 表达式外部获取值
-        // 使用异步处理来创建其他内置角色和分配权限
-        CompletableFuture.runAsync(() -> {
-            try {
-                TenantUtils.execute(tenant.getId(), () -> {
-                    // 复制部署流程(目前共12个)
-                    bpmModelApi.copyAndDeploy(null, null);
-                    // 添加租户字典默认类型和数据
-                    dictTypeTenantService.initDictTypeAndDataForTenant(null);
-                    this.createSystemAdminRole(tenant.getId());
-                    this.createCommonEmployeeRole(tenant.getId());
-                    this.createDepartmentLeaderRole(tenant.getId());
-                });
-            } catch (Exception e) {
-                // 处理异步任务中的异常
-                log.error("Error creating system roles and permissions for tenant", e);
-                throw exception(ROLES_PERMISSIONS_CREATE_ERROR, e.getMessage());
-            }
-        });
+        // Long roleId = roleIdHolder.get(); // 在 lambda 表达式外部获取值
+        // // 使用异步处理来创建其他内置角色和分配权限
+        // CompletableFuture.runAsync(() -> {
+        //     try {
+        //         TenantUtils.execute(tenant.getId(), () -> {
+        //             // 复制部署流程(目前共12个)
+        //             bpmModelApi.copyAndDeploy(null, null);
+        //             // 添加租户字典默认类型和数据
+        //             dictTypeTenantService.initDictTypeAndDataForTenant(null);
+        //             this.createSystemAdminRole(tenant.getId());
+        //             this.createCommonEmployeeRole(tenant.getId());
+        //             this.createDepartmentLeaderRole(tenant.getId());
+        //         });
+        //     } catch (Exception e) {
+        //         // 处理异步任务中的异常
+        //         log.error("Error creating system roles and permissions for tenant", e);
+        //         throw exception(ROLES_PERMISSIONS_CREATE_ERROR, e.getMessage());
+        //     }
+        // });
     }
 
     @Override
@@ -779,6 +783,25 @@ public class TenantServiceImpl implements TenantService {
         tenantMapper.insert(tenant);
         // 创建管理员与租户关系
         dingUserTenantRelateMapper.insert(new DingUserTenantRelateDO().setUserId(createReqVO.getManageUserId()).setTenantId(tenant.getId()));
+        // 使用异步处理来创建其他内置角色和分配权限
+        CompletableFuture.runAsync(() -> {
+            try {
+                TenantUtils.execute(tenant.getId(), () -> {
+                    // 复制部署流程(目前共12个)
+                    bpmModelApi.copyAndDeploy(null, null);
+                    // 添加租户字典默认类型和数据
+                    dictTypeTenantService.initDictTypeAndDataForTenant(null);
+                    this.createSystemSuperAdminRole(tenant.getId());
+                    this.createSystemAdminRole(tenant.getId());
+                    this.createCommonEmployeeRole(tenant.getId());
+                    this.createDepartmentLeaderRole(tenant.getId());
+                });
+            } catch (Exception e) {
+                // 处理异步任务中的异常
+                log.error("Error creating system roles and permissions for tenant", e);
+                throw exception(ROLES_PERMISSIONS_CREATE_ERROR, e.getMessage());
+            }
+        });
     }
 
     @Override