|
@@ -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} 与该寝室已分配的学生性别不符!`
|
|
|
+ );
|
|
|
}
|
|
|
}
|
|
|
|