丛林猎手优化
This commit is contained in:
xichaoyin 2023-12-31 21:35:11 +08:00
parent c8f9d0c7d7
commit b45eec43f9
4 changed files with 22 additions and 4 deletions

View File

@ -16,13 +16,28 @@ export default async function (call: ApiCall<ReqUpLoad, ResUpLoad>) {
{ upsert: true, returnDocument: "after" }
)).value;
if (a.group){ // 分完组之后就可以更新排行榜了
// 周四 并且没有分组 更新玩家分组
if ((PublicShared.getWeek(G.time) || 7) >= 4 && !a.group) {
// 查询分组数据
let week = PublicShared.getToWeek();
let group = await G.mongodb.collection('clslCrossGroup').findOne({ week: week });
for (let groupid in group.groups) {
let groupinfo = group.groups[groupid];
if (a.info.player.cTime >= groupinfo.st && a.info.player.cTime < groupinfo.et) {
a.group = groupid;
G.mongodb.collection('clslCrossUser').updateOne({ uid: uid }, { $set: { group: a.group } });
break;
}
}
}
if (a.group) { // 分完组之后就可以更新排行榜了
if (allStar != undefined && ops.info) {
let rank;
if (Rank.list[`clslCross_${a.group}`]) {
rank = Rank.list[`clslCross_${a.group}`]
}
else{
else {
rank = new RankClslCross(a.group)
}
rank.addNew({

View File

@ -22,6 +22,7 @@ export default async function (call: ApiCall<ReqOpen, ResOpen>) {
// 隔周刷新星级
if (ops?.refreshTime < PublicShared.getToWeekMondayZeroTime()) {
change.allStar = 0;
change.danPrize = [];
change.curMaxStar = 0;
}

View File

@ -29,7 +29,7 @@ export class RankClslCross extends Rank {
async getRankData(uid: string) {
let data: rankInfo;
return (await this.db.findOne({ "idKey": uid, "type": this.getType() })).data
return (await this.db.findOne({ "idKey": uid, "type": this.getType() }))?.data
}
async addNew(info: rankInfo) {

View File

@ -125,7 +125,9 @@ export class SchedulerClslCrossCtor extends Scheduler {
await G.mongodb.collection("clslCrossGroup").updateOne({week: week}, {$set: {groups: groups}}, {upsert: true});
// 初始化丛林猎手排行榜
G.mongodb.collection('clslCrossUser').find({allStar: {$gte: this.star}}).toArray().then(users => {
G.mongodb.collection('clslCrossUser').find({
allStar: {$gte: this.star}, ttltime: {$exists: false}
}).toArray().then(users => {
users.forEach(u => {
new RankClslCross(u.group).addNew({
valArr: [u.allStar, u.info.player.power],