mirror of
https://github.com/continew-org/continew-admin.git
synced 2025-09-09 08:57:16 +08:00
fix(tenant): 修复修改租户套餐菜单,租户菜单更新错误的问题
This commit is contained in:
@@ -46,7 +46,8 @@ import java.util.List;
|
|||||||
@Tag(name = "套餐管理 API")
|
@Tag(name = "套餐管理 API")
|
||||||
@RestController
|
@RestController
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@CrudRequestMapping(value = "/tenant/package", api = {Api.LIST, Api.PAGE, Api.GET, Api.CREATE, Api.UPDATE, Api.DELETE, Api.DICT})
|
@CrudRequestMapping(value = "/tenant/package", api = {Api.LIST, Api.PAGE, Api.GET, Api.CREATE, Api.UPDATE, Api.DELETE,
|
||||||
|
Api.DICT})
|
||||||
public class PackageController extends BaseController<PackageService, PackageResp, PackageDetailResp, PackageQuery, PackageReq> {
|
public class PackageController extends BaseController<PackageService, PackageResp, PackageDetailResp, PackageQuery, PackageReq> {
|
||||||
|
|
||||||
private final TenantExtensionProperties tenantExtensionProperties;
|
private final TenantExtensionProperties tenantExtensionProperties;
|
||||||
|
@@ -49,7 +49,6 @@ import top.continew.starter.core.util.validation.CheckUtils;
|
|||||||
import top.continew.starter.extension.tenant.util.TenantUtils;
|
import top.continew.starter.extension.tenant.util.TenantUtils;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@@ -160,24 +159,20 @@ public class TenantServiceImpl extends BaseServiceImpl<TenantMapper, TenantDO, T
|
|||||||
if (CollUtil.isEmpty(tenantIdList)) {
|
if (CollUtil.isEmpty(tenantIdList)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 删除旧菜单
|
// 所有租户角色:删除旧菜单
|
||||||
tenantIdList.forEach(tenantId -> TenantUtils.execute(tenantId, () -> {
|
tenantIdList.forEach(tenantId -> TenantUtils.execute(tenantId, () -> {
|
||||||
|
// 删除旧菜单
|
||||||
|
roleMenuApi.deleteByNotInMenuIds(newMenuIds);
|
||||||
// 更新在线用户上下文
|
// 更新在线用户上下文
|
||||||
Set<Long> roleIdSet = roleMenuApi.listRoleIdByNotInMenuIds(newMenuIds);
|
Set<Long> roleIdSet = roleMenuApi.listRoleIdByNotInMenuIds(newMenuIds);
|
||||||
roleIdSet.forEach(roleApi::updateUserContext);
|
roleIdSet.forEach(roleApi::updateUserContext);
|
||||||
// 删除旧菜单
|
|
||||||
roleMenuApi.deleteByNotInMenuIds(newMenuIds);
|
|
||||||
}));
|
}));
|
||||||
// 租户管理员:新增菜单
|
// 租户管理员:新增菜单
|
||||||
tenantIdList.forEach(tenantId -> TenantUtils.execute(tenantId, () -> {
|
tenantIdList.forEach(tenantId -> TenantUtils.execute(tenantId, () -> {
|
||||||
Long roleId = roleApi.getIdByCode(RoleCodeEnum.TENANT_ADMIN.getCode());
|
Long roleId = roleApi.getIdByCode(RoleCodeEnum.TENANT_ADMIN.getCode());
|
||||||
List<Long> oldMenuIdList = roleMenuApi.listMenuIdByRoleIds(List.of(roleId));
|
roleMenuApi.add(newMenuIds, roleId);
|
||||||
Collection<Long> addMenuIdList = CollUtil.disjunction(newMenuIds, oldMenuIdList);
|
// 更新在线用户上下文
|
||||||
if (CollUtil.isNotEmpty(addMenuIdList)) {
|
roleApi.updateUserContext(roleId);
|
||||||
roleMenuApi.add(addMenuIdList.stream().toList(), roleId);
|
|
||||||
// 更新在线用户上下文
|
|
||||||
roleApi.updateUserContext(roleId);
|
|
||||||
}
|
|
||||||
}));
|
}));
|
||||||
// 删除缓存
|
// 删除缓存
|
||||||
RedisUtils.deleteByPattern(CacheConstants.ROLE_MENU_KEY_PREFIX + StringConstants.ASTERISK);
|
RedisUtils.deleteByPattern(CacheConstants.ROLE_MENU_KEY_PREFIX + StringConstants.ASTERISK);
|
||||||
|
Reference in New Issue
Block a user