Skip to content

Commit f350ee1

Browse files
committed
fix(tenant): 修复修改租户套餐菜单,租户菜单更新错误的问题
1 parent 54ba099 commit f350ee1

2 files changed

Lines changed: 8 additions & 12 deletions

File tree

continew-plugin/continew-plugin-tenant/src/main/java/top/continew/admin/tenant/controller/PackageController.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@
4646
@Tag(name = "套餐管理 API")
4747
@RestController
4848
@RequiredArgsConstructor
49-
@CrudRequestMapping(value = "/tenant/package", api = {Api.LIST, Api.PAGE, Api.GET, Api.CREATE, Api.UPDATE, Api.DELETE, Api.DICT})
49+
@CrudRequestMapping(value = "/tenant/package", api = {Api.LIST, Api.PAGE, Api.GET, Api.CREATE, Api.UPDATE, Api.DELETE,
50+
Api.DICT})
5051
public class PackageController extends BaseController<PackageService, PackageResp, PackageDetailResp, PackageQuery, PackageReq> {
5152

5253
private final TenantExtensionProperties tenantExtensionProperties;

continew-plugin/continew-plugin-tenant/src/main/java/top/continew/admin/tenant/service/impl/TenantServiceImpl.java

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@
4949
import top.continew.starter.extension.tenant.util.TenantUtils;
5050

5151
import java.time.LocalDateTime;
52-
import java.util.Collection;
5352
import java.util.List;
5453
import java.util.Map;
5554
import java.util.Set;
@@ -160,24 +159,20 @@ public void updateTenantMenu(List<Long> newMenuIds, Long packageId) {
160159
if (CollUtil.isEmpty(tenantIdList)) {
161160
return;
162161
}
163-
// 删除旧菜单
162+
// 所有租户角色:删除旧菜单
164163
tenantIdList.forEach(tenantId -> TenantUtils.execute(tenantId, () -> {
164+
// 删除旧菜单
165+
roleMenuApi.deleteByNotInMenuIds(newMenuIds);
165166
// 更新在线用户上下文
166167
Set<Long> roleIdSet = roleMenuApi.listRoleIdByNotInMenuIds(newMenuIds);
167168
roleIdSet.forEach(roleApi::updateUserContext);
168-
// 删除旧菜单
169-
roleMenuApi.deleteByNotInMenuIds(newMenuIds);
170169
}));
171170
// 租户管理员:新增菜单
172171
tenantIdList.forEach(tenantId -> TenantUtils.execute(tenantId, () -> {
173172
Long roleId = roleApi.getIdByCode(RoleCodeEnum.TENANT_ADMIN.getCode());
174-
List<Long> oldMenuIdList = roleMenuApi.listMenuIdByRoleIds(List.of(roleId));
175-
Collection<Long> addMenuIdList = CollUtil.disjunction(newMenuIds, oldMenuIdList);
176-
if (CollUtil.isNotEmpty(addMenuIdList)) {
177-
roleMenuApi.add(addMenuIdList.stream().toList(), roleId);
178-
// 更新在线用户上下文
179-
roleApi.updateUserContext(roleId);
180-
}
173+
roleMenuApi.add(newMenuIds, roleId);
174+
// 更新在线用户上下文
175+
roleApi.updateUserContext(roleId);
181176
}));
182177
// 删除缓存
183178
RedisUtils.deleteByPattern(CacheConstants.ROLE_MENU_KEY_PREFIX + StringConstants.ASTERISK);

0 commit comments

Comments
 (0)