排行榜: 获取排行榜
This commit is contained in:
+15
-2
@@ -4,6 +4,7 @@ import Equip, { } from './Equip';
|
||||
import { CounterModel } from './Counter';
|
||||
import { COUNTER, EQUIP_TYPE } from '../consts';
|
||||
import { reduceCe } from '../pubUtils/util';
|
||||
import { nowSeconds } from '../pubUtils/timeUtil';
|
||||
|
||||
class CeAttrData {
|
||||
@prop({ required: true })
|
||||
@@ -90,6 +91,8 @@ export default class Hero extends BaseModel {
|
||||
lv: number; // 武将等级
|
||||
@prop({ required: true, default: 0, set: (val: number) => val, get: (val: number) => reduceCe(val) })
|
||||
ce: number; // 武将战力
|
||||
@prop({ required: false, set: (val: boolean) => val, get: () => true })
|
||||
isReducedCe: boolean; // 如果战力没有缩过就会返回false,缩过了就会返回true
|
||||
@prop({ required: true, default: 0 })
|
||||
historyCe: number; // 武将历史最高战力
|
||||
@prop({required: true, type: CeAttrData, default: [], _id: false })
|
||||
@@ -190,7 +193,7 @@ export default class Hero extends BaseModel {
|
||||
return hero;
|
||||
}
|
||||
|
||||
public static async createHero(heroInfo: {roleId: string, serverId: number, roleName: string, hid: number, hName: string, star: number, quality: number, job: number, lv?: number, exp?: number, skins:Skin[]}, lean = true) {
|
||||
public static async createHero(heroInfo: HeroUpdate, lean = true) {
|
||||
const doc = new HeroModel();
|
||||
const seqId = await CounterModel.getNewCounter(COUNTER.HID)||-1;
|
||||
const update = Object.assign(doc.toJSON(), heroInfo, {seqId});
|
||||
@@ -267,7 +270,17 @@ export default class Hero extends BaseModel {
|
||||
return user;
|
||||
}
|
||||
|
||||
public static async getRank(hid: number, serverId: number, select?: string, limit = 100) {
|
||||
public static async getAllRank(serverId: number, select?: string, limit = 200) {
|
||||
let result: HeroType[] = await HeroModel.find({serverId}, { _id: false} ).select(select).limit(limit).sort({ ce: -1, updatedAt: 1 }).lean({ getters: true });
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async getMyTopHero(roleId: string, select?: string) {
|
||||
let result: HeroType = await HeroModel.findOne({ roleId }, { _id: false} ).select(select).sort({ ce: -1, updatedAt: 1 }).lean({ getters: true });
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async getRank(hid: number, serverId: number, select?: string, limit = 200) {
|
||||
let result: HeroType[] = await HeroModel.find({serverId, hid}, { _id: false} ).select(select).limit(limit).lean({ getters: true });
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user