Merge branch 'fix/conglinshoulie' into dev
This commit is contained in:
commit
dc45a38f4e
@ -1,11 +1,11 @@
|
|||||||
import { PublicShared } from '../../shared/public/public';
|
import {PublicShared} from '../../shared/public/public';
|
||||||
import { EmailFun } from '../email';
|
import {EmailFun} from '../email';
|
||||||
import { RankClslCross, RankClslCrossInit } from '../rank/rank_clsl';
|
import {RankClslCross} from '../rank/rank_clsl';
|
||||||
import { Scheduler, schedulerType } from './scheduler';
|
import {Scheduler, schedulerType} from './scheduler';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 丛林猎手赛季重置
|
* 丛林猎手赛季重置
|
||||||
*/
|
*/
|
||||||
export class SchedulerClslLocalCtor extends Scheduler {
|
export class SchedulerClslLocalCtor extends Scheduler {
|
||||||
id: schedulerType = 'clsl_cross_ctor';
|
id: schedulerType = 'clsl_cross_ctor';
|
||||||
|
|
||||||
@ -25,11 +25,13 @@ export class SchedulerClslLocalCtor extends Scheduler {
|
|||||||
|
|
||||||
// 修改clslCrossUser表中的uid为del_uid_week 并且 设置ttltime为当前时间
|
// 修改clslCrossUser表中的uid为del_uid_week 并且 设置ttltime为当前时间
|
||||||
await G.mongodb.collection('clslCrossUser').updateMany(
|
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) => {
|
Object.keys(groups.groups).forEach((group) => {
|
||||||
// 清理排行数据
|
// 清理排行数据
|
||||||
new RankClslCross(group).clear();
|
new RankClslCross(group).clear();
|
||||||
@ -38,10 +40,11 @@ export class SchedulerClslLocalCtor extends Scheduler {
|
|||||||
await this.record();
|
await this.record();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 丛林猎手赛季划分
|
* 丛林猎手赛季划分
|
||||||
* 达到王者段位的所有玩家 按照创号时间从早到晚排序 每100个玩家划分一个区间
|
* 达到王者段位的所有玩家 按照创号时间从早到晚排序 每100个玩家划分一个区间
|
||||||
*/
|
*/
|
||||||
export class SchedulerClslCrossCtor extends Scheduler {
|
export class SchedulerClslCrossCtor extends Scheduler {
|
||||||
id: schedulerType = 'clsl_cross_group';
|
id: schedulerType = 'clsl_cross_group';
|
||||||
|
|
||||||
@ -60,7 +63,9 @@ export class SchedulerClslCrossCtor extends Scheduler {
|
|||||||
|
|
||||||
async start() {
|
async start() {
|
||||||
let week = PublicShared.getToWeek();
|
let week = PublicShared.getToWeek();
|
||||||
let users = await G.mongodb.collection('clslCrossUser').find({}, {
|
let users = await G.mongodb.collection('clslCrossUser').find({
|
||||||
|
ttltime: {$exists: false}
|
||||||
|
}, {
|
||||||
projection: {
|
projection: {
|
||||||
"uid": 1,
|
"uid": 1,
|
||||||
"allStar": 1,
|
"allStar": 1,
|
||||||
@ -92,7 +97,8 @@ export class SchedulerClslCrossCtor extends Scheduler {
|
|||||||
groups['group' + i].et = G.time + 7 * 14 * 3600;
|
groups['group' + i].et = G.time + 7 * 14 * 3600;
|
||||||
groups['group' + i].users = wzusers.slice((i - 1) * this.num).map(u => u.uid);
|
groups['group' + i].users = wzusers.slice((i - 1) * this.num).map(u => u.uid);
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
;
|
||||||
} else {
|
} else {
|
||||||
groups['group0'] = {
|
groups['group0'] = {
|
||||||
st: 0,
|
st: 0,
|
||||||
@ -112,14 +118,14 @@ export class SchedulerClslCrossCtor extends Scheduler {
|
|||||||
|
|
||||||
// 更新玩家分组id
|
// 更新玩家分组id
|
||||||
for (let group in groups) {
|
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 => {
|
users.forEach(u => {
|
||||||
new RankClslCross(u.group).addNew({
|
new RankClslCross(u.group).addNew({
|
||||||
valArr: [u.allStar, u.info.player.power],
|
valArr: [u.allStar, u.info.player.power],
|
||||||
@ -136,7 +142,7 @@ export class SchedulerClslCrossCtor extends Scheduler {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 丛林猎手赛季发奖
|
* 丛林猎手赛季发奖
|
||||||
*/
|
*/
|
||||||
export class SchedulerClslPrize extends Scheduler {
|
export class SchedulerClslPrize extends Scheduler {
|
||||||
id: schedulerType = 'clsl_prize';
|
id: schedulerType = 'clsl_prize';
|
||||||
|
|
||||||
@ -153,7 +159,7 @@ export class SchedulerClslPrize extends Scheduler {
|
|||||||
async start() {
|
async start() {
|
||||||
// 排名奖励
|
// 排名奖励
|
||||||
let group2users: { [group: string]: string[] } = {};
|
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) {
|
if (u.group in group2users) {
|
||||||
group2users[u.group].push(u.uid);
|
group2users[u.group].push(u.uid);
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user