diff --git a/src/public/scheduler/scheduler_clsl.ts b/src/public/scheduler/scheduler_clsl.ts index 0026577..ab256a5 100644 --- a/src/public/scheduler/scheduler_clsl.ts +++ b/src/public/scheduler/scheduler_clsl.ts @@ -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, @@ -87,12 +92,13 @@ export class SchedulerClslCrossCtor extends Scheduler { } if (i == 1) { groups['group1'].st = 0 - } + } if (i == tt) { 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,18 +118,18 @@ 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], - player: u.info.player, + new RankClslCross(u.group).addNew({ + valArr: [u.allStar, u.info.player.power], + player: u.info.player, roles: u.info.roles, }) }) @@ -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 {