|
@@ -22,6 +22,55 @@ class StudentService extends CrudService {
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ async findbedroom(data) {
|
|
|
+ const { batchid, classid } = data;
|
|
|
+ const result = [];
|
|
|
+ // 如果传的是批次id
|
|
|
+ if (batchid) {
|
|
|
+ // 查询该批次下的所有学生
|
|
|
+ const students = await this.model.find({ batchid });
|
|
|
+ const bedroomList = new Set();
|
|
|
+ // 查询该批次的所有寝室号
|
|
|
+ for (const student of students) {
|
|
|
+ bedroomList.add(student.bedroom);
|
|
|
+ }
|
|
|
+ let studentList = [];
|
|
|
+ // 查询该批次所有寝室下的学生名单
|
|
|
+ for (const bedroom of bedroomList) {
|
|
|
+ const newstudents = await this.model.find({ bedroom });
|
|
|
+ for (const newstudent of newstudents) {
|
|
|
+ studentList.push(newstudent.name);
|
|
|
+ }
|
|
|
+ result.push({ bedroom, studentList });
|
|
|
+ studentList = [];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 如果传的是班级id
|
|
|
+ if (classid) {
|
|
|
+ // 查询该班级所有学生
|
|
|
+ const students = await this.model.find({ classid });
|
|
|
+ const bedroomList = new Set();
|
|
|
+ // 查询该班级所有寝室号
|
|
|
+ for (const student of students) {
|
|
|
+ bedroomList.add(student.bedroom);
|
|
|
+ }
|
|
|
+ let studentList = [];
|
|
|
+ // 查询该班级所有寝室的学生名单
|
|
|
+ for (const bedroom of bedroomList) {
|
|
|
+ const newstudents = await this.model.find({ bedroom });
|
|
|
+ for (const newstudent of newstudents) {
|
|
|
+ // 如果寝室中有非本班级学生(混寝),则过滤掉不予显示
|
|
|
+ if (newstudent.classid === classid) {
|
|
|
+ studentList.push(newstudent.name);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ result.push({ bedroom, studentList });
|
|
|
+ studentList = [];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
module.exports = StudentService;
|