|
@@ -309,11 +309,10 @@ class EliminateService extends CrudService {
|
|
|
sort = sort.map(f => ({ [f]: desc ? -1 : 1 })).reduce((p, c) => ({ ...p, ...c }), {});
|
|
|
}
|
|
|
// 过滤出ref字段
|
|
|
- console.log('line 309 in function:');
|
|
|
- const { refMods, populate } = this.getRefMods();
|
|
|
+ const { populate } = this.getRefMods();
|
|
|
let res = await this.model.findOne(filter, projection).populate(populate).exec();
|
|
|
res = JSON.parse(JSON.stringify(res));
|
|
|
- const { player_type, player_one, player_two, referee_id, match_id, group_id, project_id, address_id } = res;
|
|
|
+ const { referee_id, match_id, group_id, project_id, address_id } = res;
|
|
|
if (match_id) {
|
|
|
res.match_id_name = _.get(res, 'match_id.name');
|
|
|
res.match_id = _.get(res, 'match_id._id');
|
|
@@ -331,26 +330,47 @@ class EliminateService extends CrudService {
|
|
|
res.address_id = _.get(res, 'address_id._id');
|
|
|
}
|
|
|
if (referee_id) {
|
|
|
- res.referee_id_name = _.get(res, 'referee_id.name');
|
|
|
+ res.referee_id_name = _.get(res, 'referee_id.user_id.name');
|
|
|
res.referee_id = _.get(res, 'referee_id._id');
|
|
|
}
|
|
|
-
|
|
|
+ res = await this.getPlayerName(res);
|
|
|
+ res = await this.afterFetch(filter, res);
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+ // 换选手名称
|
|
|
+ async getPlayerName(data) {
|
|
|
+ const { player_type, player_one, player_two } = data;
|
|
|
+ if (!player_type) return data;
|
|
|
// 人处理
|
|
|
if (player_type === 'Race.User') {
|
|
|
- const p1 = await this.userModel.findById(player_one, { user_id: 1 }).populate({ path: 'user_id', model: this.baseUserModel, select: 'name' });
|
|
|
- const p2 = await this.userModel.findById(player_two, { user_id: 1 }).populate({ path: 'user_id', model: this.baseUserModel, select: 'name' });
|
|
|
- res.player_one_name = _.get(p1, 'user_id.name');
|
|
|
- res.player_two_name = _.get(p2, 'user_id.name');
|
|
|
+ console.log('line 348 in function:');
|
|
|
+ if (player_one) {
|
|
|
+ const p1 = await this.userModel.findById(player_one, { user_id: 1 }).populate({ path: 'user_id', model: this.baseUserModel, select: 'name' });
|
|
|
+ data.player_one_name = _.get(p1, 'user_id.name');
|
|
|
+ }
|
|
|
+ if (player_two) {
|
|
|
+ const p2 = await this.userModel.findById(player_two, { user_id: 1 }).populate({ path: 'user_id', model: this.baseUserModel, select: 'name' });
|
|
|
+ data.player_two_name = _.get(p2, 'user_id.name');
|
|
|
+ }
|
|
|
} else if (player_type === 'Race.TeamApply') {
|
|
|
- const p1 = await this.teamApplyModel.findById(player_one, { one_member_name: 1, two_member_name: 1 });
|
|
|
- const p2 = await this.teamApplyModel.findById(player_two, { one_member_name: 1, two_member_name: 1 });
|
|
|
- res.player_one_name = `${_.get(p1, 'one_member_name')}-${_.get(p1, 'two_member_name')}`;
|
|
|
- res.player_two_name = `${_.get(p2, 'one_member_name')}-${_.get(p2, 'two_member_name')}`;
|
|
|
+ if (player_one) {
|
|
|
+ const p1 = await this.teamApplyModel.findById(player_one, { one_member_name: 1, two_member_name: 1 });
|
|
|
+ data.player_one_name = `${_.get(p1, 'one_member_name')}-${_.get(p1, 'two_member_name')}`;
|
|
|
+ }
|
|
|
+ if (player_two) {
|
|
|
+ const p2 = await this.teamApplyModel.findById(player_two, { one_member_name: 1, two_member_name: 1 });
|
|
|
+ data.player_two_name = `${_.get(p2, 'one_member_name')}-${_.get(p2, 'two_member_name')}`;
|
|
|
+ }
|
|
|
}
|
|
|
- res = await this.afterFetch(filter, res);
|
|
|
- return res;
|
|
|
+ return data;
|
|
|
+ }
|
|
|
+ async afterQuery(filter, data) {
|
|
|
+ if (data) data = JSON.parse(JSON.stringify(data));
|
|
|
+ for (let d of data) {
|
|
|
+ d = await this.getPlayerName(d);
|
|
|
+ }
|
|
|
+ return data;
|
|
|
}
|
|
|
-
|
|
|
// 如果打完比赛,则自动推进
|
|
|
async afterUpdate(filter, data) {
|
|
|
const { status } = data;
|