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

This reverts commit 9051e72e99cf9c09ebdee57e0401c63480b3c128.
This commit is contained in:
luying
2023-05-08 09:59:25 +08:00
parent 3e78dc3e2b
commit 3e490fde9e
27 changed files with 149 additions and 131 deletions

View File

@@ -5,7 +5,7 @@ import { gameData } from "../../../pubUtils/data";
import { UserGachaModel } from "../../../db/UserGacha";
import { refreshGacha, getGachaList, getVisitedHeroList, GachaPull, GachaResults, getDicGachaByGachaCnt, getNormalGachaId, getDicGachas } from "../../../services/activity/gachaService";
import Role from "../../../db/Role";
import Hero from "../../../db/Hero";
import { HeroModel } from "../../../db/Hero";
import { handleCost, addItems } from "../../../services/role/rewardService";
import { getZeroPointD, getTimeFun } from "../../../pubUtils/timeUtil";
import { UserGachaRecModel } from "../../../db/UserGachaRec";
@@ -70,7 +70,7 @@ export class GachaHandler {
// console.log('##########', dic, min, max)
let _count = max + 1 - min;
let gachaPull = new GachaPull(dic, { hope, floor, pickHero });
let userHeroes = await Hero.findByRole(roleId);
let userHeroes = await HeroModel.findByRole(roleId);
let { resultList: _resultList, heroInfo: _heroInfo, items: _items } = gachaPull.pull(_count, userHeroes);
let { hope: _hope, floor: _floor } = gachaPull.getUserGachaParam();
resultList.push(..._resultList); heroInfo.push(..._heroInfo); items.push(..._items);
@@ -197,7 +197,7 @@ export class GachaHandler {
let randTurntable = getRandSingleEelm(turntablePool);
let { quality, count, planId } = randTurntable;
let userHeroes = await Hero.findByRole(roleId);
let userHeroes = await HeroModel.findByRole(roleId);
let gachaResults = new GachaResults();
gachaResults.addPlan(planId);
gachaResults.processDetail(null, count);
@@ -367,7 +367,7 @@ export class GachaHandler {
if (!costResult) return resResult(STATUS.GACHA_COST_NOT_ENOUGH);
}
let userHeroes = await Hero.findByRole(roleId);
let userHeroes = await HeroModel.findByRole(roleId);
let gachaPull = new GachaPull(dicGacha);
let { resultList } = gachaPull.pull(count, userHeroes);
@@ -438,7 +438,7 @@ export class GachaHandler {
let candidate = playerData.chooseCandidate(id);
if(!candidate) return resResult(STATUS.GACHA_GUIDE_NO_CANDIDATE);
let userHeroes = await Hero.findByRole(roleId);
let userHeroes = await HeroModel.findByRole(roleId);
let results = new GachaResults();
results.addBySimpleResult(candidate.list);
let { items, heroInfo, resultList } = results.transferToFinalResult(userHeroes);

View File

@@ -9,7 +9,7 @@ import { LadderMatchModel, LadderUpdateInter } from '../../../db/LadderMatch';
import { battleEndWhenChange, checkRank, generateInitRecInfo, generateOppPlayers, getBuyCntCost, getLadderData, getLadderEnemies, getLadderOppDetailData, getLadderOppStatus, getNumberArr, ladderBattleEndReward, refreshLadderDaily, refreshLadderEnemies, sendLadderDailyReward, uniqueArr } from '../../../services/ladderService';
import { LadderDataReturn, LadderDefense, LadderDefenseHero, LadderOppDetailReturn, LadderOppLineupReturn, LadderOppPlayerHeroInfo, LadderOppPlayerReturn } from '../../../domain/battleField/ladder';
import { LadderMatchRecModel } from '../../../db/LadderMatchRec';
import Hero from '../../../db/Hero';
import { HeroModel } from '../../../db/Hero';
import { LADDER } from '../../../pubUtils/dicParam';
import { handleCost } from '../../../services/role/rewardService';
import { DEBUG_MAGIC_WORD, ITEM_CHANGE_REASON, LADDER_OPP_STATUS, LADDER_STATUS, REDIS_KEY, WAR_TYPE } from '../../../consts';
@@ -283,7 +283,7 @@ export class LadderHandler {
let hids: number[] = heroes.map(cur => cur.actorId);
if(isHeroHidden(...hids)) return resResult(STATUS.HERO_IS_HIDDEN);
let dbHeroes = await Hero.findByHidRange(hids, roleId, '_id hid ce', true);
let dbHeroes = await HeroModel.findByHidRange(hids, roleId, '_id hid ce', true);
let defenseHeroes = heroes.map(cur => {
let dbHero = dbHeroes.find(ccur => ccur.hid == cur.actorId);

View File

@@ -16,7 +16,7 @@ import { DEBUG_MAGIC_WORD, FIGURE_UNLOCK_CONDITION, ITEM_CHANGE_REASON, LINEUP_N
import { PVP } from '../../../pubUtils/dicParam';
import { addItems, getGoldObject, handleCost, unlockFigure } from '../../../services/role/rewardService';
import { pick } from "underscore";
import Hero from '../../../db/Hero';
import { HeroModel } from '../../../db/Hero';
import PvpHistoryOpp, { PvpHistoryOppModel } from '../../../db/PvpHistoryOpp';
import { BattleRecordModel } from '../../../db/BattleRecord';
import { PvpRecordModel, PvpRecordParam, PvpRecordType } from '../../../db/PvpRecord';
@@ -462,7 +462,7 @@ export class PvpHandler {
hids.push(actorId);
}
}
let dbHeroes = await Hero.findByHidRange(hids, roleId, '_id hid ce', true);
let dbHeroes = await HeroModel.findByHidRange(hids, roleId, '_id hid ce', true);
for(let hero of dbHeroes) {
heroIdMap.set(hero.hid, hero._id);
}
@@ -551,7 +551,7 @@ export class PvpHandler {
}
} else { // 查询对方pvpDefense
let pvpDefense = await PvpDefenseModel.findByRoleId(oppoRoleId);
let dbHeroes = await Hero.findByRole(oppoRoleId);
let dbHeroes = await HeroModel.findByRole(oppoRoleId);
let role = await Role.findByRoleId(oppoRoleId);
let heroes = new Array<PlayerDetailHero>();

View File

@@ -12,7 +12,7 @@ import { addItems, getGoldObject, handleCost } from '../../../services/role/rewa
import { checkBattleHeroes } from '../../../services/normalBattleService';
import { gameData } from '../../../pubUtils/data';
import * as dicParam from '../../../pubUtils/dicParam';
import Hero from '../../../db/Hero';
import { HeroModel } from '../../../db/Hero';
import { vipCanSkipTower } from '../../../services/activity/monthlyTicketService';
import { pushTowerMsg } from '../../../services/sysChatService';
import { WarStar } from '../../../domain/dbGeneral';
@@ -311,7 +311,7 @@ export class TowerBattleHandler {
// 检查战力是否足够
let towerRec = await TowerRecordModel.getRecordByLv(roleId, oldTowerLv);
let heroes = await Hero.findByRole(roleId, [{ field: 'ce', sortBy: -1 }], 'hid ce job', true);
let heroes = await HeroModel.findByRole(roleId, [{ field: 'ce', sortBy: -1 }], 'hid ce job', true);
let newWarStar: WarStar[] = [], resultGoods: { towerLv: number, goods: { id: number, count: number }[] }[] = [], rewards: ItemInter[] = [];
for(let lv = oldTowerLv; lv < toLv; lv++) {

View File

@@ -25,7 +25,7 @@ import { getZeroPointD, getTimeFunD, getSeconds, nowSeconds } from '../../../pub
import { FriendParams } from '../../../domain/roleField/friend';
import { checkTask, checkTaskInComBattleStart } from '../../../services/task/taskService';
import { gameData, getWarByBlueprtId } from '../../../pubUtils/data';
import Hero from '../../../db/Hero';
import { HeroModel } from '../../../db/Hero';
import { addUserToTeamChannel, delTeamChannel, removeFromTeamChannel, sendMessageToTeam, sendMessageToUsersWithSuc, sendMessageToUserWithSuc } from '../../../services/pushService';
import { getFriendRelationType, getRecommendType } from '../../../services/friendService';
import { FriendRelationModel } from '../../../db/FriendRelation';
@@ -274,7 +274,7 @@ export class ComBattleHandler {
// let teamStatus = this.teamMap.get(teamCode);
// if (!teamStatus || !teamStatus.roleIds || teamStatus.roleIds.indexOf(roleId) === -1) return resResult(STATUS.COM_BATTLE_TEAM_INVALID);
// const heroDBs = await Hero.findByHidRange(hids, roleId);
// const heroDBs = await HeroModel.findByHidRange(hids, roleId);
// const heroes = heroDBs.map(hero => {
// return new ComRoleStatusHero(hero);
// });
@@ -307,7 +307,7 @@ export class ComBattleHandler {
let teamStatus = getComTeamByCode(teamCode);
if (!teamStatus || !teamStatus.roleIds || teamStatus.roleIds.indexOf(roleId) === -1) return resResult(STATUS.COM_BATTLE_TEAM_INVALID);
const heroDBs = await Hero.findByHidRange(hids, roleId);
const heroDBs = await HeroModel.findByHidRange(hids, roleId);
const heroes = heroDBs.map(hero => {
return new ComRoleStatusHero(hero);
});

View File

@@ -4,6 +4,7 @@ import { UserModel, UserType } from '../../../db/User';
import { GMUserModel } from '../../../db/GMUser';
import { Application, HandlerService, pinus, } from 'pinus';
import { FrontendSession } from 'pinus';
import { HeroModel } from './../../../db/Hero';
import { genCode, generateStr, resResult } from '../../../pubUtils/util';
import { COM_BTL_QUALITY, HERO_SELECT, DEBUG_MAGIC_WORD, REDIS_KEY, TASK_TYPE, ENTERY_ROLE_PICK, COUNTER, DEFAULT_LV, TA_USERSET_TYPE, LOG_TYPE, JEWEL_SELECT, ITEM_SELECT, SKIN_SELECT, PUSH_ROUTE } from '../../../consts';
// import { loginRefresh } from '../../../services/playerEventService';

View File

@@ -15,7 +15,7 @@ import { UserGuildApplyModel } from '../../../db/UserGuildApply';
import { reportTAEvent } from '../../../services/sdkService';
import { sendMailByContent } from '../../../services/mailService';
import { GuildLeader } from '../../../domain/rank';
import Hero from '../../../db/Hero';
import { HeroModel } from '../../../db/Hero';
import { SkinModel } from '../../../db/Skin';
import { PvpDefenseModel } from '../../../db/PvpDefense';
import { createHeroes } from '../../../services/role/createHero';
@@ -91,7 +91,7 @@ export class GmRoleHandler {
let { roleId, hid } = msg;
let param = new SetHeroParam(msg.param);
if(!param.checkParams()) return resResult(STATUS.WRONG_PARMS);
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if(!hero) return resResult(STATUS.HERO_NOT_FIND);
let { sid } = await getRoleOnlineInfo(roleId);
@@ -125,7 +125,7 @@ export class GmRoleHandler {
*/
async upgradeHeroEPlace(msg: { roleId: string, hid: number }, session: BackendSession) {
let { roleId, hid } = msg;
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if (!hero) return resResult(STATUS.HERO_NOT_FIND);
/*
* 通过
@@ -197,18 +197,18 @@ export class GmRoleHandler {
})
// 更新装备信息
await Hero.updateHeroInfo(roleId, hid, { ePlace: hero.ePlace });
await HeroModel.updateHeroInfo(roleId, hid, { ePlace: hero.ePlace });
// 获取战力重算需要的数据
let role = await Role.findByRoleId(roleId);
let schools = await SchoolModel.findByRoleId(roleId);
let jewels = await JewelModel.findbyRole(roleId);
let heroes = await Hero.findByRole(roleId);
let heroes = await HeroModel.findByRole(roleId);
let skins = await SkinModel.findbyRole(roleId);
let artifacts = await ArtifactModel.findbyRole(roleId);
// 所有战力重算
await calculateCeWithRole(HERO_SYSTEM_TYPE.RE_CAL, roleId, role.serverId, null, {}, { role, schools, jewels, heroes, skins, artifacts });
// 获取更新装备的英雄
hero = await Hero.findByHidAndRole(hid, roleId);
hero = await HeroModel.findByHidAndRole(hid, roleId);
// 返回强化升星升品后的hero数据
return resResult(STATUS.SUCCESS, { curHero: hero });
@@ -217,10 +217,10 @@ export class GmRoleHandler {
async deleteHero(msg: { roleId: string, hid: number }, session: BackendSession) {
let { roleId, hid } = msg;
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if (!hero) return resResult(STATUS.HERO_NOT_FIND);
await Hero.deleteHero(roleId, hid);
await HeroModel.deleteHero(roleId, hid);
await SkinModel.deleteByHero(roleId, hid);
let role = await Role.findByRoleId(roleId);
await PvpDefenseModel.deleteHero(roleId, hid);
@@ -400,7 +400,7 @@ export class GmRoleHandler {
let role = await Role.findByRoleId(roleId);
let schools = await SchoolModel.findByRoleId(roleId);
let jewels = await JewelModel.findbyRole(roleId);
let heroes = await Hero.findByRole(roleId);
let heroes = await HeroModel.findByRole(roleId);
let skins = await SkinModel.findbyRole(roleId);
let artifacts = await ArtifactModel.findbyRole(roleId);

View File

@@ -20,7 +20,7 @@ import { isDebugTime } from "../../../pubUtils/sdkUtil";
import { GuildActivityCityDeclareModel } from "../../../db/GuildActivityCityDeclare";
import { GuildModel } from "../../../db/Guild";
import { getHistoryCity, redisClient, setHistoryCity } from "../../../services/redisService";
import Hero from "../../../db/Hero";
import { HeroModel } from "../../../db/Hero";
import { getCityActivityObj } from "../../../services/memoryCache/guildActivityData";
export default function (app: Application) {
@@ -259,7 +259,7 @@ export class CityActivityHandler {
let { gateHp, maxHp } = await obj.getGateHpAndInc(serverId, cityId);
if (gateHp <= 0) return resResult(STATUS.GATE_HP_IS_ZERO);
let hero = await Hero.findBySeqIdAndRole(hid, roleId);
let hero = await HeroModel.findBySeqIdAndRole(hid, roleId);
if(!hero && (damage/maxHp > 0.01)) damage = 0;
let statusResult = getGuildActivityStatus(this.aid);

View File

@@ -9,7 +9,7 @@ import { GVGVestigeLockModel } from "../../../db/GVGVestigeLock";
import { GVGVestigeRankModel } from "../../../db/GVGVestigeRank";
import { GVGVestigeRecModel, GVGVestigeRecUpdate } from "../../../db/GVGVestigeRec";
import { GVGVestigeSumRankModel } from "../../../db/GVGVestigeSumRank";
import Hero from "../../../db/Hero";
import { HeroModel } from "../../../db/Hero";
import Role from "../../../db/Role";
import { GVGVestigeOppLineup, VestigeRank } from "../../../domain/gvgField/returnData";
import { RoleRankInfo } from "../../../domain/rank";
@@ -160,7 +160,7 @@ export class GVGProduceHandler {
if(!hisVestigeRank) return resResult(STATUS.GVG_VESTIGE_TARGET_NOT_FOUND);
let hids = hisVestigeRank.lineup?.map(cur => cur.actorId)||[];
let heroes = await Hero.findByHidRange(hids, targetRoleId, 'hid skinId quality star colorStar lv ce');
let heroes = await HeroModel.findByHidRange(hids, targetRoleId, 'hid skinId quality star colorStar lv ce');
const { leagueCode, name } = myLeague;
result.setPlayer(dicGVGVestige, role, heroes, serverNames, name, leagueCode);
}

View File

@@ -1,7 +1,7 @@
import { Application, BackendSession, HandlerService, } from "pinus";
import { STATUS, HERO_SYSTEM_TYPE, ITEM_CHANGE_REASON, TASK_TYPE } from "../../../consts";
import { ArtifactModel, ArtifactModelType, ArtifactModelUpdate } from "../../../db/Artifact";
import Hero from "../../../db/Hero";
import { HeroModel } from "../../../db/Hero";
import { ArtifactParam } from "../../../domain/roleField/hero";
import { gameData, getArtifactByGidAndType, getArtifactStageZero, getArtifactWithQuality, getDicArtifactLvByPlanId, getNextArtifact } from "../../../pubUtils/data";
import { ARTIFACT, BAG } from "../../../pubUtils/dicParam";
@@ -32,7 +32,7 @@ export class ArtifactHandler {
let serverId: number = session.get('serverId');
let { seqId, hid, isExtendLv } = msg;
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if (!hero) return resResult(STATUS.HERO_NOT_FIND);
let chosenArtifact = await ArtifactModel.findbySeqId(roleId, seqId);
@@ -59,7 +59,7 @@ export class ArtifactHandler {
if(artifactOfHero) artifacts.push(artifactOfHero);
}
if(chosenArtifact.hid != 0) {
let heroOfChosenArtifact = await Hero.findByHidAndRole(chosenArtifact.hid, roleId); // 我想要的宝物的原持有者
let heroOfChosenArtifact = await HeroModel.findByHidAndRole(chosenArtifact.hid, roleId); // 我想要的宝物的原持有者
if(heroOfChosenArtifact) {
await calculateCeWithHero(HERO_SYSTEM_TYPE.PUT_OFF_ARTIFACT, roleId, serverId, sid, heroOfChosenArtifact.hid, { artifact: 0 }); // 对方卸下
}
@@ -84,7 +84,7 @@ export class ArtifactHandler {
let chosenArtifact = await ArtifactModel.findbySeqId(roleId, seqId);
if(!chosenArtifact) return resResult(STATUS.ARTIFACT_IS_NOT_FIND);
let heroOfChosenArtifact = await Hero.findByHidAndRole(chosenArtifact.hid, roleId); // 我想要的宝物的原持有者
let heroOfChosenArtifact = await HeroModel.findByHidAndRole(chosenArtifact.hid, roleId); // 我想要的宝物的原持有者
if(!heroOfChosenArtifact) return resResult(STATUS.ARTIFACT_IS_NOT_EQUIPED);
chosenArtifact = await ArtifactModel.putOnOrOff(roleId, seqId, 0);
@@ -185,7 +185,7 @@ export class ArtifactHandler {
let { quality, qualityStage, artifactId, goodId } = dicNextArtifact;
originArtifact = await ArtifactModel.updateInfoBySeqId(roleId, seqId, { quality, qualityStage, artifactId, id: goodId });
if(originArtifact.hid > 0) {
let hero = await Hero.findByHidAndRole(originArtifact.hid, roleId);
let hero = await HeroModel.findByHidAndRole(originArtifact.hid, roleId);
if (!hero) return resResult(STATUS.HERO_NOT_FIND);
await calculateCeWithHero(HERO_SYSTEM_TYPE.ARTIFACT_QUALITY, roleId, serverId, sid, originArtifact.hid, {}, { artifact: originArtifact, job: hero.job, skinId: hero.skinId });
await checkTask(serverId, roleId, sid, TASK_TYPE.ARTIFACT_QUALITY_EQUIP, { artifacts: [originArtifact] });
@@ -271,7 +271,7 @@ export class ArtifactHandler {
let { artifactId, goodId } = dicTargetArtifact;
artifact = await ArtifactModel.updateInfoBySeqId(roleId, seqId, { artifactId, id: goodId });
if(artifact.hid > 0) {
let hero = await Hero.findByHidAndRole(artifact.hid, roleId);
let hero = await HeroModel.findByHidAndRole(artifact.hid, roleId);
if (!hero) return resResult(STATUS.HERO_NOT_FIND);
await calculateCeWithHero(HERO_SYSTEM_TYPE.ARTIFACT_TRANSFER, roleId, serverId, sid, artifact.hid, {}, { artifact, job: hero.job, skinId: hero.skinId });
}
@@ -315,7 +315,7 @@ export class ArtifactHandler {
let { artifactId, goodId, quality, qualityStage } = dicArtifactZero;
let result = await ArtifactModel.updateInfoBySeqId(roleId, artifact.seqId, { artifactId, id: goodId, quality, qualityStage, lv: 0 });
if(result && result.hid > 0) {
let hero = await Hero.findByHidAndRole(result.hid, roleId);
let hero = await HeroModel.findByHidAndRole(result.hid, roleId);
await calculateCeWithHero(HERO_SYSTEM_TYPE.ARTIFACT_REBUILD, roleId, serverId, sid, result.hid, {}, { artifact: result, skinId: hero.skinId, job: hero.job });
}
returnArtifact.push(new ArtifactParam(result));

View File

@@ -4,7 +4,7 @@ import { ItemInter, RewardInter } from "../../../pubUtils/interface";
import { resResult, parseGoodStr } from "../../../pubUtils/util";
import { addItems, getJewelRandSe, handleCost } from "../../../services/role/rewardService";
import Hero, { EPlace } from "../../../db/Hero";
import { HeroModel, EPlace } from "../../../db/Hero";
import { gameData, getEquipByJobClassAndEPlace, getNextEquipQuality, getEquipStarIdByEquipId, getNextEquipStar } from "../../../pubUtils/data";
import { BAG, EQUIP } from "../../../pubUtils/dicParam";
import { getRandSeResult, updateEplace, updateEplaces, checkJewelCanPutOnEquip, updateStone, checkStoneCanPutOnEquip, isLocked } from "../../../services/equipService";
@@ -36,7 +36,7 @@ export class EquipHandler {
let { hid, ePlaceId } = msg;
if(!isNumber(ePlaceId) || ePlaceId > 4 || ePlaceId < 1) return resResult(STATUS.WRONG_PARMS);
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if(!hero) return resResult(STATUS.HERO_NOT_FIND);
let oldEplace = hero.ePlace||[];
@@ -77,7 +77,7 @@ export class EquipHandler {
let { hid, ePlaceId, isOneClick } = msg;
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if (!hero) return resResult(STATUS.HERO_NOT_FIND);
let oldEplace = hero.ePlace||[];
let curEquip = oldEplace.find(cur => cur.id == ePlaceId);
@@ -123,7 +123,7 @@ export class EquipHandler {
let sid: string = session.get('sid');
let { hid, lv } = msg; // lv: 升到哪一级
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if (!hero) return resResult(STATUS.HERO_NOT_FIND);
let { ePlace, lv: playerLv } = hero; // 装备栏
@@ -176,7 +176,7 @@ export class EquipHandler {
let sid: string = session.get('sid');
let { hid, ePlaceId, isOneClick } = msg;
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if (!hero) return resResult(STATUS.HERO_NOT_FIND);
let oldEplace = hero.ePlace||[];
@@ -247,7 +247,7 @@ export class EquipHandler {
let sid: string = session.get('sid');
let { hid, ePlaceId, isOneClick } = msg;
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if (!hero) return resResult(STATUS.HERO_NOT_FIND);
let oldEplace = hero.ePlace||[];
@@ -329,7 +329,7 @@ export class EquipHandler {
let sid: string = session.get('sid');
let serverId: number = session.get('serverId');
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if (!hero) return resResult(STATUS.HERO_NOT_FIND);
let oldEplace = hero.ePlace||[];
@@ -346,7 +346,7 @@ export class EquipHandler {
let originJewel = curEquip.jewel? await JewelModel.findbySeqId(curEquip.jewel): null; // 原本自己的天晶石
let canSentMineToOrigin = false; // 自己的能不能塞到对方身上
if(jewel.hid != 0) { // 如果天晶石原本镶嵌在其他武将身上,把自己的给他
let originHero = await Hero.findByHidAndRole(jewel.hid, roleId);
let originHero = await HeroModel.findByHidAndRole(jewel.hid, roleId);
let originEplace = originHero?.ePlace||[];
let originEquip = originEplace.find(cur => cur.jewel == seqId);
if(originEquip) {
@@ -384,7 +384,7 @@ export class EquipHandler {
let sid: string = session.get('sid');
let serverId: number = session.get('serverId');
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if (!hero) return resResult(STATUS.HERO_NOT_FIND);
let oldEplace = hero.ePlace||[];
@@ -413,7 +413,7 @@ export class EquipHandler {
let sid: string = session.get('sid');
let serverId: number = session.get('serverId');
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if (!hero) return resResult(STATUS.HERO_NOT_FIND);
let oldEplace = hero.ePlace||[];
@@ -566,7 +566,7 @@ export class EquipHandler {
let newJewel = await JewelModel.updateInfo(seqId, { previewRandSe: [], randSe: previewRandSe });
// 更新战力
if(hid > 0) {
const hero = await Hero.findByHidAndRole(hid, roleId);
const hero = await HeroModel.findByHidAndRole(hid, roleId);
await calculateCeWithHero(HERO_SYSTEM_TYPE.JEWEL_RESET_RANDSE, roleId, serverId, sid, hid, { ePlace: hero.ePlace }, { ePlaceId, jewel: newJewel, skinId: hero.skinId });
}
@@ -648,7 +648,7 @@ export class EquipHandler {
let newJewel = await JewelModel.quench(seqId, isSuccess, newRandSe.rand);
// 更新战力
if(isSuccess && hid > 0) {
const hero = await Hero.findByHidAndRole(hid, roleId);
const hero = await HeroModel.findByHidAndRole(hid, roleId);
await calculateCeWithHero(HERO_SYSTEM_TYPE.JEWEL_QUENCH, roleId, serverId, sid, hid, { ePlace: hero.ePlace }, { ePlaceId, jewel: newJewel, skinId: hero.skinId });
}
@@ -769,7 +769,7 @@ export class EquipHandler {
let newJewel = await JewelModel.updateInfo(targetJewel.seqId, { previewRandSe: [], randSe: newRandSe });
// 更新战力
if(targetJewel.hid > 0) {
const hero = await Hero.findByHidAndRole(targetJewel.hid, roleId);
const hero = await HeroModel.findByHidAndRole(targetJewel.hid, roleId);
await calculateCeWithHero(HERO_SYSTEM_TYPE.JEWEL_RESET_RANDSE, roleId, serverId, sid, targetJewel.hid, { ePlace: hero.ePlace }, { ePlaceId: targetJewel.ePlaceId, jewel: newJewel, skinId: hero.skinId });
}

View File

@@ -14,7 +14,7 @@ import { gameData, getDicFriendByLv } from "../../../pubUtils/data";
import { addItems, getFriendPointObject, handleCost } from "../../../services/role/rewardService";
import { RewardInter } from "../../../pubUtils/interface";
import { FriendPresentLogModel } from '../../../db/FriendPresentLog';
import Hero, { EPlace } from "../../../db/Hero";
import { HeroModel, EPlace } from "../../../db/Hero";
import { FRIEND } from "../../../pubUtils/dicParam";
import { PlayerDetail, PlayerDetailHero } from "../../../domain/battleField/guild";
import { createPrivateMsg, delPrivateMsg, privateRoomId, pushMsgToRole, pushPresent } from "../../../services/chatService";
@@ -689,7 +689,7 @@ export class FriendHandler {
let result: PlayerDetail;
let dbHeroes = await Hero.findAndSortByCe(oppoRoleId);
let dbHeroes = await HeroModel.findAndSortByCe(oppoRoleId);
let role = await Role.findByRoleId(oppoRoleId, null, true);
if(!role) return resResult(STATUS.ROLE_NOT_FOUND);
@@ -738,7 +738,7 @@ export class FriendHandler {
let roleCe = await RoleCeModel.findByRoleId(hisRoleId);
if (!roleCe) return resResult(STATUS.ROLE_NOT_FOUND);
let heroList = await Hero.findByHidRange(hids, hisRoleId, HERO_SELECT.HERO_DETAIL, true);
let heroList = await HeroModel.findByHidRange(hids, hisRoleId, HERO_SELECT.HERO_DETAIL, true);
if (heroList.length <= 0) return resResult(STATUS.HERO_NOT_FIND);
let jewels = await JewelModel.findMapbyRoleAndHids(hisRoleId, hids);

View File

@@ -2,7 +2,7 @@ import { Application, BackendSession, ChannelService, HandlerService, } from 'pi
import { handleCost, addItems, unlockFigure, getCoinObject, getGoldObject } from '../../../services/role/rewardService';
import { resResult, deepCopy, parseGoodStr } from '../../../pubUtils/util';
import { STATUS } from '../../../consts/statusCode';
import Hero, { Connect, HeroSkin, HeroUpdate, EPlace, Talent } from '../../../db/Hero';
import { HeroModel, Connect, HeroSkin, HeroUpdate, EPlace, Talent } 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, REDIS_KEY, TASK_TYPE, ITEM_CHANGE_REASON, CHECK_HERO_CONSUME } from '../../../consts';
import Role from '../../../db/Role';
import { ItemModel } from '../../../db/Item';
@@ -55,7 +55,7 @@ export class HeroHandler {
if (!dicHero) return resResult(STATUS.DIC_DATA_NOT_FOUND);
// 检查是否存在武将
let hasHero = await Hero.findByHidAndRole(hid, roleId);
let hasHero = await HeroModel.findByHidAndRole(hid, roleId);
if (hasHero) return resResult(STATUS.ROLE_HERO_EXISTS);
// 根据dic_hero 获得 1. 碎片id 2. 碎片数量 3. 初始武将星级 4. 初始品质
let { pieceId, pieceCount } = dicHero;
@@ -87,7 +87,7 @@ export class HeroHandler {
return resResult(STATUS.ROLE_HERO_LV_TYPE_ERROR);
}
// 计算武将可以升的级数
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if (!hero) return resResult(STATUS.ROLE_HERO_NOT_EXISTS);
let { lv: playerLv } = await Role.findByRoleId(roleId);
let { lv: oldLv, exp: oldExp } = hero;
@@ -160,7 +160,7 @@ export class HeroHandler {
let dicJob = gameData.job.get(jobid);
if (!dicJob) return resResult(STATUS.DIC_DATA_NOT_FOUND);
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if (!hero) return resResult(STATUS.ROLE_HERO_NOT_EXISTS);
let { star: oldStar, starStage: oldStarStage, quality } = hero;
@@ -223,7 +223,7 @@ export class HeroHandler {
// 根据dic_hero 获得 碎片id
let { pieceId } = dicHero;
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if (!hero) return resResult(STATUS.ROLE_HERO_NOT_EXISTS);
let { quality: oldQuality, star } = hero;
// if (quality != oldQuality) {
@@ -277,7 +277,7 @@ export class HeroHandler {
let dicJob = gameData.job.get(jobid);
if (!dicJob) return resResult(STATUS.DIC_DATA_NOT_FOUND);
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if (!hero) return resResult(STATUS.ROLE_HERO_NOT_EXISTS);
let { colorStar: oldColorStar, colorStarStage: oldColorStarStage, star, quality } = hero;
@@ -347,7 +347,7 @@ export class HeroHandler {
let { hid, isOneClick, canReplace = false } = msg;
if(isHeroHidden(hid)) return resResult(STATUS.HERO_IS_HIDDEN);
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if (!hero) return resResult(STATUS.HERO_NOT_FIND);
let dicJob = gameData.job.get(hero.job);
@@ -400,7 +400,7 @@ export class HeroHandler {
let { hid } = msg;
if(isHeroHidden(hid)) return resResult(STATUS.HERO_IS_HIDDEN);
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if (!hero)
return resResult(STATUS.HERO_NOT_FIND);
let curJob = hero.job;
@@ -442,7 +442,7 @@ export class HeroHandler {
let dicFriendShip = getFriendShipByIdAndLv(hid, shipId, 1);
if(!dicFriendShip) return resResult(STATUS.DIC_DATA_NOT_FOUND);
let heroes = await Hero.findByHidRange(dicFriendShip.hids, roleId);
let heroes = await HeroModel.findByHidRange(dicFriendShip.hids, roleId);
if (heroes.length < dicFriendShip.hids.length) return resResult(STATUS.ROLE_HERO_NOT_EXISTS);
let hero = heroes.find(cur => cur.hid == hid);
if(!hero) return resResult(STATUS.ROLE_HERO_NOT_EXISTS);
@@ -526,7 +526,7 @@ export class HeroHandler {
if (!dicSkin) return resResult(STATUS.HERO_SKIN_NOT_FIND);
if(isHeroHidden(dicSkin.actorId)) return resResult(STATUS.HERO_IS_HIDDEN);
let hero = await Hero.findByHidAndRole(dicSkin.actorId, roleId);
let hero = await HeroModel.findByHidAndRole(dicSkin.actorId, roleId);
if (!hero) return resResult(STATUS.HERO_NOT_FIND);
let newHeroSkins: HeroSkin[] = [];
@@ -578,7 +578,7 @@ export class HeroHandler {
let roleId: string = session.get('roleId');
let { hid } = msg;
let hero = await Hero.findByHidAndRole(hid, roleId, 'hid consumes star starStage quality');
let hero = await HeroModel.findByHidAndRole(hid, roleId, 'hid consumes star starStage quality');
if(!hero) return resResult(STATUS.HERO_NOT_FIND);
let { consumes} = calStarUpConsume(hero);
@@ -595,7 +595,7 @@ export class HeroHandler {
if(!isNumber(hid) && !hid) return resResult(STATUS.WRONG_PARMS);
// 武将初始,但是皮肤这里不初始
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if(!hero) return resResult(STATUS.HERO_NOT_FIND);
// 消耗
@@ -615,7 +615,7 @@ export class HeroHandler {
let newSkins = initSkinTalent(skins);
let newQuality = quality >= 3? ( dicHero.quality >= 3? dicHero.quality: 3 ): quality;
let dicHeroScroll = getScollByStar(dicHero.quality, star, newQuality, dicHero.initialColorStar);
let initInfo = Hero.getInitInfo(hid, {
let initInfo = HeroModel.getInitInfo(hid, {
artifact: hero.artifact,
job: dicJob.jobid, skins: newSkins, skinId, ce,
star, starStage, colorStar: dicHero.initialColorStar, colorStarStage: 0, quality: newQuality,
@@ -661,7 +661,7 @@ export class HeroHandler {
let dicHeroTalent = gameData.heroTalent.get(id);
if(!dicHeroTalent) return resResult(STATUS.DIC_DATA_NOT_FOUND);
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if(!hero) return resResult(STATUS.HERO_NOT_FIND);
let skins = hero.skins||[];
@@ -702,7 +702,7 @@ export class HeroHandler {
let dicHeroTalent = gameData.heroTalent.get(id);
if(!dicHeroTalent) return resResult(STATUS.DIC_DATA_NOT_FOUND);
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if(!hero) return resResult(STATUS.HERO_NOT_FIND);
let skins = hero.skins||[];
@@ -737,7 +737,7 @@ export class HeroHandler {
if(isHeroHidden(hid)) return resResult(STATUS.HERO_IS_HIDDEN);
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if(!hero) return resResult(STATUS.HERO_NOT_FIND);
let skins = hero.skins||[];
@@ -765,7 +765,7 @@ export class HeroHandler {
let dicHero = gameData.hero.get(hid);
if(!dicHero || dicHero.urType != 1) return resResult(STATUS.HERO_CAN_NOT_SET_SUB);
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if(!hero) return resResult(STATUS.HERO_NOT_FIND);
let subHid = 0;
@@ -775,7 +775,7 @@ export class HeroHandler {
if(!dicHero || dicHero.urType == 1) return resResult(STATUS.HERO_CAN_NOT_BE_SET_SUB);
subHid = dicHero.actorId;
let subHero = await Hero.findByHidAndRole(subHid, roleId);
let subHero = await HeroModel.findByHidAndRole(subHid, roleId);
if(!subHero) return resResult(STATUS.HERO_NOT_FIND);
await LadderMatchModel.removeBySub(roleId, subHid);
@@ -789,7 +789,7 @@ export class HeroHandler {
}
// 设置副将
const { preHid, curHero } = await Hero.setSubHero(roleId, hid, subSkinId, subHid);
const { preHid, curHero } = await HeroModel.setSubHero(roleId, hid, subSkinId, subHid);
return resResult(STATUS.SUCCESS, { preHid, curHero: pick(curHero, ['hid', 'subHid', 'subActorId']) });
}
@@ -807,7 +807,7 @@ export class HeroHandler {
return resResult(STATUS.TOKEN_ERR);
}
await Hero.deleteAccount(roleId);
await HeroModel.deleteAccount(roleId);
await JewelModel.deleteAccount(roleId);
await SkinModel.deleteMany({ roleId });
await SchoolModel.deleteAccount(roleId);
@@ -846,10 +846,10 @@ export class HeroHandler {
id: dicHero.pieceId, count: dicHero.pieceCount * HERO_GROW_MAX.STAR * ABI_STAGE.END
}], ITEM_CHANGE_REASON.DEBUG);
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if (!hero) return resResult(STATUS.HERO_NOT_FIND);
await Hero.deleteHero(roleId, hid);
await HeroModel.deleteHero(roleId, hid);
let role = await Role.findByRoleId(roleId);
await PvpDefenseModel.deleteHero(roleId, hid);
await Role.updateRoleInfo(roleId, { topLineup: role.topLineup, topLineupCe: role.topLineupCe, ce: role.ce - hero.ce });
@@ -893,12 +893,12 @@ export class HeroHandler {
if (magicWord !== DEBUG_MAGIC_WORD) {
return resResult(STATUS.TOKEN_ERR);
}
let hero = await Hero.findByHidAndRole(hid, roleId);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if(!hero) {
let { resultHeroes } = await createHero(roleId, roleName, sid, serverId, { hid, count: 1, ...params });
return resResult(STATUS.SUCCESS, { hero: resultHeroes[0] });
} else {
hero = await Hero.updateHeroInfo(roleId, hid, params);
hero = await HeroModel.updateHeroInfo(roleId, hid, params);
return resResult(STATUS.SUCCESS, { hero: new HeroParam(hero) });
}

View File

@@ -1,6 +1,6 @@
import { STATUS } from '../../../consts/statusCode';
import Role, { RoleUpdate } from './../../../db/Role';
import Hero, { HeroType, HeroUpdate } from '../../../db/Hero';
import { HeroModel, HeroType, HeroUpdate } from '../../../db/Hero';
import { resResult, decodeIdCntArrayStr, parseGoodStr, genCode } from '../../../pubUtils/util';
import { Application, BackendSession, pinus, HandlerService, } from 'pinus';
import { handleCost, addItems, getGoldObject, getCoinObject } from '../../../services/role/rewardService';
@@ -219,7 +219,7 @@ export class RoleHandler {
return resResult(STATUS.ROLE_SCHOOL_HERO_USED);
}
curHero = await Hero.findByHidAndRole(hid, roleId);
curHero = await HeroModel.findByHidAndRole(hid, roleId);
if (!curHero) return resResult(STATUS.HERO_NOT_FIND);
}
@@ -298,7 +298,7 @@ export class RoleHandler {
let dicHero = gameData.hero.get(hid);
if (!dicHero) return resResult(STATUS.DIC_DATA_NOT_FOUND);
let hero = await Hero.findByHidAndRole(hid, roleId, 'hid lv star colorStar quality scrollId scrollActive scrollStar scrollColorStar scrollQuality connections attr ce');
let hero = await HeroModel.findByHidAndRole(hid, roleId, 'hid lv star colorStar quality scrollId scrollActive scrollStar scrollColorStar scrollQuality connections attr ce');
if (!hero) return resResult(STATUS.HERO_NOT_FIND);
let { star, colorStar, quality, scrollId, scrollActive, scrollStar, scrollColorStar, scrollQuality } = hero;

View File

@@ -5,7 +5,7 @@ import { STATUS, GUILD_STRUCTURE, ITID, CONSUME_TYPE, HERO_QUALITY_TYPE, HERO_GR
import { UserShopModel } from "../../../db/UserShop";
import { handleCost, addItems } from "../../../services/role/rewardService";
import { SHOP } from "../../../pubUtils/dicParam";
import Hero from "../../../db/Hero";
import { HeroModel } from "../../../db/Hero";
import { checkShopInPurchase, getShopDicById, getShopListByType, getShopPrice } from "../../../services/shopService";
import { RewardInter } from "../../../pubUtils/interface";
import { UserShopTypeModel } from "../../../db/UserShopType";
@@ -124,7 +124,7 @@ export class ShopHandler {
return resResult(STATUS.ITEM_NOT_SOUL);
}
let hero = await Hero.findByHidAndRole(dicGoods.hid, roleId);
let hero = await HeroModel.findByHidAndRole(dicGoods.hid, roleId);
if(!hero) return resResult(STATUS.HERO_NOT_MAX);
if(hero.colorStar != HERO_GROW_MAX.COLORSTAR) return resResult(STATUS.HERO_NOT_MAX);

View File

@@ -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 Hero from '../../db/Hero';
import { HeroModel } 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 Hero.findByRole(roleId);
let userHeroes = await HeroModel.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 Hero.findByRole(roleId);
let userHeroes = await HeroModel.findByRole(roleId);
let createTime = await getRoleCreateTime(roleId);
let serverTime = await getServerCreateTime(serverId);

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 Hero from '../db/Hero';
import { HeroModel } 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 Hero.findByRole(role.roleId, [], HERO_SELECT.ENTRY, true);
let heros = await HeroModel.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);

View File

@@ -25,7 +25,7 @@ import { GVGUserDataModel } from "../../db/GVGUserData";
import Role from "../../db/Role";
import { getFightTimeByPeriod } from "./gvgFightService";
import { getRandSingleEelm } from "../../pubUtils/util";
import Hero, { HeroType } from "../../db/Hero";
import { HeroModel, 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 Hero.findByHidRange(lineup.map(hero => hero.actorId), roleId);
let heroes = await HeroModel.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 });

View File

@@ -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 Hero, { HeroType } from "../../db/Hero";
import { HeroModel, 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 Hero.findByHidRange(hids, playerVestigeData.roleId, 'hid skinId lv star colorStar quality ce');
let heroes = await HeroModel.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 Hero.findByHidRange(hids, rec.defenseRoleId, 'hid lv quality star colorStar skins ce skinId');
const heroes = await HeroModel.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);

View File

@@ -1,5 +1,5 @@
import Hero, { HeroType } from '../db/Hero';
import { HeroModel, 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 Hero.findBySeqIdRange(seqIds, roleId);
const findHeroes = await HeroModel.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 Hero.findByHidRange(heroes, roleId);
const findHeroes = await HeroModel.findByHidRange(heroes, roleId);
if (findHeroes.length != heroes.length) flag = false;
for (let hid of heroes) {
let hero = findHeroes.find(cur => cur.hid == hid);

View File

@@ -2,7 +2,7 @@
* 体力系统
*/
import Hero, { HeroType, HeroUpdate } from '../db/Hero';
import { EPlace, HeroModel, 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 Hero.updateHeroInfo(roleId, hid, { ...heroUpdate, ce });
let hero = await HeroModel.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 Hero.updateHeroInfo(roleId, hid, heroUpdate);
let hero = await HeroModel.updateHeroInfo(roleId, hid, heroUpdate);
heroes.push(hero);
}
}
for(let [hid, { ce, inc }] of heroCe) {
if(changeHids.indexOf(hid) == -1) {
let hero = await Hero.updateHeroInfo(roleId, hid, { ce });
let hero = await HeroModel.updateHeroInfo(roleId, hid, { ce });
await PvpDefenseModel.updateCe(roleId, hid, ce); // 更新pvp防守阵战力
await LadderMatchModel.updateCe(roleId, hid, ce);
await GVGVestigeRankModel.updateCe(roleId, hid, ce);

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 Hero, { HeroType } from '../db/Hero';
import { HeroModel, HeroType } from '../db/Hero';
import { AttributeCal } from '../domain/roleField/attribute';
import { PvpEnemies, PvpHeroInfo, PvpOtherHeroes } from '../domain/dbGeneral';
import { pinus } from 'pinus';
@@ -224,7 +224,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 Hero.findByRole(role.roleId, [{ field: 'ce', sortBy: -1 }]);
let dbHeroes = await HeroModel.findByRole(role.roleId, [{ field: 'ce', sortBy: -1 }]);
let heroes = new Array<PvpEnemies>();
let otherHeroes = new Array<PvpOtherHeroes>(); // 阵容外的所有武将信息
let defCe = 0;
@@ -479,7 +479,7 @@ export async function generMyRecInfo(pvpDefense: PvpDefenseType, role: RoleType,
hid, addScore: 0, plusScore: 0, score: curHeroScore ? curHeroScore.score : 0
});
}
const myHero = await Hero.findByHidAndRole(hid, roleId, 'quality star colorStar lv skinId');
const myHero = await HeroModel.findByHidAndRole(hid, roleId, 'quality star colorStar lv skinId');
let record = new HeroesRecord();
record.setByHero(myHero, params);
@@ -726,7 +726,7 @@ export async function generPvpLineupCe(roleId: string, lineupCe: LineupCe[], att
}
}
}
let heroes = await Hero.findByHidRange(newHids, roleId, 'hid ce', true);
let heroes = await HeroModel.findByHidRange(newHids, roleId, 'hid ce', true);
for(let { hid, ce } of heroes) {
newLineupCe.push({ hid, ce });
}

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 Hero, { HeroType, HeroUpdate } from "../db/Hero";
import { HeroModel, 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 Hero.findByRole(roleId, [], HERO_SELECT.RANK_LINEUP);
let heroes = await HeroModel.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 Hero.findByHidAndRole(hid, roleId, HERO_SELECT.RANK_LINEUP, true);
hero = await HeroModel.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 Hero.findByRole(roleId, [], HERO_SELECT.RANK_LINEUP);
let heroes = await HeroModel.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 Hero.findByRole(roleId, [], HERO_SELECT.RANK_LINEUP);
let heroes = await HeroModel.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 Hero.findByRole(myId.roleId, [], HERO_SELECT.HERO_DETAIL);
let heroes = await HeroModel.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 Hero.findByHidAndRole(myId.hid, myId.roleId, HERO_SELECT.RANK_LINEUP);
hero = await HeroModel.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 Hero.findByRole(myId.roleId, [], HERO_SELECT.RANK_LINEUP);
let heroes = await HeroModel.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 Hero.findByRole(myId.roleId, [], HERO_SELECT.HERO_DETAIL);
let heroes = await HeroModel.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) {
@@ -1175,6 +1175,7 @@ export async function setRankRedisFromDb(type: string, args?: { serverId?: numbe
for (let role of ranks) {
await r.setRankWithRoleInfo(role.roleId, role.mainEliteWarId, role.mainEliteUpdatedAt, role);
}
<<<<<<< HEAD
// } else if (type == REDIS_KEY.HERO_RANK) {
// let serverId = args.serverId;
@@ -1186,6 +1187,19 @@ export async function setRankRedisFromDb(type: string, args?: { serverId?: numbe
// await r.setRankWithHeroInfo(hero.roleId, hid, hero.ce, hero.updatedAt.getTime(), hero);
// }
// }
=======
} else if (type == REDIS_KEY.HERO_RANK) {
let serverId = args.serverId;
for (let [hid] of gameData.recruit) {
let ranks = await HeroModel.getRank(hid, serverId, HERO_SELECT.RANK_LINEUP);
let r = new Rank(type, { serverId, hid });
r.setIsInit(true);
for (let hero of ranks) {
await r.setRankWithHeroInfo(hero.roleId, hid, hero.ce, hero.updatedAt.getTime(), hero);
}
}
>>>>>>> parent of 9051e72e9 ( feat(db): hero表数据库操作方式)
} else if (type == REDIS_KEY.LADDER) {
let serverId = args.serverId;
let ranks = await LadderMatchModel.findAll(serverId);
@@ -1312,7 +1326,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 Hero.getMyTopHero(roleId, HERO_SELECT.RANK_LINEUP);
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);

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 Hero, { HeroSkin, HeroType, HeroUpdate } from "../../db/Hero";
import { HeroModel, 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 Hero.findMapByHidRange(hids, roleId);
let userHeroesMap = await HeroModel.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 = Hero.getInitInfo(hid, { ...info, seqId, serverId, roleId, roleName, skins: initHeroSkins });
let initHero = HeroModel.getInitInfo(hid, { ...info, seqId, serverId, roleId, roleName, skins: initHeroSkins });
heroInfos.set(hid, initHero);
figureConditions.push({ type: FIGURE_UNLOCK_CONDITION.GET_HERO, paramHid: hid });
incHeroNum ++;

View File

@@ -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 Hero, { EPlace, HeroType, } from '../../db/Hero';
import { EPlace, HeroModel, 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 Hero.findByHidAndRole(jewel.hid, roleId);
let hero = await HeroModel.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 Hero.findByHidRange(hids, roleId);
let heros = await HeroModel.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 Hero.checkEquipByQuality(roleId, quality);
return await HeroModel.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 Hero.findByHidAndRole(skin.hid, roleId);
if(skin.hid && !hero) hero = await HeroModel.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 Hero.updateHeroInfo(roleId, hero.hid, hero);
await HeroModel.updateHeroInfo(roleId, hero.hid, hero);
}
return hero;
} else {

View File

@@ -7,14 +7,17 @@ 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 Hero, { Connect, HeroSkin, HeroType, HeroUpdate, Talent } from '../db/Hero';
import { Connect, HeroModel, 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 });
@@ -287,7 +290,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 Hero.findByHidRange(hids, roleId);
let heroes = await HeroModel.findByHidRange(hids, roleId);
return heroes.reduce((pre, cur) => {
return pre + calSchoolPoint(cur.quality, cur.star, cur.colorStar);
}, 0);

View File

@@ -1,6 +1,6 @@
import { UserModel } from '@db/User';
import Role from '@db/Role';
import Hero from '@db/Hero';
import { HeroModel } from '@db/Hero';
import { Service } from 'egg';
import { STATUS, REDIS_KEY, WAR_TYPE } from '@consts';
@@ -138,7 +138,7 @@ export default class GMUsers extends Service {
let list = [];
for (let role of roles) {
let heroCount = await Hero.countByCondition({ roleId: role.roleId });
let heroCount = await HeroModel.count({ roleId: role.roleId }).lean();
let itemCount = await ItemModel.count({ roleId: role.roleId }).lean();
let { roleId, roleName, serverId, lv, gold, coin, ce, blockType = 0, blockReason = '', fixedIpLocation, ip, ipLocation, totalPay } = role;
@@ -302,7 +302,7 @@ export default class GMUsers extends Service {
// public async getHeroList(roleId: string) {
// const {ctx} = this;
// let herolist = await Hero.findByRole(roleId);
// let herolist = await HeroModel.findByRole(roleId);
// let defense = await PvpDefenseModel.findByRoleId(roleId);
// let result = Array<Hero>();
@@ -330,8 +330,8 @@ export default class GMUsers extends Service {
public async getHeroList(page: number, pageSize: number, sortField: string, sortOrder: string, form: SearchHeroParam) {
const { ctx } = this;
const heroes = await Hero.findByCondition(page, pageSize, sortField, sortOrder, form);
const total = await Hero.countByCondition( form )
const heroes = await HeroModel.findByCondition(page, pageSize, sortField, sortOrder, form);
const total = await HeroModel.countByCondition( form )
let roleMap = new Map<string, RoleCeType>();
for(let { roleId } of heroes) {
@@ -413,7 +413,7 @@ export default class GMUsers extends Service {
// let hid = parseInt(hidStr);
// let hero = await Hero.findByHidAndRole(hid, roleId);
// let hero = await HeroModel.findByHidAndRole(hid, roleId);
// console.log(hid, roleId, !!hero);
// if (!hero) continue;
// await calPlayerCeAndSave(HERO_SYSTEM_TYPE.LVUP, roleId, hero, { lv: hlv });
@@ -436,7 +436,7 @@ export default class GMUsers extends Service {
// let hid = parseInt(hidStr);
// let hero = await Hero.findByHidAndRole(hid, roleId);
// let hero = await HeroModel.findByHidAndRole(hid, roleId);
// console.log(hid, roleId, !!hero);
// if (!hero) continue;
// await calPlayerCeAndSave(HERO_SYSTEM_TYPE.LVUP, roleId, hero, { star, colorStar, quality });
@@ -460,7 +460,7 @@ export default class GMUsers extends Service {
// let hid = parseInt(hidStr);
// let hero = await Hero.findByHidAndRole(hid, roleId);
// let hero = await HeroModel.findByHidAndRole(hid, roleId);
// console.log(hid, roleId, !!hero);
// if (!hero) continue;
// await calPlayerCeAndSave(HERO_SYSTEM_TYPE.STAGEUP, roleId, hero, { job });