import { nowSeconds } from '../../pubUtils/timeUtil'; import { RoleType } from '../../db/Role'; import { ServerlistType } from '../../db/Serverlist'; export class ServerParam { id: number; // 区号 serverId: number; // 显示的区号 serverStr: string; // 显示的区号 S1 name: string; // 区名 host: string = ''; // pinus地址 port: number = 0; // pinus端口 status: number; // 状态 openTime: number; // 开服时间 stopRegistTime: number; // 开服时间 constructor(server: ServerlistType, status: number) { this.id = server.id; this.serverId = server.serverId; this.serverStr = `${server.prefix}${server.serverId}`; this.name = server.name; this.status = status; this.openTime = server.openTime; this.stopRegistTime = server.stopRegisterTime; } } export class GroupParam { groupId: number; // 大区号 groupName: string; // 大区名 groupStr: string; // 大区内小区编号 S1-S10 servers: ServerParam[]; // 区 constructor(server: ServerlistType) { this.groupId = server.groupId; this.groupName = server.groupName; this.groupStr = `${server.prefix}${server.serverId}`; this.servers = new Array(); } public pushServer(server: ServerlistType, status: number) { let srv = new ServerParam(server, status); this.servers.push(srv); this.servers.sort((a, b) => b.serverId - a.serverId); let min = this.servers[this.servers.length - 1]; let max = this.servers[0]; this.groupStr = `${min.serverStr}-${max.serverStr}` } } export class ServerParamWithRole extends ServerParam { groupId: number; // 大区号 groupName: string; // 大区名 roleId: string; // 玩家账号 roleName: string; // 玩家名 head: number; // 头像 frame: number; // 相框 spine: number; // 形象 lv: number; // 等级 updatedAt: Date; isClose: boolean; // 是否已经注销 closeTime: number; // 注销生效时间 constructor(role: RoleType, server: ServerlistType, status: number) { super(server, status); this.groupId = server.groupId; this.groupName = server.groupName; this.roleId = role.roleId; this.roleName = role.roleName; this.head = role.head; this.frame = role.frame; this.spine = role.spine; this.lv = role.lv; this.updatedAt = role.updatedAt; this.isClose = role.closeTime > 0 && role.closeTime < nowSeconds(); this.closeTime = role.closeTime||0; } }