feat: 代理商子账号的菜单权限跟着主账号走,但是排除掉组织管理菜单

This commit is contained in:
曹鹏飞 2025-06-23 15:03:45 +08:00
parent 3859e9a8c9
commit d3718dc2eb
3 changed files with 18 additions and 2 deletions

View File

@ -119,7 +119,14 @@ public class AppController extends ControllerBase {
*/ */
@GetMapping("getPermissionMenus") @GetMapping("getPermissionMenus")
public ApiResult<List<MenuVO>> getPermissionMenus() { public ApiResult<List<MenuVO>> getPermissionMenus() {
VUtils.trueThrow(!SaTokenAppUtil.isLogin()).throwMessage(STATE.LoginError,"请重新登录"); VUtils.trueThrow(!SaTokenAppUtil.isLogin()).throwMessage(STATE.LoginError, "请重新登录");
return ApiResult.success(adminRoleService.getMenusByRoleCodes(AppUserUtil.getFrom(),AppUserUtil.getUserId(), "app")); if (StrUtil.equals(AppUserUtil.getFrom(), "app") && !AppUserUtil.isPrimary()) {
Integer primaryUserId = appUserService.getPrimaryByChild(AppUserUtil.getUserId());
List<MenuVO> menus = adminRoleService.getMenusByRoleCodes(AppUserUtil.getFrom(), primaryUserId, "app");
menus.removeIf(menu -> StrUtil.equals(menu.getComponent(), "identityManagement"));
return ApiResult.success(menus);
} else {
return ApiResult.success(adminRoleService.getMenusByRoleCodes(AppUserUtil.getFrom(), AppUserUtil.getUserId(), "app"));
}
} }
} }

View File

@ -66,4 +66,6 @@ public interface IAppUserService extends IService<AppUser> {
List<AreaSimpleVO> getSimpleAreas(Integer userId); List<AreaSimpleVO> getSimpleAreas(Integer userId);
void authorizeRole(@Valid AuthorizeRoleRequest request); void authorizeRole(@Valid AuthorizeRoleRequest request);
Integer getPrimaryByChild(Integer userId);
} }

View File

@ -305,6 +305,13 @@ public class AppUserServiceImpl extends ServiceImpl<AppUserMapper, AppUser> impl
} }
} }
@Override
public Integer getPrimaryByChild(Integer userId) {
AppUser user=getById(userId);
AppUser primaryUser=getPrimaryByCompanyId(user.getCompanyId());
return primaryUser.getId();
}
private void bindChildren1(AreaSimpleVO vo) { private void bindChildren1(AreaSimpleVO vo) {
List<AppArea> datas = appAreaService.lambdaQuery().eq(AppArea::getParentId, vo.getId()).eq(AppArea::getEnable, true).list(); List<AppArea> datas = appAreaService.lambdaQuery().eq(AppArea::getParentId, vo.getId()).eq(AppArea::getEnable, true).list();
List<AreaSimpleVO> vos = datas.stream().map(d -> new AreaSimpleVO().setId(d.getId()).setName(d.getName())).collect(Collectors.toList()); List<AreaSimpleVO> vos = datas.stream().map(d -> new AreaSimpleVO().setId(d.getId()).setName(d.getName())).collect(Collectors.toList());