diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/RoleController.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/RoleController.java index 30b6203c..4bc2fe70 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/RoleController.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/controller/RoleController.java @@ -12,15 +12,17 @@ import com.cloud.kicc.common.core.api.R; import com.cloud.kicc.common.core.constant.AppConstants; import com.cloud.kicc.common.core.util.PinyinUtil; import com.cloud.kicc.common.log.annotation.SysLog; -import com.cloud.kicc.system.api.entity.Role; -import com.cloud.kicc.system.api.entity.RoleMenu; +import com.cloud.kicc.system.api.entity.*; import com.cloud.kicc.system.service.RoleMenuService; import com.cloud.kicc.system.service.RoleService; +import com.cloud.kicc.system.service.RoleTenantService; import lombok.AllArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; /** *

@@ -37,6 +39,7 @@ public class RoleController { private final RoleService roleService; private final RoleMenuService roleMenuService; + private final RoleTenantService tenantService; private LambdaQueryWrapper getQueryWrapper(Role role) { return new LambdaQueryWrapper() @@ -53,7 +56,15 @@ public class RoleController { @GetMapping("/{id:\\w+}") public R getById(@PathVariable("id") String id) { - return R.ok(roleService.getById(id)); + Role role = roleService.getById(id); + List tenantIds; + // 设置角色多租户信息 + if (role != null) { + tenantIds = tenantService.list(new LambdaQueryWrapper().eq(RoleTenant::getRoleId, role.getId())) + .stream().map(roleTenant -> roleTenant.getMultiTenantId()).collect(Collectors.toList()); + role.setTenantIds(ArrayUtil.toArray(tenantIds, String.class)); + } + return R.ok(role); } @SysLog("角色新增") diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/RoleServiceImpl.java b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/RoleServiceImpl.java index a962223b..114854f2 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/RoleServiceImpl.java +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/java/com/cloud/kicc/system/service/impl/RoleServiceImpl.java @@ -29,7 +29,7 @@ import java.util.List; public class RoleServiceImpl extends ServiceImpl implements RoleService { private final RoleMenuService roleMenuService; - private final RoleTenantService RoleTenantService; + private final RoleTenantService roleTenantService; @Override @Transactional(rollbackFor = Exception.class) @@ -46,6 +46,9 @@ public class RoleServiceImpl extends ServiceImpl implements Ro baseMapper.updateById(role); // 删除角色与菜单关联 roleMenuService.remove(new LambdaQueryWrapper().eq(RoleMenu::getRoleId, role.getId())); + // 删除角色与多租户关联 + roleTenantService.remove(new LambdaQueryWrapper().eq(RoleTenant::getRoleId, role.getId())); + insertRoleTenant(role); return insertRoleMenu(role); } @@ -76,7 +79,7 @@ public class RoleServiceImpl extends ServiceImpl implements Ro list.add(rt); } if (list.size() > 0) { - rows = RoleTenantService.saveBatch(list); + rows = roleTenantService.saveBatch(list); } return rows; } diff --git a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/MenuMapper.xml b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/MenuMapper.xml index 3c8eee2a..f410d0f6 100644 --- a/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/MenuMapper.xml +++ b/kicc-platform/kicc-platform-biz/kicc-system-biz/src/main/resources/mapper/MenuMapper.xml @@ -39,15 +39,15 @@