mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-10-31 22:57:17 +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