✨ feat(排行榜): pvp排行榜添加区服名
This commit is contained in:
@@ -14,7 +14,7 @@ export enum ROLE_SELECT {
|
||||
COM_BATTLE = 'lv head frame spine heads frames spines topLineupCe',
|
||||
GET_HEADS = 'heads head frames frame spines spine isGuildLeader roleId roleName lv ce title',
|
||||
// 排行榜基础数据
|
||||
RANK = 'roleId roleName lv vLv head frame spine heads frames spines title guildName ce topLineup towerLv towerUpTime topLineupCe heroNum updatedAt heroNumUpdatedAt dungeonWarId dungeonUpdatedAt dungeonHeroes mainWarId mainUpdatedAt mainEliteWarId mainEliteUpdatedAt showLineup hasGuild',
|
||||
RANK = 'roleId roleName lv vLv head frame spine heads frames spines title guildName ce topLineup towerLv towerUpTime topLineupCe heroNum updatedAt heroNumUpdatedAt dungeonWarId dungeonUpdatedAt dungeonHeroes mainWarId mainUpdatedAt mainEliteWarId mainEliteUpdatedAt showLineup hasGuild serverId',
|
||||
};
|
||||
|
||||
export enum HERO_SELECT {
|
||||
|
||||
@@ -118,7 +118,7 @@ export default class Guild extends BaseModel {
|
||||
const code = params.guildCode;
|
||||
const result: GuildType = await GuildModel.findOneAndUpdate({ code }, update, { upsert: true, new: true })
|
||||
.select({ _id: 0, __v: 0, createdAt: 0, updatedAt: 0 })
|
||||
.populate('leader', { roleId: 1, roleName: 1, head: 1, frame: 1, spine: 1, lv: 1, quitTime: 1, ce: 1, title: 1, _id: 0 }, 'Role')
|
||||
.populate('leader', { roleId: 1, roleName: 1, head: 1, frame: 1, spine: 1, lv: 1, quitTime: 1, ce: 1, title: 1, serverId: 1, _id: 0 }, 'Role')
|
||||
.lean({ getters: true, virtuals: true });
|
||||
|
||||
return result;
|
||||
|
||||
@@ -176,7 +176,7 @@ export default class PvpDefense extends BaseModel {
|
||||
public static async getRank(seasonNum: number, page = 1, limit = 1000) {
|
||||
let sortBy = { score: -1, updatedAt: 1 };
|
||||
const ranks: PvpDefenseType[] = await PvpDefenseModel.find({rankSeasonNum: seasonNum, score: { $gt: 0 }}).select('roleId role score updatedAt')
|
||||
.populate('role', 'roleId roleName head frame spine heads frames spines title lv vLv updatedAt')
|
||||
.populate('role', 'roleId roleName head frame spine heads frames spines title lv vLv updatedAt serverId')
|
||||
.sort(sortBy).limit(limit).skip((page - 1) * limit).lean({ getters: true, virtuals: true });
|
||||
return ranks;
|
||||
}
|
||||
|
||||
@@ -12,6 +12,9 @@ export class RankParam {
|
||||
@prop({ required: true })
|
||||
roleName: string = "";
|
||||
|
||||
@prop({ required: true })
|
||||
serverId: number = 0;
|
||||
|
||||
@prop({ required: true })
|
||||
lv: number = 0;
|
||||
|
||||
@@ -55,7 +58,8 @@ export class RankParam {
|
||||
} else {
|
||||
this.updatedAt = getSeconds(role.updatedAt);
|
||||
}
|
||||
}
|
||||
}
|
||||
if(role.serverId) this.serverId = role.serverId;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,7 +85,10 @@ export class GuildLeader {
|
||||
@prop({ required: true })
|
||||
spine: number;
|
||||
|
||||
constructor(leader: { roleId: string, roleName: string, title: number, lv: number, head: number, frame: number, spine: number}) {
|
||||
@prop({ required: true })
|
||||
serverId: number;
|
||||
|
||||
constructor(leader: { roleId: string, roleName: string, title: number, lv: number, head: number, frame: number, spine: number, serverId: number}) {
|
||||
this.roleId = leader.roleId;
|
||||
this.roleName = leader.roleName;
|
||||
this.title = leader.title;
|
||||
@@ -89,6 +96,7 @@ export class GuildLeader {
|
||||
this.head = leader.head;
|
||||
this.frame = leader.frame;
|
||||
this.spine = leader.spine;
|
||||
this.serverId = leader.serverId;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -230,7 +238,7 @@ export class RoleAndGuildRankInfo {
|
||||
}
|
||||
|
||||
setUserInfo(role: RoleRankInfo) {
|
||||
this.userInfo = pick(role, ['roleId', 'roleName', 'head', 'frame', 'spine', 'lv', 'title', 'guildName', 'ce', 'topLineupCe']);
|
||||
this.userInfo = pick(role, ['roleId', 'roleName', 'head', 'frame', 'spine', 'lv', 'title', 'guildName', 'ce', 'topLineupCe', 'serverId']);
|
||||
this.lineup = role.lineup;
|
||||
this.hasUser = true;
|
||||
}
|
||||
@@ -251,8 +259,8 @@ export class RoleAndGuildRankInfo {
|
||||
return false;
|
||||
}
|
||||
|
||||
setByField(roleId: string, roleName: string, head: number, frame: number, spine: number, lv: number, title: number, guildName: string, ce: number, topLineupCe: number) {
|
||||
this.userInfo = { roleId, roleName, head, frame, spine, lv, title, guildName, ce, topLineupCe }
|
||||
setByField(roleId: string, roleName: string, head: number, frame: number, spine: number, lv: number, title: number, guildName: string, ce: number, topLineupCe: number, serverId: number) {
|
||||
this.userInfo = { roleId, roleName, head, frame, spine, lv, title, guildName, ce, topLineupCe, serverId }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -400,12 +408,12 @@ export class GeneralRankParam {
|
||||
let rank = rankInfo? (type == RANK_TYPE.LADDER? rankInfo.num: rankInfo.rank): 0;
|
||||
if(rank == 1) {
|
||||
if(rankInfo instanceof RoleRankInfo) {
|
||||
this.userInfo = pick(rankInfo, ['roleId', 'roleName', 'head', 'frame', 'spine', 'guildName', 'ce', 'title', 'lv', 'topLineupCe']);
|
||||
this.userInfo = pick(rankInfo, ['roleId', 'roleName', 'head', 'frame', 'spine', 'guildName', 'ce', 'title', 'lv', 'topLineupCe', 'serverId']);
|
||||
this.hasUser = true;
|
||||
}
|
||||
if(rankInfo instanceof GuildRankInfo) {
|
||||
|
||||
let leaderInfo = pick(rankInfo.leader, ['roleId', 'roleName', 'head', 'frame', 'spine', 'ce', 'title', 'lv']);
|
||||
let leaderInfo = pick(rankInfo.leader, ['roleId', 'roleName', 'head', 'frame', 'spine', 'ce', 'title', 'lv', 'serverId']);
|
||||
this.userInfo = {
|
||||
...leaderInfo, guildName: rankInfo.name, ce: rankInfo.guildCe, topLineupCe: rankInfo.guildCe
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user