添加天梯排行榜,修复setHour有时差的bug
This commit is contained in:
+15
-2
@@ -8,6 +8,7 @@ import { shouldRefresh } from '../pubUtils/util';
|
||||
* 角色字段接口
|
||||
*/
|
||||
@index({ roleId: 1 })
|
||||
@index({ towerLv: -1, towerUpTime: 1 })
|
||||
// @index({ userInfo.uid: 1, serverId: 1 })
|
||||
export default class Role extends BaseModel {
|
||||
|
||||
@@ -100,6 +101,8 @@ export default class Role extends BaseModel {
|
||||
// 天梯相关
|
||||
@prop({ required: true, default: 1 })
|
||||
towerLv: number; // 天梯当前层数
|
||||
@prop({ required: true, default: new Date() })
|
||||
towerUpTime: Date; // 天梯爬到这一层的时间
|
||||
|
||||
@prop({ required: true, default: HANG_UP_CONSTS.MAX_SPD_UP_CNT})
|
||||
hangUpSpdUpCnt: number; // 挂机加速次数
|
||||
@@ -155,7 +158,7 @@ export default class Role extends BaseModel {
|
||||
}
|
||||
|
||||
public static async towerLvUp(roleId: string, lean = true) {
|
||||
let role = await RoleModel.findOneAndUpdate({roleId}, {$inc: {towerLv: 1}}, {new: true}).lean(lean);
|
||||
let role = await RoleModel.findOneAndUpdate({roleId}, {$inc: {towerLv: 1}, towerUpTime: new Date()}, {new: true}).lean(lean);
|
||||
return role;
|
||||
}
|
||||
|
||||
@@ -179,7 +182,6 @@ export default class Role extends BaseModel {
|
||||
}
|
||||
|
||||
public static async levelup(roleId: string, lv: number, exp: number, lean = true) {
|
||||
console.log(lv, exp)
|
||||
let role = await RoleModel.findOneAndUpdate({roleId}, {$set: { exp, lv }}, {new: true}).lean(lean);
|
||||
return role;
|
||||
}
|
||||
@@ -254,6 +256,17 @@ export default class Role extends BaseModel {
|
||||
}
|
||||
return role;
|
||||
}
|
||||
|
||||
// 获取排行榜
|
||||
public static async getRank(type: string, fields: Array<string>, page = 1, limit = 100, lean = true) {
|
||||
let sortBy = {};
|
||||
if(type == 'tower') {
|
||||
sortBy['towerLv'] = -1;
|
||||
sortBy['towerUpTime'] = 1;
|
||||
}
|
||||
const ranks = await RoleModel.find().select(fields.join(' ')).sort(sortBy).limit(limit).skip((page - 1) * limit).lean(lean);
|
||||
return ranks;
|
||||
}
|
||||
}
|
||||
|
||||
export const RoleModel = getModelForClass(Role);
|
||||
|
||||
Reference in New Issue
Block a user