🐞 fix(gvg): gvg个人排行
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user