mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-11-04 21:01:38 +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)) {
 | 
					 | 
				
			||||||
                roleMenuApi.add(addMenuIdList.stream().toList(), roleId);
 | 
					 | 
				
			||||||
            // 更新在线用户上下文
 | 
					            // 更新在线用户上下文
 | 
				
			||||||
            roleApi.updateUserContext(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