Merge branch 'fix/conglinshoulie' into dev

This commit is contained in:
xichaoyin 2024-01-04 20:08:01 +08:00
commit dc45a38f4e

View File

@ -1,11 +1,11 @@
import { PublicShared } from '../../shared/public/public';
import { EmailFun } from '../email';
import { RankClslCross, RankClslCrossInit } from '../rank/rank_clsl';
import { Scheduler, schedulerType } from './scheduler';
import {PublicShared} from '../../shared/public/public';
import {EmailFun} from '../email';
import {RankClslCross} from '../rank/rank_clsl';
import {Scheduler, schedulerType} from './scheduler';
/**
*
*/
*/
export class SchedulerClslLocalCtor extends Scheduler {
id: schedulerType = 'clsl_cross_ctor';
@ -25,11 +25,13 @@ export class SchedulerClslLocalCtor extends Scheduler {
// 修改clslCrossUser表中的uid为del_uid_week 并且 设置ttltime为当前时间
await G.mongodb.collection('clslCrossUser').updateMany(
{}, { $rename: { "uid": `del_uid_${week}` }, $set: { "ttltime": new Date() } }
{
ttltime: {$exists: false}
}, {$rename: {"uid": `del_uid_${week}`}, $set: {"ttltime": new Date()}}
);
// 获取分组信息 重置排行榜
let groups = await G.mongodb.collection('clslCrossGroup').findOne({ week });
let groups = await G.mongodb.collection('clslCrossGroup').findOne({week});
Object.keys(groups.groups).forEach((group) => {
// 清理排行数据
new RankClslCross(group).clear();
@ -38,10 +40,11 @@ export class SchedulerClslLocalCtor extends Scheduler {
await this.record();
}
}
/**
*
* 100
*/
*/
export class SchedulerClslCrossCtor extends Scheduler {
id: schedulerType = 'clsl_cross_group';
@ -60,7 +63,9 @@ export class SchedulerClslCrossCtor extends Scheduler {
async start() {
let week = PublicShared.getToWeek();
let users = await G.mongodb.collection('clslCrossUser').find({}, {
let users = await G.mongodb.collection('clslCrossUser').find({
ttltime: {$exists: false}
}, {
projection: {
"uid": 1,
"allStar": 1,
@ -92,7 +97,8 @@ export class SchedulerClslCrossCtor extends Scheduler {
groups['group' + i].et = G.time + 7 * 14 * 3600;
groups['group' + i].users = wzusers.slice((i - 1) * this.num).map(u => u.uid);
}
};
}
;
} else {
groups['group0'] = {
st: 0,
@ -112,14 +118,14 @@ export class SchedulerClslCrossCtor extends Scheduler {
// 更新玩家分组id
for (let group in groups) {
await G.mongodb.collection('clslCrossUser').updateMany({ uid: { $in: groups[group].users } }, { $set: { group: group } });
await G.mongodb.collection('clslCrossUser').updateMany({uid: {$in: groups[group].users}}, {$set: {group: group}});
}
// 记录分组
await G.mongodb.collection("clslCrossGroup").updateOne({ week: week }, { $set: { groups: groups } }, { upsert: true });
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}}).toArray().then(users => {
users.forEach(u => {
new RankClslCross(u.group).addNew({
valArr: [u.allStar, u.info.player.power],
@ -136,7 +142,7 @@ export class SchedulerClslCrossCtor extends Scheduler {
/**
*
*/
*/
export class SchedulerClslPrize extends Scheduler {
id: schedulerType = 'clsl_prize';
@ -153,7 +159,7 @@ export class SchedulerClslPrize extends Scheduler {
async start() {
// 排名奖励
let group2users: { [group: string]: string[] } = {};
(await G.mongodb.collection('clslCrossUser').find({ allStar: { $gte: this.star } }).toArray()).forEach(u => {
(await G.mongodb.collection('clslCrossUser').find({allStar: {$gte: this.star}}).toArray()).forEach(u => {
if (u.group in group2users) {
group2users[u.group].push(u.uid);
} else {