排行榜:奖励显示首通信息
This commit is contained in:
@@ -4,7 +4,7 @@ import { STATUS, RANK_TYPE_TO_KEY, ROLE_SELECT, RANK_TYPE, HERO_SELECT, GUILD_SE
|
||||
import { RoleModel } from "../../../db/Role";
|
||||
import { UserGuildModel } from "../../../db/UserGuild";
|
||||
import { GuildModel } from "../../../db/Guild";
|
||||
import { Rank, getGeneralRank } from "../../../services/rankService";
|
||||
import { Rank, getGeneralRank, getRankFirstReward } from "../../../services/rankService";
|
||||
import { nowSeconds } from "../../../pubUtils/timeUtil";
|
||||
import { gameData } from "../../../pubUtils/data";
|
||||
import { addItems } from "../../../services/rewardService";
|
||||
@@ -34,6 +34,20 @@ export class RoleHandler {
|
||||
return resResult(STATUS.SUCCESS, { ranks });
|
||||
}
|
||||
|
||||
|
||||
async getRankReward(msg: {}, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
let roleName = session.get('roleName');
|
||||
let serverId = session.get('serverId');
|
||||
|
||||
let role = await RoleModel.findByRoleId(roleId, 'rankReceived');
|
||||
if (!role) return resResult(STATUS.WRONG_PARMS);
|
||||
|
||||
let ranks = await getRankFirstReward(role, serverId);
|
||||
|
||||
return resResult(STATUS.SUCCESS, { ranks });
|
||||
}
|
||||
|
||||
async getRank(msg: { type: number }, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
let serverId = session.get('serverId');
|
||||
|
||||
@@ -58,7 +58,9 @@ export class RoleHandler {
|
||||
}
|
||||
await createHero.createWithInitInfo(infos, initInfos.figureInfo);
|
||||
await createHero.pushMessage(pinus, sid);
|
||||
console.log('updateRedisRank before', Date.now())
|
||||
await createHero.updateRedisRank(Rank);
|
||||
console.log('updateRedisRank after', Date.now())
|
||||
let heroes = createHero.getResultHeroes();
|
||||
|
||||
console.log('****** createHeroes after', Date.now())
|
||||
|
||||
@@ -4,6 +4,7 @@ import { reloadResources } from '../../../pubUtils/data';
|
||||
import { HeroUpdate } from '../../../db/Hero';
|
||||
import { RoleUpdate } from '../../../db/Role';
|
||||
import { SkinUpdate } from '../../../db/Skin';
|
||||
import { RankFirstModel, RankFirstType } from '../../../db/RankFirst';
|
||||
import { getInitRoleInfo } from '../../../pubUtils/roleUtil';
|
||||
import { DEFAULT_HEROES } from '../../../consts';
|
||||
import { Figure } from '../../../domain/dbGeneral';
|
||||
@@ -18,12 +19,35 @@ export class RoleRemote {
|
||||
this.app = app;
|
||||
this.channelService = app.get('channelService');
|
||||
this.setInitRole();
|
||||
this.loadRankFirst();
|
||||
}
|
||||
private channelService: ChannelService;
|
||||
private initHeroes: Map<number, HeroUpdate> = new Map(); // hid => hero
|
||||
private initRole: RoleUpdate = {};
|
||||
private initSkins: Map<number, SkinUpdate> = new Map(); // hid => skin
|
||||
private figureInfo: {heads: Figure[], frames: Figure[], spines: Figure[]};
|
||||
private rankFirstRewards: Map<number, Map<number, RankFirstType>> = new Map();
|
||||
|
||||
private async loadRankFirst() {
|
||||
let rankFirstRewards = await RankFirstModel.findAllRankRewards();
|
||||
for(let rank of rankFirstRewards) {
|
||||
if(!this.rankFirstRewards.has(rank.serverId)) {
|
||||
this.rankFirstRewards.set(rank.serverId, new Map());
|
||||
}
|
||||
this.rankFirstRewards.get(rank.serverId).set(rank.id, rank);
|
||||
}
|
||||
}
|
||||
|
||||
public setRankFirst(rank: RankFirstType) {
|
||||
if(!this.rankFirstRewards.has(rank.serverId)) {
|
||||
this.rankFirstRewards.set(rank.serverId, new Map());
|
||||
}
|
||||
this.rankFirstRewards.get(rank.serverId).set(rank.id, rank);
|
||||
}
|
||||
|
||||
public getRankFirstById(serverId: number, id: number) {
|
||||
return this.rankFirstRewards.get(serverId)?.get(id);
|
||||
}
|
||||
|
||||
public setInitRole() {
|
||||
let result = getInitRoleInfo();
|
||||
|
||||
Reference in New Issue
Block a user