🐞 fix(gvg): gvg个人排行

This commit is contained in:
luying
2023-02-18 19:22:01 +08:00
parent 8065a81988
commit 96cbc19391
8 changed files with 156 additions and 56 deletions

View File

@@ -6,6 +6,9 @@ import { getZeroPoint } from '../pubUtils/timeUtil';
@index({ roleId: 1 })
export default class GVGVestigeSumRank extends BaseModel {
@prop({ required: true })
configId: number; // 赛期
@prop({ required: true })
day: number; // 每天5点
@@ -24,11 +27,17 @@ export default class GVGVestigeSumRank extends BaseModel {
@prop({ required: true })
score: number; // 得分
public static async incScore(roleId: string, leagueCode: string, groupId: number, serverType: number, inc: number) {
@prop({ required: true })
rank: number; // 最后的排名每天22点定格
@prop({ required: true })
isReceived: boolean; // 是否领取过
public static async incScore(roleId: string, leagueCode: string, configId: number, groupId: number, serverType: number, inc: number) {
let today = getZeroPoint();
let result: GVGVestigeSumRankType = await GVGVestigeSumRankModel.findOneAndUpdate({
day: today, groupId, serverType, roleId, leagueCode
}, { $inc: { score: inc } }, { new: true, upsert: true }).lean();
configId, day: today, groupId, serverType, roleId, leagueCode
}, { $inc: { score: inc } , $setOnInsert: { rank: 0, isReceived: false } }, { new: true, upsert: true }).lean();
return result;
}
@@ -54,6 +63,23 @@ export default class GVGVestigeSumRank extends BaseModel {
]);
return ranks;
}
public static async saveRank(groupId: number, serverType: number, ranks: { rank: number, field: string }[]) {
let today = getZeroPoint();
await GVGVestigeSumRankModel.bulkWrite(ranks.map(({ field, rank }) => {
return { updateOne: { filter: { day: today, groupId, serverType, roleId: field }, update: { $set: { rank } }} }
}));
}
public static async getCanReceiveRanks(configId: number, roleId: string) {
console.log(configId, roleId)
let result: GVGVestigeSumRankType[] = await GVGVestigeSumRankModel.find({ configId, roleId, rank: { $gt: 0 }, isReceived: false }).lean();
return result;
}
public static async receiveRanks(_ids: string[]) {
await GVGVestigeSumRankModel.updateMany({ _id: { $in: _ids } }, { $set: { isReceived: true } });
}
}
export const GVGVestigeSumRankModel = getModelForClass(GVGVestigeSumRank);