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

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 { HeroModel, Connect, HeroSkin, HeroUpdate, EPlace, Talent } from '../../../db/Hero';
import Hero, { 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 HeroModel.findByHidAndRole(hid, roleId);
let hasHero = await Hero.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 HeroModel.findByHidAndRole(hid, roleId);
let hero = await Hero.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 HeroModel.findByHidAndRole(hid, roleId);
let hero = await Hero.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 HeroModel.findByHidAndRole(hid, roleId);
let hero = await Hero.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 HeroModel.findByHidAndRole(hid, roleId);
let hero = await Hero.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 HeroModel.findByHidAndRole(hid, roleId);
let hero = await Hero.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 HeroModel.findByHidAndRole(hid, roleId);
let hero = await Hero.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 HeroModel.findByHidRange(dicFriendShip.hids, roleId);
let heroes = await Hero.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 HeroModel.findByHidAndRole(dicSkin.actorId, roleId);
let hero = await Hero.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 HeroModel.findByHidAndRole(hid, roleId, 'hid consumes star starStage quality');
let hero = await Hero.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 HeroModel.findByHidAndRole(hid, roleId);
let hero = await Hero.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 = HeroModel.getInitInfo(hid, {
let initInfo = Hero.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 HeroModel.findByHidAndRole(hid, roleId);
let hero = await Hero.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 HeroModel.findByHidAndRole(hid, roleId);
let hero = await Hero.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 HeroModel.findByHidAndRole(hid, roleId);
let hero = await Hero.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 HeroModel.findByHidAndRole(hid, roleId);
let hero = await Hero.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 HeroModel.findByHidAndRole(subHid, roleId);
let subHero = await Hero.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 HeroModel.setSubHero(roleId, hid, subSkinId, subHid);
const { preHid, curHero } = await Hero.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 HeroModel.deleteAccount(roleId);
await Hero.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 HeroModel.findByHidAndRole(hid, roleId);
let hero = await Hero.findByHidAndRole(hid, roleId);
if (!hero) return resResult(STATUS.HERO_NOT_FIND);
await HeroModel.deleteHero(roleId, hid);
await Hero.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 HeroModel.findByHidAndRole(hid, roleId);
let hero = await Hero.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 HeroModel.updateHeroInfo(roleId, hid, params);
hero = await Hero.updateHeroInfo(roleId, hid, params);
return resResult(STATUS.SUCCESS, { hero: new HeroParam(hero) });
}