排行榜: 获取排行榜
This commit is contained in:
@@ -74,7 +74,7 @@ export class GuildHandler {
|
||||
// 加入排行
|
||||
let r = new Rank(REDIS_KEY.GUILD_ACTIVE_RANK, {serverId});
|
||||
await r.setRankWithGuildInfo(guild.code, 0, Date.now(), guild);
|
||||
let rank = await r.getMyRank(guild.code);
|
||||
let rank = await r.getMyRank({ guildCode: guild.code });
|
||||
|
||||
// 加入channel
|
||||
session.set('guildCode', guild.code);
|
||||
@@ -280,7 +280,7 @@ export class GuildHandler {
|
||||
|
||||
// 获取排行榜
|
||||
let r = new Rank(REDIS_KEY.GUILD_ACTIVE_RANK, { serverId });
|
||||
const rank = await r.getMyRank(guild.code);
|
||||
const rank = await r.getMyRank({ guildCode: guild.code });
|
||||
|
||||
// 返回
|
||||
const result = { hasGuild: true, ...guild, leader: { ...leader, isOnline: leaderIsOnline }, rank, myInfo: {...userGuild }};
|
||||
@@ -606,7 +606,7 @@ export class GuildHandler {
|
||||
this.app.rpc.chat.guildRemote.dismiss.toServer(chatSid,code);
|
||||
|
||||
let r = new Rank(REDIS_KEY.GUILD_ACTIVE_RANK, {serverId});
|
||||
await r.removeFromRank(code);
|
||||
await r.removeFromRank({ guildCode: code });
|
||||
return resResult(STATUS.SUCCESS, { code, status: guild.status });
|
||||
}
|
||||
|
||||
@@ -790,6 +790,11 @@ export class GuildHandler {
|
||||
if(!result) {
|
||||
return resResult(STATUS.GUILD_FUND_NOT_ENOUGH);
|
||||
}
|
||||
if(id == GUILD_STRUCTURE.ARMY_CENTER) {
|
||||
let r = new Rank(REDIS_KEY.GUILD_LV_RANK, { serverId });
|
||||
await r.setRankWithGuildInfo(code, guild.lv, guild.lvUpdateTime, guild);
|
||||
}
|
||||
|
||||
const resultStructure = result.structure.find(cur => cur.id == id);
|
||||
|
||||
// 修改信息
|
||||
@@ -919,7 +924,7 @@ export class GuildHandler {
|
||||
if(!checkResult) return resResult(STATUS.GUILD_AUTH_NOT_ENOUGH);
|
||||
|
||||
let r = new Rank(REDIS_KEY.GUILD_ACTIVE_RANK, { serverId });
|
||||
let { ranks, myRank } = await r.getRankListWithMyRank(myUserGuild.guildCode);
|
||||
let { ranks, myRank } = await r.getRankListWithMyRank({ guildCode: myUserGuild.guildCode });
|
||||
if(!myRank) {
|
||||
let guild = await GuildModel.findByCode(myUserGuild.guildCode, serverId, 'code icon name lv leader activeWeekly');
|
||||
myRank = await r.generMyRankWithGuild(myUserGuild.guildCode, guild.activeWeekly, guild.activeUpdateTime, guild);
|
||||
|
||||
@@ -3,7 +3,7 @@ import { BattleRecordModel } from '../../../db/BattleRecord';
|
||||
import { BattleSweepRecordModel } from '../../../db/BattleSweepRecord';
|
||||
import { getWarById, } from '../../../pubUtils/gamedata';
|
||||
import { genCode } from '../../../pubUtils/util';
|
||||
import { WAR_TYPE, EVENT_STATUS, FUNC_OPT_TYPE, MSG_SOURCE } from '../../../consts';
|
||||
import { WAR_TYPE, EVENT_STATUS, FUNC_OPT_TYPE, MSG_SOURCE, REDIS_KEY } from '../../../consts';
|
||||
import { checkDaily, checkDailyAndIncrease } from '../../../services/dailyBattleService';
|
||||
import { checkTowerWar, towerBattleEnd } from '../../../services/battleService';
|
||||
import { WarReward } from '../../../services/warRewardService';
|
||||
@@ -18,6 +18,8 @@ import { checkDungeonNum, checkDungeonAndIncrease } from '../../../services/dung
|
||||
import { switchOnFunc } from '../../../services/funcSwitchService';
|
||||
import { gameData } from '../../../pubUtils/data';
|
||||
import { pushMysteryFirstMsg, pushTowerMsg, pushVestigeFirstMsg } from '../../../services/chatService';
|
||||
import { nowSeconds } from '../../../pubUtils/timeUtil';
|
||||
import { Rank } from '../../../services/rankService';
|
||||
|
||||
export default function(app: Application) {
|
||||
return new NormalBattleHandler(app);
|
||||
@@ -215,11 +217,22 @@ export class NormalBattleHandler {
|
||||
}
|
||||
} else if (warInfo.warType == WAR_TYPE.MYSTERY || warInfo.warType == WAR_TYPE.MYSTERY_ELITE) {
|
||||
let checkResult = await checkDungeonAndIncrease(roleId, 1, false);
|
||||
await RoleModel.saveDungeonHero(roleId, battleId, heroes, isSuccess);
|
||||
let role = await RoleModel.saveDungeonHero(roleId, battleId, heroes, isSuccess);
|
||||
let r = new Rank(REDIS_KEY.DUNGEON_RANK, { serverId });
|
||||
await r.setRankWithRoleInfo(roleId, role.dungeonWarId, role.dungeonUpdatedAt, role);
|
||||
|
||||
if(checkResult.status == -1) {
|
||||
return checkResult.resResult;
|
||||
}
|
||||
dungeonNum = Object.assign(dungeonNum, checkResult.data)
|
||||
} else if (warInfo.warType == WAR_TYPE.NORMAL) {
|
||||
let role = await RoleModel.updateMainWarId(roleId, battleId, nowSeconds());
|
||||
let r = new Rank(REDIS_KEY.MAIN_RANK, { serverId });
|
||||
await r.setRankWithRoleInfo(roleId, role.mainWarId, role.mainUpdatedAt, role);
|
||||
} else if (warInfo.warType == WAR_TYPE.MAIN_ELITE) {
|
||||
let role = await RoleModel.updateMainEliteWarId(roleId, battleId, nowSeconds());
|
||||
let r = new Rank(REDIS_KEY.MAIN_ELITE_RANK, { serverId });
|
||||
await r.setRankWithRoleInfo(roleId, role.mainEliteWarId, role.mainEliteUpdatedAt, role);
|
||||
}
|
||||
|
||||
if(isSuccess) { // 挑战胜利
|
||||
|
||||
@@ -442,7 +442,7 @@ export class PvpHandler {
|
||||
}
|
||||
heroes.sort((a, b) => b.score - a.score);
|
||||
let r = new Rank(REDIS_KEY.PVP_RANK, {});
|
||||
let rank = await r.getMyRank(oppoRoleId);//去redis中获取排名
|
||||
let rank = await r.getMyRank({ roleId: oppoRoleId });//去redis中获取排名
|
||||
|
||||
result = new PlayerDetail({...role, ...pvpDefense, heroes, rank});
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import { Application } from 'pinus';
|
||||
import {FrontendSession} from 'pinus';
|
||||
import { HeroModel } from './../../../db/Hero';
|
||||
import { resResult } from '../../../pubUtils/util';
|
||||
import { COM_BTL_QUALITY, ROLE_SELECT, HERO_SELECT, GUILD_SELECT, USER_GUILD_SELECT, DEBUG_MAGIC_WORD } from '../../../consts';
|
||||
import { COM_BTL_QUALITY, ROLE_SELECT, HERO_SELECT, GUILD_SELECT, USER_GUILD_SELECT, DEBUG_MAGIC_WORD, REDIS_KEY } from '../../../consts';
|
||||
import { getAp } from '../../../services/actionPointService';
|
||||
import { ItemModel } from '../../../db/Item';
|
||||
import { chackFunOpenWhenLogin } from '../../../services/funcSwitchService';
|
||||
@@ -21,6 +21,7 @@ import { gameData } from '../../../pubUtils/data';
|
||||
import { getMails } from '../../../services/mailService';
|
||||
import { addRoleToGuildChannel, addRoleToSysChannel, addRoleToWorldChannel, leaveGuildChannel, leaveSysChannel, leaveWorldChannel, recentGuildMsgs, recentPrivateChatInfos, recentSysMsgs, recentWorldMsgs } from '../../../services/chatService';
|
||||
import { reportOneOnline } from '../../../services/timeTaskService';
|
||||
import { Rank } from '../../../services/rankService';
|
||||
export default function (app: Application) {
|
||||
return new EntryHandler(app);
|
||||
}
|
||||
@@ -104,6 +105,11 @@ export class EntryHandler {
|
||||
await loginRefresh(role.roleId);
|
||||
reportOneOnline(role.roleId, user.userCode, self.app.get('serverId'), user.pkgName);
|
||||
|
||||
let r = new Rank(REDIS_KEY.HERO_NUM_RANK, { serverId });
|
||||
r.setRankWithRoleInfo(role.roleId, role.heroNum, role.heroNumUpdatedAt, role);
|
||||
let r2 = new Rank(REDIS_KEY.SUM_CE_RANK, { serverId });
|
||||
r2.setRankWithRoleInfo(role.roleId, role.lv, role.updatedAt.getTime(), role);
|
||||
|
||||
role['heros'] = heros;
|
||||
role['equips'] = equips;
|
||||
role['consumeGoods'] = items;
|
||||
|
||||
@@ -8,7 +8,7 @@ import { UserGuildActivityRecModel } from "../../../db/UserGuildActivityRec";
|
||||
import { leaveCityChannel, addRoleToCityChannel, getCityChannelSid } from "../../../services/chatService";
|
||||
import { UserGuildModel } from "../../../db/UserGuild";
|
||||
import { GuildActivityRecordModel } from "../../../db/GuildActivityRec";
|
||||
import { nowSeconds, getBeforeSeconds } from "../../../pubUtils/timeUtil";
|
||||
import { nowSeconds, getBeforeSeconds, getNextHourPoint } from "../../../pubUtils/timeUtil";
|
||||
import { getGoldObject } from "../../../pubUtils/itemUtils";
|
||||
import { GUILDACTIVITY } from "../../../pubUtils/dicParam";
|
||||
import { handleCost } from "../../../services/rewardService";
|
||||
@@ -233,10 +233,12 @@ export class CityActivityHandler {
|
||||
|
||||
// 更新redis数据
|
||||
let myR = new Rank(REDIS_KEY.USER_CITY_ACTIVITY, { serverId, guildCode });
|
||||
let myScore = await myR.setRankWithRoleInfo(roleId, damage, Date.now(), null, false, true);
|
||||
let myScore = await myR.setRankWithRoleInfo(roleId, damage, Date.now(), null, false);
|
||||
await myR.setExpire(getNextHourPoint(5));
|
||||
|
||||
let r = new Rank(REDIS_KEY.CITY_ACTIVITY, { serverId, cityId }, true );
|
||||
let guildScore = await r.setRankWithGuildInfo(guildCode, damage, Date.now(), null, true);
|
||||
await r.setExpire(getNextHourPoint(5));
|
||||
|
||||
gateHp = obj.getGateHpAndInc(serverId, cityId, dicCity.hp, -1 * damage);
|
||||
if(gateHp <= 0) {
|
||||
|
||||
@@ -13,6 +13,7 @@ import { getGuildChannelSid } from "../../../services/chatService";
|
||||
import { UserGuildModel } from "../../../db/UserGuild";
|
||||
import { GuildActivityCityModel } from "../../../db/GuildActivityCity";
|
||||
import { Rank } from "../../../services/rankService";
|
||||
import { getNextHourPoint } from "../../../pubUtils/timeUtil";
|
||||
|
||||
export default function (app: Application) {
|
||||
return new GateActivityHandler(app);
|
||||
@@ -138,10 +139,12 @@ export class GateActivityHandler {
|
||||
|
||||
// 更新redis数据
|
||||
let myR = new Rank(REDIS_KEY.USER_GATE_ACTIVITY, { serverId, guildCode }, false);
|
||||
let myScore = await myR.setRankWithRoleInfo(roleId, score, Date.now(), null, false, true);
|
||||
let myScore = await myR.setRankWithRoleInfo(roleId, score, Date.now(), null, false);
|
||||
await myR.setExpire(getNextHourPoint(5));
|
||||
|
||||
let r = new Rank(REDIS_KEY.GATE_ACTIVITY, { serverId }, true);
|
||||
let guildScore = await r.setRankWithGuildInfo(guildCode, score, Date.now(), null, true);
|
||||
await r.setExpire(getNextHourPoint(5));
|
||||
|
||||
// 更新数据库
|
||||
let rec = await UserGuildActivityRecModel.pushRecord(code, newRecords, round);
|
||||
|
||||
@@ -688,7 +688,7 @@ export class FriendHandler {
|
||||
}
|
||||
|
||||
let r = new Rank(REDIS_KEY.PVP_RANK, {});
|
||||
let rank = await r.getMyRank(oppoRoleId);//去redis中获取排名
|
||||
let rank = await r.getMyRank({ roleId: oppoRoleId });//去redis中获取排名
|
||||
|
||||
result = new PlayerDetail({...role, defCe: topLineupCe, heroes});
|
||||
result.setWarStar(role.warStar, rank, towerLv);
|
||||
|
||||
@@ -4,7 +4,7 @@ import { calPlayerCeAndSave, calAllHeroCe } from '../../../services/playerCeServ
|
||||
import { resResult, returnHeroCeRatio, deepCopy } from '../../../pubUtils/util';
|
||||
import { STATUS } from '../../../consts/statusCode';
|
||||
import { HeroModel, Connect } from '../../../db/Hero';
|
||||
import {CURRENCY_BY_TYPE, CURRENCY_TYPE, CONSUME_TYPE, HERO_GROW_MAX, HERO_SYSTEM_TYPE, ABI_STAGE, DEBUG_MAGIC_WORD, HERO_INITIAL_QUALITY} from '../../../consts';
|
||||
import {CURRENCY_BY_TYPE, CURRENCY_TYPE, CONSUME_TYPE, HERO_GROW_MAX, HERO_SYSTEM_TYPE, ABI_STAGE, DEBUG_MAGIC_WORD, HERO_INITIAL_QUALITY, REDIS_KEY} from '../../../consts';
|
||||
import { RoleModel } from '../../../db/Role';
|
||||
import { ItemModel } from '../../../db/Item';
|
||||
import { gameData, getHeroExpByLv, getHeroStarByQuality, getHeroWakeByQuality, getHeroLvByExp, getMaxGradeByjobClass, getJobByGradeAndClass, getFriendShipById, getFavourLvByExp } from '../../../pubUtils/data';
|
||||
@@ -14,6 +14,8 @@ import { pushComposeOrangeHero, pushHeroQualityUpMsg, pushHeroStarMax, pushHeroW
|
||||
import { calculatetopLineup } from '../../../pubUtils/playerCe';
|
||||
import { PvpDefenseModel } from '../../../db/PvpDefense';
|
||||
import { Attribute } from '../../../domain/roleField/attribute';
|
||||
import { nowSeconds } from '../../../pubUtils/timeUtil';
|
||||
import { Rank } from '../../../services/rankService';
|
||||
|
||||
export default function(app: Application) {
|
||||
return new HeroHandler(app);
|
||||
@@ -139,6 +141,10 @@ export class HeroHandler {
|
||||
let curHero = await HeroModel.createHero({
|
||||
roleId, serverId, roleName, hid, hName, star, quality, job, skins:[{id: initialSkin, enable: true}]
|
||||
});
|
||||
let role = await RoleModel.incRoleInfo(roleId, { heroNum: 1 }, { heroNumUpdatedAt: nowSeconds() });
|
||||
let r = new Rank(REDIS_KEY.HERO_NUM_RANK, { serverId });
|
||||
await r.setRankWithRoleInfo(roleId, role.heroNum, role.heroNumUpdatedAt, role);
|
||||
|
||||
await unlockFigure(sid, roleId, [{ type: FIGURE_UNLOCK_CONDITION.GET_HERO, paramHid: hid }]); // 解锁头像
|
||||
let hero = await calPlayerCeAndSave(HERO_SYSTEM_TYPE.INIT, sid, roleId, curHero, {});
|
||||
await calAllHeroCe(HERO_SYSTEM_TYPE.ADD_SKIN, sid, roleId, {}, [initialSkin])
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
import { Application, BackendSession } from "pinus";
|
||||
import { resResult, aesEncryptcfb } from "../../../pubUtils/util";
|
||||
import { STATUS, REDIS_KEY, ENCRYPT_KEY, ENCRYPT_IV } from "../../../consts";
|
||||
import { RoleModel, RoleType } from "../../../db/Role";
|
||||
import { resResult } from "../../../pubUtils/util";
|
||||
import { STATUS, REDIS_KEY, RANK_TYPE_TO_KEY, ROLE_SELECT, RANK_TYPE, HERO_SELECT, GUILD_SELECT } from "../../../consts";
|
||||
import { RoleModel } from "../../../db/Role";
|
||||
import { UserGuildModel } from "../../../db/UserGuild";
|
||||
import { GuildModel } from "../../../db/Guild";
|
||||
import { GuildRankParam } from "../../../domain/rank";
|
||||
import { HeroModel } from "../../../db/Hero";
|
||||
import { UserModel } from "../../../db/User";
|
||||
import { Rank } from "../../../services/rankService";
|
||||
import { redisClient } from "../../../services/redisService";
|
||||
import { nowSeconds } from "../../../pubUtils/timeUtil";
|
||||
|
||||
export default function (app: Application) {
|
||||
return new RoleHandler(app);
|
||||
@@ -23,7 +22,7 @@ export class RoleHandler {
|
||||
let roleName = session.get('roleName');
|
||||
let serverId = session.get('serverId');
|
||||
|
||||
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
role: [
|
||||
{ type: 1, roleId: "8l6HPZAbdS", roleName: "东方月初", head: 11219, frame: 11301, spine: 11419, lv: 40, vLv: 0, guildName: "军团A", ce: 464262, num: 464262, received: [], },
|
||||
@@ -43,40 +42,47 @@ export class RoleHandler {
|
||||
|
||||
async getRank(msg: { type: number }, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
let roleName = session.get('roleName');
|
||||
let serverId = session.get('serverId');
|
||||
|
||||
let { type } = msg;
|
||||
let redisKey = RANK_TYPE_TO_KEY.get(type);
|
||||
if(!redisKey) return resResult(STATUS.WRONG_PARMS);
|
||||
|
||||
let role = await RoleModel.findByRoleId(roleId, null, true);
|
||||
let { lv, vLv, head, frame, spine, guildName, ce } = role;
|
||||
|
||||
let lineup = [
|
||||
{ hid: 27, star: 6, colorStar: 6, lv: 96, quality: 3, job: 11 },
|
||||
{ hid: 32, star: 6, colorStar: 6, lv: 96, quality: 3, job: 1 },
|
||||
{ hid: 19, star: 6, colorStar: 6, lv: 96, quality: 3, job: 11 },
|
||||
{ hid: 11, star: 6, colorStar: 6, lv: 96, quality: 3, job: 11 },
|
||||
{ hid: 12, star: 6, colorStar: 6, lv: 96, quality: 3, job: 16 },
|
||||
{ hid: 8, star: 6, colorStar: 6, lv: 96, quality: 3, job: 1 }
|
||||
];
|
||||
if(type == 2) {
|
||||
lineup = [{ hid: 27, star: 6, colorStar: 6, lv: 96, quality: 3, job: 11 }]
|
||||
let r: Rank;
|
||||
switch(type) {
|
||||
case RANK_TYPE.TOP_LINTUP:
|
||||
case RANK_TYPE.TOP_HERO:
|
||||
case RANK_TYPE.SUM_CE:
|
||||
r = new Rank(redisKey, { serverId }, false, 0); break;
|
||||
default:
|
||||
r = new Rank(redisKey, { serverId }); break;
|
||||
}
|
||||
let { ranks, myRank } = await r.getRankListWithMyRank(roleId);
|
||||
if(!myRank) {
|
||||
let role = await RoleModel.findByRoleId(roleId, ROLE_SELECT.RANK, true);
|
||||
if(type == RANK_TYPE.TOP_LINTUP) {
|
||||
myRank = await r.generMyRankWithRole(roleId, role.topLineupCe, 0, role);
|
||||
} else if (type == RANK_TYPE.TOP_HERO) {
|
||||
let hero = await HeroModel.getMyTopHero(roleId, HERO_SELECT.RANK_LINEUP);
|
||||
myRank = await r.generMyRankWithHero(roleId, hero.hid, hero.ce, 0, hero, role);
|
||||
} else if (type == RANK_TYPE.HERO_NUM) {
|
||||
myRank = await r.generMyRankWithRole(roleId, role.heroNum, role.heroNumUpdatedAt, role);
|
||||
} else if (type == RANK_TYPE.USER_LV) {
|
||||
myRank = await r.generMyRankWithRole(roleId, role.lv, role.updatedAt.getTime(), role);
|
||||
} else if (type == RANK_TYPE.SUM_CE) {
|
||||
myRank = await r.generMyRankWithRole(roleId, role.ce, role.updatedAt.getTime(), role);
|
||||
} else if (type == RANK_TYPE.TOWER) {
|
||||
myRank = await r.generMyRankWithRole(roleId, role.towerLv, role.towerUpTime?.getTime()||0, role);
|
||||
} else if (type == RANK_TYPE.DUNGEON) {
|
||||
myRank = await r.generMyRankWithRole(roleId, role.dungeonWarId, role.dungeonUpdatedAt, role);
|
||||
} else if (type == RANK_TYPE.MAIN) {
|
||||
myRank = await r.generMyRankWithRole(roleId, role.mainWarId, role.mainUpdatedAt, role);
|
||||
} else if (type == RANK_TYPE.MAIN_ELITE) {
|
||||
myRank = await r.generMyRankWithRole(roleId, role.mainEliteWarId, role.mainEliteUpdatedAt, role);
|
||||
}
|
||||
}
|
||||
|
||||
let ranks = await RoleModel.getRank('tower', serverId, ["lv", "roleName", "vLv", "head", "frame", "spine", "guildName", "ce"], 1, 10);
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
type,
|
||||
ranks: ranks.map((cur, i) => {
|
||||
let { roleId, roleName, head, frame, spine, lv, vLv, ce } = cur;
|
||||
return {
|
||||
rank: i + 1, num: 323 - i, roleId, roleName, head, frame, spine, lv, vLv, guildName: `军团${i + 1}`, ce, lineup
|
||||
}
|
||||
}),
|
||||
myRank: {
|
||||
rank: 0, num: 104, roleId, roleName, head, frame, spine, lv, vLv, guildName, ce, lineup
|
||||
}
|
||||
});
|
||||
return resResult(STATUS.SUCCESS, { type, ranks, myRank });
|
||||
}
|
||||
|
||||
// 查看活跃排行榜
|
||||
@@ -87,47 +93,38 @@ export class RoleHandler {
|
||||
|
||||
let { type } = msg;
|
||||
|
||||
const myUserGuild = await UserGuildModel.getMyGuild(roleId, 'auth guildCode');
|
||||
if (!myUserGuild) return resResult(STATUS.GUILD_NOT_FOUND);
|
||||
let redisKey = RANK_TYPE_TO_KEY.get(type);
|
||||
if(!redisKey) return resResult(STATUS.WRONG_PARMS);
|
||||
|
||||
let r = new Rank(REDIS_KEY.GUILD_ACTIVE_RANK, { serverId });
|
||||
let { ranks, myRank } = await r.getRankListWithMyRank(myUserGuild.guildCode,);
|
||||
let r = new Rank(redisKey, { serverId });
|
||||
const myUserGuild = await UserGuildModel.getMyGuild(roleId, 'auth guildCode');
|
||||
let { ranks, myRank } = await r.getRankListWithMyRank({guildCode: myUserGuild?.guildCode||''});
|
||||
if (!myRank) {
|
||||
let guild = await GuildModel.findByCode(myUserGuild.guildCode, serverId, 'code icon name lv leader activeWeekly memberCnt');
|
||||
myRank = await r.generMyRankWithGuild(guild.code, guild.activeWeekly, guild.activeUpdateTime, guild);
|
||||
let guild = await GuildModel.findByCode(myUserGuild.guildCode, serverId, GUILD_SELECT.RANK);
|
||||
if(type == RANK_TYPE.GUILD_LV) {
|
||||
myRank = await r.generMyRankWithGuild(guild.code, guild.lv, guild.lvUpdateTime, guild);
|
||||
} else if(type == RANK_TYPE.GUILD_ACTIVE) {
|
||||
myRank = await r.generMyRankWithGuild(guild.code, guild.activeWeekly, guild.activeUpdateTime, guild);
|
||||
}
|
||||
}
|
||||
|
||||
return resResult(STATUS.SUCCESS, { type, ranks, myRank });
|
||||
}
|
||||
|
||||
// 查看活跃排行榜
|
||||
// 查看单个武将排行榜
|
||||
async getHeroRank(msg: { type: number, hid: number }, session: BackendSession) {
|
||||
|
||||
let roleId = session.get('roleId');
|
||||
let serverId = session.get('serverId')
|
||||
|
||||
let { type, hid } = msg;
|
||||
let redisKey = RANK_TYPE_TO_KEY.get(type);
|
||||
if(!redisKey) return resResult(STATUS.WRONG_PARMS);
|
||||
|
||||
let lineup = [
|
||||
{ hid: 27, star: 6, colorStar: 6, lv: 96, quality: 3, job: 11 },
|
||||
{ hid: 32, star: 6, colorStar: 6, lv: 96, quality: 3, job: 1 },
|
||||
{ hid: 19, star: 6, colorStar: 6, lv: 96, quality: 3, job: 11 },
|
||||
{ hid: 11, star: 6, colorStar: 6, lv: 96, quality: 3, job: 11 },
|
||||
{ hid: 12, star: 6, colorStar: 6, lv: 96, quality: 3, job: 16 },
|
||||
{ hid: 8, star: 6, colorStar: 6, lv: 96, quality: 3, job: 1 }
|
||||
]
|
||||
let ranks = await HeroModel.getRank(hid, serverId, null, 10);
|
||||
let r = new Rank(redisKey, { serverId, hid }, false, 0);
|
||||
let ranks = await r.getRankByRange();
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
type, hid, ranks: ranks.map((cur, i) => {
|
||||
let { ce, roleId, roleName, hid, star, colorStar, lv, quality } = cur;
|
||||
|
||||
return {
|
||||
rank: i + 1, num: ce, roleId, roleName, head: 11219, frame: 11301, spine: 11419, lv: 40, vLv: 0, guildName: "军团A", ce: 464262,
|
||||
hero: [{ hid, star, colorStar, lv, quality }],
|
||||
lineup
|
||||
}
|
||||
})
|
||||
type, hid, ranks
|
||||
});
|
||||
}
|
||||
|
||||
@@ -141,4 +138,11 @@ export class RoleHandler {
|
||||
})
|
||||
}
|
||||
|
||||
async test(msg: { }, session: BackendSession) {
|
||||
let roles = await RoleModel.find({}).lean();
|
||||
for(let role of roles) {
|
||||
let heroes = await HeroModel.find({ roleId: role.roleId }).lean();
|
||||
await RoleModel.updateRoleInfo(role.roleId, { heroNum: heroes.length, heroNumUpdatedAt: nowSeconds() });
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user