From 3fa446f97897b50c2c70476f02524105d9c8bb22 Mon Sep 17 00:00:00 2001 From: wangziqi Date: Mon, 6 Jul 2026 17:39:24 +0800 Subject: [PATCH] =?UTF-8?q?Task=204:=20=E5=AD=A6=E7=94=9F=E5=88=97?= =?UTF-8?q?=E8=A1=A8=20tenantId=20=E7=AD=9B=E9=80=89=E7=94=9F=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - StudentsService.findAll() 接收 tenantId 参数并按 tenantId 过滤 - StudentsController.findAll() 增加 tenantId 查询参数 - students.organization 列仍在 occupancy/room-visual/import 等场景使用,未删除列 --- apps/server/src/students/students.controller.ts | 8 +++++++- apps/server/src/students/students.service.ts | 7 ++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/apps/server/src/students/students.controller.ts b/apps/server/src/students/students.controller.ts index db52d78..bf82132 100644 --- a/apps/server/src/students/students.controller.ts +++ b/apps/server/src/students/students.controller.ts @@ -43,8 +43,14 @@ export class StudentsController { @Query('name') name?: string, @Query('status') status?: string, @Query('includeArchived') includeArchived?: string, + @Query('tenantId') tenantId?: string, ) { - return this.service.findAll({ name, status, includeArchived: includeArchived === 'true' }); + return this.service.findAll({ + name, + status, + includeArchived: includeArchived === 'true', + tenantId: tenantId ? +tenantId : undefined, + }); } @Get('export') diff --git a/apps/server/src/students/students.service.ts b/apps/server/src/students/students.service.ts index 11d91a2..554b2a6 100644 --- a/apps/server/src/students/students.service.ts +++ b/apps/server/src/students/students.service.ts @@ -1,6 +1,6 @@ import { Injectable, NotFoundException, BadRequestException } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; -import { Repository, Like, Not, In } from 'typeorm'; +import { Repository, Like, Not, In, FindOptionsWhere } from 'typeorm'; import { CampusScope } from '../common/campus-scope'; import { Student } from '../entities/student.entity'; import { Class } from '../entities/class.entity'; @@ -19,9 +19,10 @@ export class StudentsService { private readonly scope: CampusScope, ) {} - async findAll(query?: { name?: string; status?: string; includeArchived?: boolean }) { - const where: any = {}; + async findAll(query?: { name?: string; status?: string; includeArchived?: boolean; tenantId?: number | string }) { + const where: FindOptionsWhere = {}; if (query?.name) where.name = Like(`%${query.name}%`); + if (query?.tenantId) where.tenantId = Number(query.tenantId); if (query?.status) { where.status = query.status; } else if (!query?.includeArchived) {