✨ feat(稷下学宫): 修改每周学分进度奖励
This commit is contained in:
@@ -1,3 +1,6 @@
|
||||
import { SHOP_REFRESH_TYPE } from '../consts';
|
||||
import { gameData } from '../pubUtils/data';
|
||||
import { getZeroPointOfTimeD } from '../pubUtils/timeUtil';
|
||||
import BaseModel from './BaseModel';
|
||||
import { getModelForClass, prop, DocumentType, index } from '@typegoose/typegoose';
|
||||
|
||||
@@ -103,6 +106,30 @@ export default class RougelikeRecord extends BaseModel {
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async getLastMaxLv(roleId: string) {
|
||||
let endTime = getZeroPointOfTimeD(Date.now() - 86400000, SHOP_REFRESH_TYPE.WEEKLY);
|
||||
let startTime = new Date(endTime.getTime() - (86400000 * 7));
|
||||
const result: RougelikeRecordType[] = await RougelikeRecordModel.find({ roleId, updatedAt: { $gt: startTime, $lt: endTime } }).lean(true);
|
||||
let lastMaxLv = 1;
|
||||
for (const { grade = 1 } of result) {
|
||||
lastMaxLv = Math.max(lastMaxLv, grade);
|
||||
}
|
||||
return lastMaxLv;
|
||||
}
|
||||
|
||||
public static async getLastMaxLvMap(roleIds: string[]) {
|
||||
let endTime = getZeroPointOfTimeD(Date.now() - 86400000, SHOP_REFRESH_TYPE.WEEKLY);
|
||||
let startTime = new Date(endTime.getTime() - (86400000 * 7));
|
||||
const result: RougelikeRecordType[] = await RougelikeRecordModel.find({ roleId: { $in: roleIds }, updatedAt: { $gt: startTime, $lt: endTime } }).lean(true);
|
||||
let lastMaxLvMap = new Map<string, number>();
|
||||
for (const { roleId, grade } of result) {
|
||||
if (!grade) continue;
|
||||
let tempLv = lastMaxLvMap.has(roleId) ? lastMaxLvMap.get(roleId) : 1;
|
||||
lastMaxLvMap.set(roleId, Math.max(tempLv, grade));
|
||||
}
|
||||
return lastMaxLvMap;
|
||||
}
|
||||
|
||||
};
|
||||
export const RougelikeRecordModel = getModelForClass(RougelikeRecord);
|
||||
export interface RougelikeRecordType extends Pick<DocumentType<RougelikeRecord>, keyof RougelikeRecord> { };
|
||||
|
||||
Reference in New Issue
Block a user