lrf402788946 há 4 anos atrás
pai
commit
11ed9a96af
1 ficheiros alterados com 11 adições e 4 exclusões
  1. 11 4
      app/service/bedroom.js

+ 11 - 4
app/service/bedroom.js

@@ -193,7 +193,7 @@ class BedroomService extends CrudService {
     const keys = Object.keys(stuBedIdGroup);
     // 过滤出没有人的寝室
     let noperson = bedroomList.filter(f => !(keys.find(k => {
-      if (k === undefined || k === 'undefined') return false;
+      if (k === undefined || k === 'undefined' || k === null || k === 'null') return false;
       return ObjectId(k).equals(f._id);
     })));
     noperson = JSON.parse(JSON.stringify(noperson));
@@ -238,7 +238,7 @@ class BedroomService extends CrudService {
     const bedroom = await this.model.findById(bedroomid);
     if (!bedroom) throw new BusinessError(ErrorCode.DATA_NOT_EXIST, '不存在该寝室');
     let { number, gender } = bedroom;
-    console.log(gender);
+    console.log(`bedroom:gender=>${gender}`);
     // 找到多少人在这个寝室
     const inRoom = await this.ctx.model.Student.find({ termid, bedroomid });
     const ifTotal = inRoom.length * 1 + ids.length;
@@ -247,24 +247,31 @@ class BedroomService extends CrudService {
       // 寝室没设置性别,从这个寝室的学生中取出性别
       const stu = _.head(inRoom);
       gender = _.trim(_.get(stu, 'gender'));
+      console.log(`bedroom:in room sutdent gender=>${gender}`);
     }
+    const selectStuList = await this.ctx.model.Student.find({ _id: ids.map(i => ObjectId(i)) });
     for (const id of ids) {
       const r = await this.ctx.model.Student.findById(id);
       // 性别查询,是否有误
       const { gender: sg, name } = r;
       // 寝室或有已入住学生,产生的性别结果,
       if (!gender) {
+        console.log('in no gender limit');
         r.bedroom = code;
         r.bedroomid = bedroomid;
         await r.save();
       } else {
+        console.log(`in gender limit : gender: ${gender} / sg:${sg}`);
         if (sg && sg.includes(gender)) {
-        // 有性别判断
+          // 有性别判断
           r.bedroom = code;
           r.bedroomid = bedroomid;
           await r.save();
         } else {
-          throw new BusinessError(ErrorCode.BusinessError, `${name} 与该寝室已分配的学生性别不符!`);
+          throw new BusinessError(
+            ErrorCode.BusinessError,
+            `${name} 与该寝室已分配的学生性别不符!`
+          );
         }
       }