军团:添加活跃排行榜

This commit is contained in:
luying
2021-01-26 13:25:05 +08:00
parent 3c3e734019
commit 08ef299fec
14 changed files with 293 additions and 59 deletions

View File

@@ -60,6 +60,9 @@ export default class Guild extends BaseModel {
@prop({ required: true, default: 0 })
activeWeekly: number;
@prop({ required: true, default: Date.now() })
activeUpdateTime: number;
@prop({ required: true, default: new Date(), select: false })
refTimeDaily: Date;
@@ -90,7 +93,7 @@ export default class Guild extends BaseModel {
delete update._id;
const code = genCode(6);
const result: GuildType = await GuildModel.findOneAndUpdate({ code }, update, { upsert: true, new: true })
.populate('leader', 'roleId roleName sHid headHid lv loginTime ce', 'Role')
.populate('leader', { roleId: 1, roleName: 1, sHid: 1, headHid: 1, lv: 1, loginTime: 1, ce: 1, title: 1, _id: 0 }, 'Role')
.lean();
return result;
@@ -113,7 +116,19 @@ export default class Guild extends BaseModel {
.sort({ lv: -1, guildCe: -1 })
.limit(GUILD_PER_PAGE).skip((page - 1) * GUILD_PER_PAGE)
.select('code icon name lv memberCnt leader ceLimit isAuto')
.populate('leader', 'roleName', 'Role')
.populate('leader', { roleName: 1, _id: 0 }, 'Role')
.lean();
return guildList;
}
public static async getRank(serverId: number, page: number = 1) {
const guildList: GuildType[] = await GuildModel.find({ status: GUILD_STATUS.RUNNING, serverId }, {_id: 0})
.sort({ activeWeekly: -1, activeUpdateTime: -1 })
.limit(100).skip((page - 1) * 100)
.select('code icon name lv leader activeWeekly activeUpdateTime')
.populate('leader', {roleName: 1, title: 1, sHid: 1, headHid: 1, lv: 1, _id: 0}, 'Role')
.lean();
return guildList;
}
@@ -126,7 +141,7 @@ export default class Guild extends BaseModel {
public static async findByCode(code: string, serverId: number, select?: string) {
const result: GuildType = await GuildModel.findOne({ code, status: GUILD_STATUS.RUNNING, serverId })
.select(select)
.populate('leader', 'roleId roleName sHid headHid lv loginTime ce', 'Role')
.populate('leader', {roleId: 1, roleName: 1, sHid: 1, headHid: 1, lv: 1, loginTime: 1, ce: 1, title: 1, _id: 0}, 'Role')
.lean();
return result;
}