Selaa lähdekoodia

增加按班级id查询

liuyu 4 vuotta sitten
vanhempi
commit
60534282f8
3 muutettua tiedostoa jossa 24 lisäystä ja 0 poistoa
  1. 5 0
      app/controller/bedroom.js
  2. 1 0
      app/router.js
  3. 18 0
      app/service/bedroom.js

+ 5 - 0
app/controller/bedroom.js

@@ -25,6 +25,11 @@ class BedroomController extends Controller {
     this.ctx.ok({ ...res });
   }
 
+  async roomstu() {
+    const data = await this.service.roomstu(this.ctx.params);
+    this.ctx.ok({ data });
+  }
+
 }
 
 module.exports = CrudController(BedroomController, meta);

+ 1 - 0
app/router.js

@@ -47,6 +47,7 @@ module.exports = app => {
   router.post('headteacher', '/api/train/headteacher/update/:id', controller.headteacher.update);
 
   // 寝室表设置路由
+  router.get('/api/train/bedroom/student/:id', controller.bedroom.roomstu); // 根据班级id查询寝室信息
   router.resources('bedroom', '/api/train/bedroom', controller.bedroom); // index、create、show、destroy
   router.post('bedroom', '/api/train/bedroom/update/:id', controller.bedroom.update);
   router.post('bedroom', '/api/train/bedroom/apart', controller.bedroom.apart);

+ 18 - 0
app/service/bedroom.js

@@ -18,6 +18,24 @@ class BedroomService extends CrudService {
 
   }
 
+  // 根据班级id查找班级下所有寝室列表并查询出寝室下学生信息
+  async roomstu({ id }) {
+    // 通过班级id查询学生表信息
+    const students = await this.smodel.find({ classid: id });
+    const _bedrooms = _.map(students, 'bedroom');
+    // 取得无重复的寝室号
+    const bedrooms = _.uniq(_bedrooms);
+    console.log(bedrooms);
+    const data = [];
+    // 根据寝室号 取得相应的学生信息
+    for (const elm of bedrooms) {
+      const stus = students.filter(item => item.bedroom === elm);
+      const newdata = { bedroom: elm, stus };
+      data.push(newdata);
+    }
+    return data;
+  }
+
   async ibeacon(data) {
     assert(data.openid, '用户信息不能为空');
     // 通过openid取得学生信息