Compare commits

...

5 Commits

Author SHA1 Message Date
dy
ad9e3cca46 Merge branch 'bugfix' into release
# Conflicts:
#	src/public/rank/rank.ts
2023-12-28 19:17:09 +08:00
xcy
cedce860c5 fix:
排行榜bug
2023-12-28 18:46:38 +08:00
dy
cc6aad7223 Merge remote-tracking branch 'origin/bugfix' into bugfix 2023-12-28 18:19:52 +08:00
dy
566c3aeb7b fix 公共方法 2023-12-28 18:19:40 +08:00
xcy
8a69a4fc1e 修复排行榜 2023-12-28 18:13:50 +08:00
2 changed files with 48 additions and 21 deletions

View File

@ -240,7 +240,7 @@ export function ctor() {
}
Array.prototype.random = function (this: Array<any>) {
return this[PublicShared.randomNum(0, this.length)];
return this[PublicShared.randomNum(0, this.length - 1)];
};
Array.prototype.intersection = function (this: Array<any>, other: Array<any>) {

View File

@ -250,6 +250,33 @@ export abstract class Rank {
let res = await this.db.find({ idKey: { $in: uids }, type: this.getType() }).toArray()
switch (this.getType()) {
case "slzd1":
case "slzd2":
case "slzd3":
case "slzd4":
case "slzd5":
case "slzd6":
let ghid = [];
res = res.map(item => {
if (!item.data?.player?.ghid || item.data.utime + 60 < G.time) {
ghid.push(G.mongodb.conversionId(item.idKey));
}
return item;
})
if(ghid.length > 0){
let ghinfo = await G.mongodb.collection("gonghui").find(
{ _id: { $in: ghid } }, { projection: { name: 1 } }
).toArray();
ghinfo.forEach(item => {
let index = res.findIndex(x => x.idKey == item._id.toHexString());
res[index].data.player = {
ghName: item.name,
ghId: item._id.toHexString(),
};
this.db.updateOne({ idKey: item._id.toHexString(), type: this.getType() }, { $set: { "data.player": res[index].data.player } });
})
}
break;
default: // 排行数据更新逻辑 默认更新playerInfo
let updateUids = [];
res = res.map(item => {
@ -271,7 +298,7 @@ export abstract class Rank {
this.db.updateOne({ idKey: item.uid, type: this.getType() }, { $set: { "data.player": item } });
// 跟新redis score
this.setRankData(item.uid, res[index].data as any);
// this.setRankData(item.uid, res[index].data as any);
})
}