排行榜:旧数据完成
This commit is contained in:
@@ -7,9 +7,8 @@ import { nowSeconds, getTodayZeroPoint, getAge } from '../pubUtils/timeUtil';
|
||||
import { getPvpGkWarIds, getPvpRankRewards, getPvpHeroRewards, getResultMaxRank, getTodayGuildActivity } from '../pubUtils/data';
|
||||
import { deepCopy, getRandomArr, resResult } from '../pubUtils/util';
|
||||
import { getLvByScore } from './pvpService';
|
||||
import { getMyRank, setRank, resetPvpRanks, getAllOnlineRoles, delGuildActivityRank, getAllServers } from './redisService';
|
||||
import { getAllOnlineRoles, getAllServers, initSingleRank, delGuildActivityRank } from './redisService';
|
||||
import { MAIL_TYPE, REDIS_KEY, ADULT_AGE, GUEST_MAX_TIME, ADDICTION_PREVENTION_CODE, GUILD_ACTIVITY_STATUS, GUILD_ACTIVITY_TYPE } from '../consts';
|
||||
import { RankParam } from '../domain/rank';
|
||||
import { RoleModel } from '../db/Role';
|
||||
import { MailModel, MailType } from '../db/Mail';
|
||||
import { pinus } from 'pinus';
|
||||
@@ -25,6 +24,7 @@ import { sendUngotDividendJob, startGuildAuction, startWorldAuction, stopAuction
|
||||
import { DicGuildActivity } from '../pubUtils/dictionary/DicGuildActivity';
|
||||
import { GuildModel } from '../db/Guild';
|
||||
import { dispatch } from '../util/dispatcher';
|
||||
import { Rank } from './rankService';
|
||||
|
||||
const PER_SECOND = 1 * 1000;
|
||||
const PER_DAY = 24 * 60 * 60;
|
||||
@@ -145,7 +145,8 @@ export async function checkResult(pvpDefense: PvpDefenseType, seasonNum: number,
|
||||
let pvpRankRewards = getPvpRankRewards();
|
||||
let pvpHeroRewards = getPvpHeroRewards();
|
||||
if (!rankLv) {
|
||||
rankLv = await getMyRank(REDIS_KEY.PVP_RANK, 0, pvpDefense.roleId);// 获得排行榜排名
|
||||
let r = new Rank(REDIS_KEY.PVP_RANK, {});
|
||||
rankLv = await r.getMyRank(pvpDefense.roleId);// 获得排行榜排名
|
||||
}
|
||||
let oldPLv = getLvByScore(pvpDefense.heroScores);//结算前玩家的pvp等级
|
||||
let { challengeCnt, challengeRefTime } = pvpDefense;
|
||||
@@ -202,9 +203,9 @@ export async function setPvpDefResult(pvpDefense: PvpDefenseType, seasonNum: num
|
||||
let rankLv = resultMaxRank.min; //最大排名挡位结算
|
||||
let {score, pLv, heroScores, challengeCnt, challengeRefTime, rankGoods, heroGoods } = await checkResult(pvpDefense, seasonNum, oldSeasonEndTime, rankLv);
|
||||
pvpDefense = await PvpDefenseModel.updateInfoAndInclude(pvpDefense.roleId, {score, pLv, heroScores, seasonNum, challengeCnt, challengeRefTime});
|
||||
let { roleName, lv, vLv, head, frame, spine, title, roleId } = role;
|
||||
let params = new RankParam(roleName, lv, vLv, head, frame, spine, title);
|
||||
setRank(REDIS_KEY.PVP_RANK, 0, roleId, pvpDefense.score, pvpDefense.updatedAt.getTime(), params);
|
||||
let { roleId } = role;
|
||||
let r = new Rank(REDIS_KEY.PVP_RANK, {});
|
||||
r.setRankWithRoleInfo(pvpDefense.roleId, pvpDefense.score, pvpDefense.updatedAt.getTime(), role, true);
|
||||
//下发邮件
|
||||
if (!!rankGoods.length)
|
||||
await sendMail(MAIL_TYPE.PVP_RANK_REWARD, roleId, '系统', [JSON.stringify(seasonNum), '999+'], rankGoods, oldSeasonEndTime);
|
||||
@@ -285,6 +286,10 @@ export async function resetPvpSeasonTime(hour: number) {
|
||||
}
|
||||
|
||||
|
||||
async function resetPvpRanks() {
|
||||
await initSingleRank(REDIS_KEY.PVP_RANK);
|
||||
}
|
||||
|
||||
export async function reportOnlineSchedule() {
|
||||
let allRoles = await getAllOnlineRoles();
|
||||
console.log('reportOnlineSchedule all roles count: ', allRoles.length)
|
||||
@@ -345,17 +350,8 @@ export async function reportOneOnline(roleId: string, userCode: string, sid: str
|
||||
async function guildActivitySchedule() {
|
||||
/***********guildActivitySchedule***********/
|
||||
|
||||
let dicGuildActivity = getTodayGuildActivity();
|
||||
let map = new Map<number, string[]>();
|
||||
let guilds = await GuildModel.findAllGuild('serverId code');
|
||||
for(let { serverId, code } of guilds) {
|
||||
if(map.has(serverId)) {
|
||||
map.get(serverId).push(code);
|
||||
} else {
|
||||
map.set(serverId, [code]);
|
||||
}
|
||||
}
|
||||
await delGuildActivityRank(dicGuildActivity.id, map);
|
||||
let dicGuildActivity = getTodayGuildActivity();
|
||||
await delGuildActivityRank(dicGuildActivity.id);
|
||||
|
||||
scheduleJob('guildActivityStart', `${dicGuildActivity.startSeconds} ${dicGuildActivity.startMinute} ${dicGuildActivity.startTime} * * ?`, guildActivityStartSchedule);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user