Merge branch 'fix/conglinshoulie' into dev
This commit is contained in:
commit
dc45a38f4e
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user