排行榜:武将单榜数据

This commit is contained in:
luying
2021-04-02 10:35:06 +08:00
parent 18156c4c31
commit c548320490
7 changed files with 69 additions and 32 deletions

View File

@@ -6,8 +6,9 @@ import { UserGuildModel } from "../../../db/UserGuild";
import { existsRank, initSingleRankWithServer, getRank } from "../../../services/redisService";
import { GuildModel } from "../../../db/Guild";
import { GuildRankParam } from "../../../domain/rank";
import { HeroModel } from "../../../db/Hero";
export default function(app: Application) {
export default function (app: Application) {
return new RoleHandler(app);
}
@@ -15,7 +16,7 @@ export class RoleHandler {
constructor(private app: Application) {
}
async getGeneralRank(msg: { }, session: BackendSession) {
async getGeneralRank(msg: {}, session: BackendSession) {
let roleId = session.get('roleId');
let roleName = session.get('roleName');
let serverId = session.get('serverId');
@@ -23,17 +24,17 @@ export class RoleHandler {
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: [],},
{ type: 2, roleId: "8l6HPZAbdS", roleName: "东方月初", head: 11219, frame: 11301, spine: 11419, lv: 40, vLv: 0, guildName: "军团A", ce: 464262, num: 64262, received: [],},
{ type: 3, roleId: "8l6HPZAbdS", roleName: "东方月初", head: 11219, frame: 11301, spine: 11419, lv: 40, vLv: 0, guildName: "军团A", ce: 464262, num: 100, received: [],},
{ type: 4, roleId: "8l6HPZAbdS", roleName: "东方月初", head: 11219, frame: 11301, spine: 11419, lv: 40, vLv: 0, guildName: "军团A", ce: 464262, num: 99, received: [],},
{ type: 1, roleId: "8l6HPZAbdS", roleName: "东方月初", head: 11219, frame: 11301, spine: 11419, lv: 40, vLv: 0, guildName: "军团A", ce: 464262, num: 464262, received: [], },
{ type: 2, roleId: "8l6HPZAbdS", roleName: "东方月初", head: 11219, frame: 11301, spine: 11419, lv: 40, vLv: 0, guildName: "军团A", ce: 464262, num: 64262, received: [], },
{ type: 3, roleId: "8l6HPZAbdS", roleName: "东方月初", head: 11219, frame: 11301, spine: 11419, lv: 40, vLv: 0, guildName: "军团A", ce: 464262, num: 100, received: [], },
{ type: 4, roleId: "8l6HPZAbdS", roleName: "东方月初", head: 11219, frame: 11301, spine: 11419, lv: 40, vLv: 0, guildName: "军团A", ce: 464262, num: 99, received: [], },
],
battle: [ // 右边列
{type: 5, roleId: "8l6HPZAbdS", roleName: "东方月初", head: 11219, frame: 11301, spine: 11419, guildName: "军团A", hid: 19, skinId: 41020, num: 464262, received: [],},
{type: 6, roleId: "8l6HPZAbdS", roleName: "东方月初", head: 11219, frame: 11301, spine: 11419, guildName: "军团A", hid: 19, skinId: 41020, num: 99, received: [],},
{type: 7, roleId: "8l6HPZAbdS", roleName: "东方月初", head: 11219, frame: 11301, spine: 11419, guildName: "军团A", hid: 19, skinId: 41020, num: 5060, received: [],},
{type: 8, roleId: "8l6HPZAbdS", roleName: "东方月初", head: 11219, frame: 11301, spine: 11419, guildName: "军团A", hid: 19, skinId: 41020, num: 323, received: [],},
{type: 9, roleId: "8l6HPZAbdS", roleName: "东方月初", head: 11219, frame: 11301, spine: 11419, guildName: "军团A", hid: 19, skinId: 41020, num: 9224, received: [],},
{ type: 5, roleId: "8l6HPZAbdS", roleName: "东方月初", head: 11219, frame: 11301, spine: 11419, guildName: "军团A", hid: 19, skinId: 41020, num: 464262, received: [], },
{ type: 6, roleId: "8l6HPZAbdS", roleName: "东方月初", head: 11219, frame: 11301, spine: 11419, guildName: "军团A", hid: 19, skinId: 41020, num: 99, received: [], },
{ type: 7, roleId: "8l6HPZAbdS", roleName: "东方月初", head: 11219, frame: 11301, spine: 11419, guildName: "军团A", hid: 19, skinId: 41020, num: 5060, received: [], },
{ type: 8, roleId: "8l6HPZAbdS", roleName: "东方月初", head: 11219, frame: 11301, spine: 11419, guildName: "军团A", hid: 19, skinId: 41020, num: 323, received: [], },
{ type: 9, roleId: "8l6HPZAbdS", roleName: "东方月初", head: 11219, frame: 11301, spine: 11419, guildName: "军团A", hid: 19, skinId: 41020, num: 9224, received: [], },
]
});
}
@@ -64,11 +65,11 @@ export class RoleHandler {
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
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
rank: 0, num: 104, roleId, roleName, head, frame, spine, lv, vLv, guildName, ce, lineup
}
});
}
@@ -82,23 +83,54 @@ export class RoleHandler {
let { type } = msg;
const myUserGuild = await UserGuildModel.getMyGuild(roleId, 'auth guildCode');
if(!myUserGuild) return resResult(STATUS.GUILD_NOT_FOUND);
if (!myUserGuild) return resResult(STATUS.GUILD_NOT_FOUND);
const hasRank = await existsRank(REDIS_KEY.GUILD_ACTIVE_RANK, serverId);
if(!hasRank) await initSingleRankWithServer(REDIS_KEY.GUILD_ACTIVE_RANK, serverId);
let {ranks, myRank} = await getRank(REDIS_KEY.GUILD_ACTIVE_RANK, serverId, myUserGuild.guildCode);
if(!myRank) {
if (!hasRank) await initSingleRankWithServer(REDIS_KEY.GUILD_ACTIVE_RANK, serverId);
let { ranks, myRank } = await getRank(REDIS_KEY.GUILD_ACTIVE_RANK, serverId, myUserGuild.guildCode);
if (!myRank) {
let guild = await GuildModel.findByCode(myUserGuild.guildCode, serverId, 'code icon name lv leader activeWeekly memberCnt');
let {icon, name, lv, leader, activeWeekly, memberCnt} = guild;
let { icon, name, lv, leader, activeWeekly, memberCnt } = guild;
let _leader = <RoleType>leader;
let param = new GuildRankParam(icon, name, lv, _leader, memberCnt);
myRank = {...param, num: activeWeekly, rank: 0};
myRank = { ...param, num: activeWeekly, rank: 0 };
}
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 lineup = [
{ hid: 27, star: 6, colorStar: 6, lv: 96, quality: 3 },
{ hid: 32, star: 6, colorStar: 6, lv: 96, quality: 3 },
{ hid: 19, star: 6, colorStar: 6, lv: 96, quality: 3 },
{ hid: 11, star: 6, colorStar: 6, lv: 96, quality: 3 },
{ hid: 12, star: 6, colorStar: 6, lv: 96, quality: 3 },
{ hid: 8, star: 6, colorStar: 6, lv: 96, quality: 3 }
]
let ranks = await HeroModel.getRank(hid, serverId, null, 200);
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
}
})
});
}
async receiveReward(msg: { type: number, id: number }, session: BackendSession) {
let { type } = msg;