✨ feat(db): 修改hero表数据库操作方式

This commit is contained in:
liangtongchuan
2023-05-06 17:07:48 +08:00
parent 3f3c1af549
commit 297e1af7ee
27 changed files with 133 additions and 137 deletions
@@ -2,7 +2,7 @@ import { ACTIVITY_TYPE } from '../../consts';
import { ActivityModel, ActivityModelType } from '../../db/Activity';
import { ActivityGrowthModel, ActivityGrowthModelType } from '../../db/ActivityGrowth';
import { ActivityGrowthPointModel, ActivityGrowthPointModelType } from '../../db/ActivityGrowthPoint';
import { HeroModel } from '../../db/Hero';
import Hero from '../../db/Hero';
import { GrowthData } from '../../domain/activityField/growthField';
import { getRoleCreateTime, getServerCreateTime } from '../redisService';
import { getActivitiesByType, getActivityById } from './activityService';
@@ -24,7 +24,7 @@ export async function growthActivity(serverId: number, roleId: string) {
let playerRecords: ActivityGrowthModelType[] = await ActivityGrowthModel.findData(serverId, activityData.activityId, roleId);
let playerPointRecord: ActivityGrowthPointModelType = await ActivityGrowthPointModel.findData(serverId, activityData.activityId, roleId);
let userHeroes = await HeroModel.findByRole(roleId);
let userHeroes = await Hero.findByRole(roleId);
let createTime = await getRoleCreateTime(roleId);
let serverTime = await getServerCreateTime(serverId);
let playerData = new GrowthData(activityData, createTime, serverTime);
@@ -46,7 +46,7 @@ export async function getPlayerGrowthData(activityId: number, serverId: number,
let playerRecords: ActivityGrowthModelType[] = await ActivityGrowthModel.findData(serverId, activityId, roleId);
let playerPointRecord: ActivityGrowthPointModelType = await ActivityGrowthPointModel.findData(serverId, activityId, roleId);
let userHeroes = await HeroModel.findByRole(roleId);
let userHeroes = await Hero.findByRole(roleId);
let createTime = await getRoleCreateTime(roleId);
let serverTime = await getServerCreateTime(serverId);
+2 -2
View File
@@ -35,7 +35,7 @@ import Item, { ItemModel } from '../db/Item';
import { PvpDefenseModel } from '../db/PvpDefense';
import { getDonation } from './donateService';
import { refChallengeCnt, sendLastSeasonRewardIfNotSent } from './pvpService';
import { HeroModel } from '../db/Hero';
import Hero from '../db/Hero';
import { JewelModel } from '../db/Jewel';
import { SkinModel } from '../db/Skin';
import { getAp } from './actionPointService';
@@ -121,7 +121,7 @@ export async function getModuleData(type: string, data: { role: RoleType, sessio
let { hasGuild, guild, userGuild, guildResult } = guildData;
switch (type) {
case 'role':
let heros = await HeroModel.findByRole(role.roleId, [], HERO_SELECT.ENTRY, true);
let heros = await Hero.findByRole(role.roleId, [], HERO_SELECT.ENTRY, true);
let jewels = await JewelModel.findbyRole(role.roleId, JEWEL_SELECT.ENTRY);
let items = await ItemModel.findbyRole(role.roleId, ITEM_SELECT.ENTRY);
let skins = await SkinModel.findbyRole(role.roleId, SKIN_SELECT.ENTRY);
@@ -25,7 +25,7 @@ import { GVGUserDataModel } from "../../db/GVGUserData";
import Role from "../../db/Role";
import { getFightTimeByPeriod } from "./gvgFightService";
import { getRandSingleEelm } from "../../pubUtils/util";
import { HeroModel, HeroType } from "../../db/Hero";
import Hero, { HeroType } from "../../db/Hero";
import { ArtifactModel } from "../../db/Artifact";
import { getHeroesAttributes } from "../playerCeService";
import { CounterModel } from "../../db/Counter";
@@ -187,7 +187,7 @@ export async function refreshTeams(configId: number, groupKey: string, roleId: s
if(team.configId != configId || (hasConfirm && team.confirmConfigId != configId)) {
let { teamCode, maxDurability, lineup } = team;
let { lv, title, roleName, guildCode } = await Role.findByRoleId(roleId, 'lv title roleName guildCode');
let heroes = await HeroModel.findByHidRange(lineup.map(hero => hero.actorId), roleId);
let heroes = await Hero.findByHidRange(lineup.map(hero => hero.actorId), roleId);
let { newLineup, newLineupCe } = await generNewLineup(roleId, heroes, lineup.map(({ actorId, dataId, outIndex }) => ({ actorId, dataId, order: outIndex })));
let addUpdate = hasConfirm? { confirmConfigId: configId }: {};
let newTeam = await GVGTeamModel.refreshByConfig(teamCode, { configId, lv, title, durability: maxDurability, cityId: 0, areaId: 0, pointId: 0, roleName, guildCode, leagueCode: myLeague.leagueCode, leagueName: myLeague.name, groupKey, lineup: newLineup, lineupCe: newLineupCe, ...addUpdate });
@@ -12,7 +12,7 @@ import { GVGVestigeLockModel } from "../../db/GVGVestigeLock";
import { GVGVestigeRankModel, GVGVestigeRankType, GVGVestigeRankUpdate } from "../../db/GVGVestigeRank";
import { GVGVestigeRecType } from "../../db/GVGVestigeRec";
import { GVGVestigeSumRankModel, GVGVestigeSumRankType } from "../../db/GVGVestigeSumRank";
import { HeroModel, HeroType } from "../../db/Hero";
import Hero, { HeroType } from "../../db/Hero";
import Role from "../../db/Role";
import { OppDetailData, OppPlayerHeroInfo, OppPlayerInfo } from "../../domain/gvgField/gvgDb";
import { GVGVestigeOppPlayer } from "../../domain/gvgField/returnData";
@@ -234,7 +234,7 @@ export async function generateDefenseInfo(roleId: string, vestigeId: number, ran
let lineup = playerVestigeData.lineup||[];
let hids = lineup.map(cur => cur.actorId);
let role = await Role.findByRoleId(playerVestigeData.roleId, 'roleId roleName heads head frames frame spines spine title lv');
let heroes = await HeroModel.findByHidRange(hids, playerVestigeData.roleId, 'hid skinId lv star colorStar quality ce');
let heroes = await Hero.findByHidRange(hids, playerVestigeData.roleId, 'hid skinId lv star colorStar quality ce');
let league = await GVGLeagueModel.findByCode(playerVestigeData.leagueCode);
let info = new OppPlayerInfo();
@@ -266,7 +266,7 @@ export async function getOppDetailData(rec: GVGVestigeRecType) {
const dicWarJson = gameData.warJson.get(dicWar.dispatchJsonId);
const defenseInfo = rec.defenseInfo.heroes||[];
const hids = defenseInfo.map(cur => cur.hid);
const heroes = await HeroModel.findByHidRange(hids, rec.defenseRoleId, 'hid lv quality star colorStar skins ce skinId');
const heroes = await Hero.findByHidRange(hids, rec.defenseRoleId, 'hid lv quality star colorStar skins ce skinId');
const artifactSeids = heroes.map(hero => hero.artifact);
const artifacts = await ArtifactModel.findbySeqIds(rec.defenseRoleId, artifactSeids);
result.setByPlayer(dicWarJson, defenseInfo, heroes, artifacts);
@@ -1,5 +1,5 @@
import { HeroModel, HeroType } from '../db/Hero';
import Hero, { HeroType } from '../db/Hero';
import Role, { RoleType, WarCount } from '../db/Role'
import { getLvByExp, getExpByLv, gameData, getDicApByLv } from '../pubUtils/data';
import { updateRoleOnlineInfo, updateUserInfo } from './redisService';
@@ -92,7 +92,7 @@ export async function checkBattleHeroes(roleId: string, seqIds: Array<number> =
let flag = true;
// if (seqIds.length <= 0) flag = false;
const findHeroes = await HeroModel.findBySeqIdRange(seqIds, roleId);
const findHeroes = await Hero.findBySeqIdRange(seqIds, roleId);
if (findHeroes.length != seqIds.length) flag = false;
for (let seqId of seqIds) {
let hero = findHeroes.find(cur => cur.seqId == seqId);
@@ -110,7 +110,7 @@ export async function checkBattleHeroesByHid(roleId: string, heroes: Array<numbe
let flag = true;
// if (heroes.length <= 0) flag = false;
const findHeroes = await HeroModel.findByHidRange(heroes, roleId);
const findHeroes = await Hero.findByHidRange(heroes, roleId);
if (findHeroes.length != heroes.length) flag = false;
for (let hid of heroes) {
let hero = findHeroes.find(cur => cur.hid == hid);
+4 -4
View File
@@ -2,7 +2,7 @@
* 体力系统
*/
import { EPlace, HeroModel, HeroType, HeroUpdate } from '../db/Hero';
import Hero, { HeroType, HeroUpdate } from '../db/Hero';
import Role, { RoleUpdate, RoleType } from '../db/Role';
import { Rank } from './rankService';
@@ -437,7 +437,7 @@ export async function calculateCes(type: HERO_SYSTEM_TYPE, roleId: string, serve
if(heroCe.has(hid)) {
let { ce, inc } = heroCe.get(hid);
let heroUpdate = heroUpdates.get(hid)||{};
let hero = await HeroModel.updateHeroInfo(roleId, hid, { ...heroUpdate, ce });
let hero = await Hero.updateHeroInfo(roleId, hid, { ...heroUpdate, ce });
calCe.setResultHero(hero);
heroes.push(hero);
await PvpDefenseModel.updateCe(roleId, hid, ce); // 更新pvp防守阵战力
@@ -445,13 +445,13 @@ export async function calculateCes(type: HERO_SYSTEM_TYPE, roleId: string, serve
await GVGVestigeRankModel.updateCe(roleId, hid, ce);
pushHeros.push({ hid, ce, incHeroCe: inc });
} else {
let hero = await HeroModel.updateHeroInfo(roleId, hid, heroUpdate);
let hero = await Hero.updateHeroInfo(roleId, hid, heroUpdate);
heroes.push(hero);
}
}
for(let [hid, { ce, inc }] of heroCe) {
if(changeHids.indexOf(hid) == -1) {
let hero = await HeroModel.updateHeroInfo(roleId, hid, { ce });
let hero = await Hero.updateHeroInfo(roleId, hid, { ce });
await PvpDefenseModel.updateCe(roleId, hid, ce); // 更新pvp防守阵战力
await LadderMatchModel.updateCe(roleId, hid, ce);
await GVGVestigeRankModel.updateCe(roleId, hid, ce);
+4 -4
View File
@@ -11,7 +11,7 @@ import { EXTERIOR, PVP } from '../pubUtils/dicParam';
import { PVPConfigModel } from '../db/PvpConfig'
import { nowSeconds, getTimeFun } from '../pubUtils/timeUtil';
import { HeroesRecord, PvpRecordPlayerInfo } from '../db/PvpRecord';
import { HeroModel, HeroType } from '../db/Hero';
import Hero, { HeroType } from '../db/Hero';
import { AttributeCal } from '../domain/roleField/attribute';
import { PvpEnemies, PvpHeroInfo, PvpOtherHeroes } from '../domain/dbGeneral';
import { pinus } from 'pinus';
@@ -219,7 +219,7 @@ async function generPlayerOppHis(pvpdefense: PvpDefenseType, roleId: string, pos
let seasonNum: number = pinus.app.get('pvpSeasonNum');
let r = new Rank(REDIS_KEY.PVP_RANK, { seasonNum, groupId });
let rankLv = await r.getMyRank({ roleId: role.roleId });
let dbHeroes = await HeroModel.findByRole(role.roleId, [{ field: 'ce', sortBy: -1 }]);
let dbHeroes = await Hero.findByRole(role.roleId, [{ field: 'ce', sortBy: -1 }]);
let heroes = new Array<PvpEnemies>();
let otherHeroes = new Array<PvpOtherHeroes>(); // 阵容外的所有武将信息
let defCe = 0;
@@ -473,7 +473,7 @@ export async function generMyRecInfo(pvpDefense: PvpDefenseType, role: RoleType,
hid, addScore: 0, plusScore: 0, score: curHeroScore ? curHeroScore.score : 0
});
}
const myHero = await HeroModel.findByHidAndRole(hid, roleId, 'quality star colorStar lv skinId');
const myHero = await Hero.findByHidAndRole(hid, roleId, 'quality star colorStar lv skinId');
let record = new HeroesRecord();
record.setByHero(myHero, params);
@@ -720,7 +720,7 @@ export async function generPvpLineupCe(roleId: string, lineupCe: LineupCe[], att
}
}
}
let heroes = await HeroModel.findByHidRange(newHids, roleId, 'hid ce', true);
let heroes = await Hero.findByHidRange(newHids, roleId, 'hid ce', true);
for(let { hid, ce } of heroes) {
newLineupCe.push({ hid, ce });
}
+12 -12
View File
@@ -3,7 +3,7 @@ import { getInfoKeyByRedisKey, ROLE_SELECT, GUILD_SELECT, REDIS_KEY, HERO_SELECT
import { redisClient, delKeys, saveLadderDefCeByData } from "./redisService";
import Role, { RoleType } from "../db/Role";
import { GuildType, GuildModel } from "../db/Guild";
import { HeroModel, HeroType, HeroUpdate } from "../db/Hero";
import Hero, { HeroType, HeroUpdate } from "../db/Hero";
import { PvpDefenseModel } from "../db/PvpDefense";
import { gameData } from "../pubUtils/data";
import { getSeconds, nowSeconds } from "../pubUtils/timeUtil";
@@ -310,7 +310,7 @@ export class Rank {
if(!role) return;
}
let { topLineup = [] } = role;
let heroes = await HeroModel.findByRole(roleId, [], HERO_SELECT.RANK_LINEUP);
let heroes = await Hero.findByRole(roleId, [], HERO_SELECT.RANK_LINEUP);
let arr = new Array<LineupParam>();
for (let { hid } of topLineup) {
let curHero = heroes.find(cur => cur.hid == hid);
@@ -322,7 +322,7 @@ export class Rank {
await this.setUserInfo(infoKey, { roleId }, arr);
} else if (infoKey == REDIS_KEY.HERO_INFO) {
if (!hero) {
hero = await HeroModel.findByHidAndRole(hid, roleId, HERO_SELECT.RANK_LINEUP, true);
hero = await Hero.findByHidAndRole(hid, roleId, HERO_SELECT.RANK_LINEUP, true);
if(!hero) return;
}
let arr = new Array<LineupParam>();
@@ -340,7 +340,7 @@ export class Rank {
if (dungeonWarId > 0) {
let cur = dungeonHeroes.find(cur => cur.battleId == dungeonWarId);
let lineup = cur ? cur.heroes : [];
let heroes = await HeroModel.findByRole(roleId, [], HERO_SELECT.RANK_LINEUP);
let heroes = await Hero.findByRole(roleId, [], HERO_SELECT.RANK_LINEUP);
let arr = new Array<LineupParam>();
for (let seqId of lineup) {
let curHero = heroes.find(cur => cur.seqId == seqId);
@@ -357,7 +357,7 @@ export class Rank {
if(!role) return;
}
let { showLineup, topLineup = [] } = role;
let heroes = await HeroModel.findByRole(roleId, [], HERO_SELECT.RANK_LINEUP);
let heroes = await Hero.findByRole(roleId, [], HERO_SELECT.RANK_LINEUP);
let arr = new Array<LineupParam>();
if (!showLineup) showLineup = topLineup.map(cur => cur.hid);
for (let hid of showLineup) {
@@ -626,7 +626,7 @@ export class Rank {
}
let { topLineup } = role;
let heroes = await HeroModel.findByRole(myId.roleId, [], HERO_SELECT.HERO_DETAIL);
let heroes = await Hero.findByRole(myId.roleId, [], HERO_SELECT.HERO_DETAIL);
let arr = new Array<LineupParam>();
for (let { hid } of topLineup) {
let curHero = heroes.find(cur => cur.hid == hid);
@@ -647,7 +647,7 @@ export class Rank {
let hasCurUser = await redisClient().hexistsAsync(extraKey, this.composeFields(extraKey, myId));
if (!hasCurUser) {
if (!hero) {
hero = await HeroModel.findByHidAndRole(myId.hid, myId.roleId, HERO_SELECT.RANK_LINEUP);
hero = await Hero.findByHidAndRole(myId.hid, myId.roleId, HERO_SELECT.RANK_LINEUP);
}
let arr = new Array<LineupParam>();
let lineParam = new LineupParam(hero);
@@ -677,7 +677,7 @@ export class Rank {
let { dungeonWarId, dungeonHeroes } = role;
let cur = dungeonHeroes.find(cur => cur.battleId == dungeonWarId);
let lineup = cur ? cur.heroes : [];
let heroes = await HeroModel.findByRole(myId.roleId, [], HERO_SELECT.RANK_LINEUP);
let heroes = await Hero.findByRole(myId.roleId, [], HERO_SELECT.RANK_LINEUP);
let arr = new Array<LineupParam>();
for (let seqId of lineup) {
let curHero = heroes.find(cur => cur.seqId == seqId);
@@ -702,7 +702,7 @@ export class Rank {
}
let { showLineup, topLineup = [] } = role;
let heroes = await HeroModel.findByRole(myId.roleId, [], HERO_SELECT.HERO_DETAIL);
let heroes = await Hero.findByRole(myId.roleId, [], HERO_SELECT.HERO_DETAIL);
let arr = new Array<LineupParam>();
if (!showLineup) showLineup = topLineup.map(cur => cur.hid);
for (let hid of showLineup) {
@@ -1112,7 +1112,7 @@ export async function setRankRedisFromDb(type: string, args?: { serverId?: numbe
}
} else if (type == REDIS_KEY.TOP_HERO_RANK) {
let serverId = args.serverId;
let ranks = await HeroModel.getAllRank(serverId, HERO_SELECT.RANK_LINEUP);
let ranks = await Hero.getAllRank(serverId, HERO_SELECT.RANK_LINEUP);
let r = new Rank(type, { serverId });
r.setIsInit(true);
for (let hero of ranks) {
@@ -1170,7 +1170,7 @@ export async function setRankRedisFromDb(type: string, args?: { serverId?: numbe
let serverId = args.serverId;
for (let [hid] of gameData.recruit) {
let ranks = await HeroModel.getRank(hid, serverId, HERO_SELECT.RANK_LINEUP);
let ranks = await Hero.getRank(hid, serverId, HERO_SELECT.RANK_LINEUP);
let r = new Rank(type, { serverId, hid });
r.setIsInit(true);
for (let hero of ranks) {
@@ -1303,7 +1303,7 @@ export async function getRankInHandler(redisKey: REDIS_KEY, type: RANK_TYPE, key
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);
let hero = await Hero.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);
+3 -3
View File
@@ -1,6 +1,6 @@
import { FIGURE_UNLOCK_CONDITION, ITEM_CHANGE_REASON, REDIS_KEY, STATUS, TASK_TYPE, HERO_SYSTEM_TYPE, LINEUP_NUM, COUNTER, PUSH_ROUTE } from "../../consts";
import { SkinModel } from "../../db/Skin";
import { HeroModel, HeroSkin, HeroType, HeroUpdate } from "../../db/Hero";
import Hero, { HeroSkin, HeroType, HeroUpdate } from "../../db/Hero";
import { SkinUpdate } from "../../db/Skin";
import { nowSeconds } from "../../pubUtils/timeUtil";
import { CreateHeroParam, HeroParam, HeroShowParam } from "../../domain/roleField/hero";
@@ -25,7 +25,7 @@ import { pushGetHero } from "../sysChatService";
export async function createHeroes(roleId: string, roleName: string, sid: string, serverId: number, heroInfo: CreateHeroParam[], initRoleInfos?: RoleUpdate) {
heroInfo = filterHeroes(heroInfo, obj => obj.hid, roleId);
let hids = heroInfo.map(cur => cur.hid);
let userHeroesMap = await HeroModel.findMapByHidRange(hids, roleId);
let userHeroesMap = await Hero.findMapByHidRange(hids, roleId);
let createHeroeInfos: CreateHeroParam[] = [], pieces: ItemInter[] = [];
for (let h of heroInfo) {
@@ -55,7 +55,7 @@ import { pushGetHero } from "../sysChatService";
skins.push(initSkin); // 初始皮肤
let seqId = await CounterModel.getNewCounter(COUNTER.HID) || -1;
let initHeroSkins = [initSkin, ...originSkins].map((skin, index) => new HeroSkin(skin, index == 0));
let initHero = HeroModel.getInitInfo(hid, { ...info, seqId, serverId, roleId, roleName, skins: initHeroSkins });
let initHero = Hero.getInitInfo(hid, { ...info, seqId, serverId, roleId, roleName, skins: initHeroSkins });
heroInfos.set(hid, initHero);
figureConditions.push({ type: FIGURE_UNLOCK_CONDITION.GET_HERO, paramHid: hid });
incHeroNum ++;
@@ -6,7 +6,7 @@ import { ItemModel, } from '../../db/Item';
import { ItemInter, } from '../../pubUtils/interface';
import { gameData, getDefArtifactByGid } from '../../pubUtils/data';
import { uniq } from 'underscore';
import { EPlace, HeroModel, HeroType, } from '../../db/Hero';
import Hero, { EPlace, HeroType, } from '../../db/Hero';
import { Figure } from '../../domain/dbGeneral';
import { ArtifactParam, JewelParam } from '../../domain/roleField/hero';
import { HeroSkin } from '../../db/Hero';
@@ -78,7 +78,7 @@ export async function handleCost(roleId: string, sid: string, goods: Array<ItemI
for(let jewel of resJewels) {
if(jewel.hid > 0) {
if(!heroMap.has(jewel.hid)) {
let hero = await HeroModel.findByHidAndRole(jewel.hid, roleId);
let hero = await Hero.findByHidAndRole(jewel.hid, roleId);
heroMap.set(jewel.hid, { hero, jewels: [] });
}
heroMap.get(jewel.hid).jewels.push(jewel);
@@ -349,7 +349,7 @@ export async function checkGoods(roleId: string, goodIds: Array<number>) {
export async function checkHeroes(roleId: string, hids: number[]) {
if (!!hids.length) {
let heros = await HeroModel.findByHidRange(hids, roleId);
let heros = await Hero.findByHidRange(hids, roleId);
if (heros.length < hids.length)
return false;
}
@@ -357,7 +357,7 @@ export async function checkHeroes(roleId: string, hids: number[]) {
}
export async function checkHeroEquips(roleId: string, quality: number) {
return await HeroModel.checkEquipByQuality(roleId, quality);
return await Hero.checkEquipByQuality(roleId, quality);
}
/**
@@ -429,7 +429,7 @@ export async function addSkin(roleId: string, roleName: string, serverId: number
let skin = await increaseSkin(roleId, roleName, skinId);
if(!skin) return false;
if(skin.hid && !hero) hero = await HeroModel.findByHidAndRole(skin.hid, roleId);
if(skin.hid && !hero) hero = await Hero.findByHidAndRole(skin.hid, roleId);
let condition = { type: FIGURE_UNLOCK_CONDITION.GET_SKIN, paramSkinId: skinId };
await unlockFigure(sid, roleId, [condition]); // 解锁头像
await calculateCeWithRole(HERO_SYSTEM_TYPE.ADD_SKIN, roleId, serverId, sid, {}, { skinId }); // 全局加成
@@ -438,7 +438,7 @@ export async function addSkin(roleId: string, roleName: string, serverId: number
let curSkin = hero.skins.find(cur => cur.id == skinId);
if (!curSkin) {
hero.skins.push(new HeroSkin(skin, enable));
await HeroModel.updateHeroInfo(roleId, hero.hid, hero);
await Hero.updateHeroInfo(roleId, hero.hid, hero);
}
return hero;
} else {
+3 -6
View File
@@ -7,17 +7,14 @@ import { SCHOOL } from '../pubUtils/dicParam';
import { gameData, getHeroInitTalent, getHeroStarByQuality } from '../pubUtils/data';
import { SchoolModel } from '../db/School';
import { SclResultInter, SclPosInter, RewardInter, ItemInter } from '../pubUtils/interface';
import { Connect, HeroModel, HeroSkin, HeroType, HeroUpdate, Talent } from '../db/Hero';
import Hero, { Connect, HeroSkin, HeroType, HeroUpdate, Talent } from '../db/Hero';
import { SkinUpdate } from '../db/Skin';
import { Figure } from '../domain/dbGeneral';
import { pick } from 'underscore';
import { Reward } from '../domain/battleField/pvp';
import { CheckMeterial } from './role/checkMaterial';
import IP2Region from "ip2region";
import { getServerCreateTime } from './redisService';
import { checkWhiteList } from '../pubUtils/sysUtil';
import { nowSeconds } from '../pubUtils/timeUtil';
import { ServerlistModel } from '../db/Serverlist';
const query = new IP2Region({ disableIpv6: true });
@@ -290,7 +287,7 @@ function calSchoolPoint(quality: number, star: number, colorStar: number) {
export async function getSchoolPoint(roleId: string) {
let schools = await SchoolModel.findByRoleId(roleId);
let hids = schools.filter(cur => cur.isOpen && cur.hid > 0).map(school => school.hid);
let heroes = await HeroModel.findByHidRange(hids, roleId);
let heroes = await Hero.findByHidRange(hids, roleId);
return heroes.reduce((pre, cur) => {
return pre + calSchoolPoint(cur.quality, cur.star, cur.colorStar);
}, 0);