From 69687e4eb860b0b0d3852f751c6fef538f952402 Mon Sep 17 00:00:00 2001 From: luying Date: Wed, 29 Sep 2021 19:57:24 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=EF=BC=9A=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=94=A8debug=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/servers/role/handler/roleHandler.ts | 16 +- game-server/config/clientProtos.ts | 6 +- gm-server/app/service/users.ts | 199 +---------------- shared/pubUtils/roleUtil.ts | 205 ++++++++++++++++++ 4 files changed, 225 insertions(+), 201 deletions(-) diff --git a/game-server/app/servers/role/handler/roleHandler.ts b/game-server/app/servers/role/handler/roleHandler.ts index 06f9d3839..42193befc 100644 --- a/game-server/app/servers/role/handler/roleHandler.ts +++ b/game-server/app/servers/role/handler/roleHandler.ts @@ -12,7 +12,7 @@ import { SclResultInter, SclPosInter } from '../../../pubUtils/interface'; import { SchoolModel } from '../../../db/School'; import { getTeraphStrengthenResult, getSchoolList } from '../../../services/roleService' import { calPlayerCeAndSave, calAllHeroCe } from '../../../services/playerCeService'; -import { HERO_SYSTEM_TYPE, LINEUP_NUM, ROLE_SELECT, REDIS_KEY, TASK_TYPE, DEFAULT_HEROES, DEFAULT_HERO_LV, DEFAULT_ITEMS, DEFAULT_EQUIPS, DEFAULT_GOLD, DEFAULT_COIN } from '../../../consts'; +import { HERO_SYSTEM_TYPE, LINEUP_NUM, ROLE_SELECT, REDIS_KEY, TASK_TYPE, DEFAULT_HEROES, DEFAULT_HERO_LV, DEFAULT_ITEMS, DEFAULT_EQUIPS, DEFAULT_GOLD, DEFAULT_COIN, DEBUG_MAGIC_WORD } from '../../../consts'; import { checkBattleHeroesByHid } from '../../../services/normalBattleService'; import { Rank } from '../../../services/rankService'; import { updateUserInfo } from '../../../services/redisService'; @@ -20,7 +20,7 @@ import { checkTaskWithHero, checkTask, checkTaskWithArgs, checkActivityTask } fr import { getGoldObject, getCoinObject } from '../../../pubUtils/itemUtils'; import { RScriptRecordModel } from '../../../db/RScriptRecord'; import { SkinModel, SkinUpdate } from '../../../db/Skin'; -import { CreateHeroes } from '../../../pubUtils/roleUtil'; +import { CreateHeroes, deletRole } from '../../../pubUtils/roleUtil'; import { Figure } from '../../../domain/dbGeneral'; import { getActivities } from '../../../services/activity/activityService'; @@ -536,4 +536,16 @@ export class RoleHandler { return resResult(STATUS.SUCCESS); } + // debug接口,清空某个角色 + async debugClearRole(msg: { magicWord: string }, session: BackendSession) { + const { magicWord } = msg; + if (magicWord !== DEBUG_MAGIC_WORD) { + return resResult(STATUS.TOKEN_ERR); + } + + let roleId = session.get('roleId'); + await deletRole(roleId); + + return resResult(STATUS.SUCCESS); + } } diff --git a/game-server/config/clientProtos.ts b/game-server/config/clientProtos.ts index 3c1ef87eb..fc413c394 100644 --- a/game-server/config/clientProtos.ts +++ b/game-server/config/clientProtos.ts @@ -152,9 +152,9 @@ module.exports = { "role.heroHandler.roleTeraphQualityUp": { "required uInt32 id": 1 }, - "role.roleHandler.initRole": { - "required string roleName": 1 - }, + // "role.roleHandler.initRole": { + // "required string roleName": 1 + // }, "battle.normalBattleHandler.getBattleList": { "required uInt32 type": 1 }, diff --git a/gm-server/app/service/users.ts b/gm-server/app/service/users.ts index 4f08889af..8748a9686 100644 --- a/gm-server/app/service/users.ts +++ b/gm-server/app/service/users.ts @@ -2,20 +2,6 @@ import { UserModel } from '@db/User'; import { CeAttrDataRole, RoleModel } from '@db/Role'; import { HeroModel } from '@db/Hero'; import { EquipModel } from '@db/Equip'; -import { ActionPointModel } from '@db/ActionPoint'; -import { BattleDropModel } from '@db/BattleDrop'; -import { BattleRecordModel } from '@db/BattleRecord'; -import { BattleSweepRecordModel } from '@db/BattleSweepRecord'; -import { DailyRecordModel } from '@db/DailyRecord'; -import { EventRecordModel } from '@db/EventRecord'; -import { ExpeditionPointModel } from '@db/ExpeditionPoint'; -import { ExpeditionRecordModel } from '@db/ExpeditionRecord'; -import { ExpeditionWarRecordModel } from '@db/ExpeditionWarRecord'; -import { HangUpRecordModel } from '@db/HangUpRecord'; -import { HangUpSpdUpRecModel } from '@db/HangUpSpdUpRec'; -import { SearchRecordModel } from '@db/SearchRecord'; -import { TowerRecordModel } from '@db/TowerRecord'; -import { TowerTaskRecModel } from '@db/TowerTaskRec'; import { PvpDefenseModel } from '@db/PvpDefense'; import { Service } from 'egg'; @@ -25,81 +11,14 @@ import { ITID, COUNTER } from '@consts'; import { ItemModel } from '@db/Item'; import { gameData, getExpByLv } from '@pubUtils/data'; import { calPlayerCeAndSave, calculatetopLineup, calEquipSeids } from '@pubUtils/playerCe'; -import { SchoolModel } from '@db/School'; import { AttributeCal } from '@domain/roleField/attribute'; import { smsModel } from '@db/Sms'; import { isString } from 'underscore'; -import { FriendShipModel } from '@db/FriendShip'; -import { FriendApplyModel } from '@db/FriendApply'; -import { FriendRelationModel } from '@db/FriendRelation'; import { addSkin, addEquips, addBags } from '@pubUtils/itemUtils'; import { GiftCodeModel } from '@db/GiftCode'; import { GiftCodeDetailModel } from '@db/GiftCodeDetail'; -import { CreateHeroes } from '@pubUtils/roleUtil'; -import { ActivityBuyRecordsModel } from '@db/ActivityBuyRecords'; -import { ActivityDailyChallengesModel } from '@db/ActivityDailyChallenges'; -import { ActivityDailyCoinModel } from '@db/ActivityDailyCoin'; -import { ActivityDailyGiftsModel } from '@db/ActivityDailyGifts'; -import { ActivityDailyGKModel } from '@db/ActivityDailyGK'; -import { ActivityDailyMealModel } from '@db/ActivityDailyMeal'; -import { ActivityDailyRMBGiftsModel } from '@db/ActivityDailyRMBGifts'; -import { ActivityFirstGiftModel } from '@db/ActivityFirstGift'; -import { ActivityGrowthFundModel } from '@db/ActivityGrowthFund'; -import { ActivityGrowthModel } from '@db/ActivityGrowth'; -import { ActivityGrowthPointModel } from '@db/ActivityGrowthPoint'; -import { ActivityMonopolyModel } from '@db/ActivityMonopoly'; -import { ActivityMonopolyLandModel } from '@db/ActivityMonopolyLand'; -import { ActivityMonthlyTicketModel } from '@db/ActivityMonthlyTicket'; -import { ActivityNewHeroGachaModel } from '@db/ActivityNewHeroGacha'; -import { ActivityNewHeroGiftModel } from '@db/ActivityNewHeroGift'; -import { ActivityNewHeroGKModel } from '@db/ActivityNewHeroGK'; -import { ActivityPopUpShopModel } from '@db/ActivityPopUpShop'; -import { ActivityPopUpShopRecordModel } from '@db/ActivityPopUpShopRecord'; -import { ActivityRechargeMoneyModel } from '@db/ActivityRechargeMoney'; -import { ActivityRefreshShopModel } from '@db/ActivityRefreshShop'; -import { ActivityRefreshTaskModel } from '@db/ActivityRefreshTask'; -import { ActivityRefreshTaskPointModel } from '@db/ActivityRefreshTaskPoint'; -import { ActivitySelfServiceGoodsModel } from '@db/ActivitySelfServiceGoods'; -import { ActivitySelfServiceModel } from '@db/ActivitySelfService'; -import { ActivitySelfServiceShopModel } from '@db/ActivitySelfServiceShop'; -import { ActivityShopModel } from '@db/ActivityShop'; -import { ActivitySignInModel } from '@db/ActivitySignIn'; -import { ActivityTaskPointModel } from '@db/ActivityTaskPoint'; -import { ActivityThirtyDaysModel } from '@db/ActivityThirtyDays'; -import { ActivityThirtyDaysPointRewardModel } from '@db/ActivityThirtyDaysPointReward'; -import { ActivityTreasureHuntFirstPageModel } from '@db/ActivityTreasureHuntFirstPage'; -import { ActivityTreasureHuntShopModel } from '@db/ActivityTreasureHuntShop'; -import { ActivityTreasureHuntTaskModel } from '@db/ActivityTreasureHuntTask'; -import { ActivityTreasureHuntTreasureShopModel } from '@db/ActivityTreasureHuntTreasureShop'; -import { ActivityVipRechargeMoneyModel } from '@db/ActivityVipRechargeMoney'; -import { BattleBlueprtDropModel } from '@db/BattleBlueprtDrop'; -import { ChatInfoModel } from '@db/ChatInfo'; -import { DungeonFirstModel } from '@db/DungeonFirst'; -import { EquipPrintDropModel } from '@db/EquipPrintDrop'; -import { FriendPointModel } from '@db/FriendPoint'; -import { FriendPresentLogModel } from '@db/FriendPresentLog'; -import { GroupMailModel } from '@db/GroupMail'; -import { GuildModel } from '@db/Guild'; -import { UserGuildModel } from '@db/UserGuild'; -import { UserGuildApplyModel } from '@db/UserGuildApply'; -import { GuildRecModel } from '@db/GuildRec'; -import { MailModel } from '@db/Mail'; -import { MessageModel } from '@db/Message'; -import { PrivateMessageModel } from '@db/PrivateMessage'; +import { CreateHeroes, deletRole } from '@pubUtils/roleUtil'; import { RScriptRecordModel } from '@db/RScriptRecord'; -import { ScriptBarrageModel } from '@db/ScriptBarrage'; -import { ServerMailModel } from '@db/ServerMail'; -import { SkinModel } from '@db/Skin'; -import { UserGachaModel } from '@db/UserGacha'; -import { UserGachaRecModel } from '@db/UserGachaRec'; -import { UserGiftCodeModel } from '@db/UserGiftCode'; -import { UserGuildActivityRecModel } from '@db/UserGuildActivityRec'; -import { UserOrderModel } from '@db/UserOrder'; -import { UserShopModel } from '@db/UserShop'; -import { UserTaskModel } from '@db/UserTask'; -import { UserTaskHistoryModel } from '@db/UserTaskHistory'; -import { UserTaskRecModel } from '@db/UserTaskRec'; -import { WishPoolReportModel } from '@db/WishPoolReport'; import { DicWar } from '@pubUtils/dictionary/DicWar'; // import { resResult } from '@pubUtils/util'; @@ -217,120 +136,8 @@ export default class GMUsers extends Service { public async deleteRole(roleId: string) { console.log('enter Auth deleteRole'); const ctx = this.ctx; - let role = await RoleModel.findByRoleId(roleId); - if(!role) return ctx.service.utils.resResult(STATUS.WRONG_PARMS); - await ActionPointModel.deleteMany({roleId}); - await ActivityBuyRecordsModel.deleteMany({ roleId }); - await ActivityDailyChallengesModel.deleteMany({ roleId }); - await ActivityDailyCoinModel.deleteMany({ roleId }); - await ActivityDailyGiftsModel.deleteMany({ roleId }); - await ActivityDailyGKModel.deleteMany({ roleId }); - await ActivityDailyMealModel.deleteMany({ roleId }); - await ActivityDailyRMBGiftsModel.deleteMany({ roleId }); - await ActivityFirstGiftModel.deleteMany({ roleId }); - await ActivityGrowthModel.deleteMany({ roleId }); - await ActivityGrowthPointModel.deleteMany({ roleId }); - await ActivityGrowthFundModel.deleteMany({ roleId }); - await ActivityMonopolyModel.deleteMany({ roleId }); - await ActivityMonopolyLandModel.deleteMany({ roleId }); - await ActivityMonthlyTicketModel.deleteMany({ roleId }); - await ActivityNewHeroGachaModel.deleteMany({ roleId }); - await ActivityNewHeroGiftModel.deleteMany({ roleId }); - await ActivityNewHeroGKModel.deleteMany({ roleId }); - await ActivityPopUpShopModel.deleteMany({ roleId }); - await ActivityPopUpShopRecordModel.deleteMany({ roleId }); - await ActivityRechargeMoneyModel.deleteMany({ roleId }); - await ActivityRefreshShopModel.deleteMany({ roleId }); - await ActivityRefreshTaskModel.deleteMany({ roleId }); - await ActivityRefreshTaskPointModel.deleteMany({ roleId }); - await ActivitySelfServiceModel.deleteMany({ roleId }); - await ActivitySelfServiceGoodsModel.deleteMany({ roleId }); - await ActivitySelfServiceShopModel.deleteMany({ roleId }); - await ActivityShopModel.deleteMany({ roleId }); - await ActivitySignInModel.deleteMany({ roleId }); - await ActivityTaskPointModel.deleteMany({ roleId }); - await ActivityThirtyDaysModel.deleteMany({ roleId }); - await ActivityThirtyDaysPointRewardModel.deleteMany({ roleId }); - await ActivityTreasureHuntFirstPageModel.deleteMany({ roleId }); - await ActivityTreasureHuntShopModel.deleteMany({ roleId }); - await ActivityTreasureHuntTaskModel.deleteMany({ roleId }); - await ActivityTreasureHuntTreasureShopModel.deleteMany({ roleId }); - await ActivityVipRechargeMoneyModel.deleteMany({ roleId }); - await BattleBlueprtDropModel.deleteMany({ roleId }); - await BattleDropModel.deleteMany({ roleId }); - await BattleRecordModel.deleteMany({ roleId }); - await BattleSweepRecordModel.deleteMany({ roleId }); - await ChatInfoModel.deleteMany({ roleId }); - await ChatInfoModel.updateMany({ 'recentPrivateChats.targetRoleId': roleId }, { $pull: { recentPrivateChats: { targetRoleId: roleId } } }); - await DailyRecordModel.deleteMany({ roleId }); - await DungeonFirstModel.deleteMany({ roleId }); - await EquipModel.deleteMany({ roleId }); - await EquipPrintDropModel.deleteMany({ roleId }); - await EventRecordModel.deleteMany({ roleId }); - await ExpeditionPointModel.deleteMany({ roleId }); - await ExpeditionRecordModel.deleteMany({ roleId }); - await ExpeditionWarRecordModel.deleteMany({ roleId }); - await FriendApplyModel.deleteMany({ roleId }); - await FriendApplyModel.deleteMany({ frdRoleId: roleId }); - await FriendPointModel.deleteMany({ roleId }); - await FriendPresentLogModel.deleteMany({ roleId }); - await FriendPresentLogModel.deleteMany({ hisRoleId: roleId }); - await FriendRelationModel.deleteMany({ roleId }); - await FriendRelationModel.updateMany({ 'friends.roleId': roleId }, { $pull: { friends: { roleId }} }); - await FriendRelationModel.updateMany({ 'blacklist.roleId': roleId }, { $pull: { blacklist: { roleId }} }); - await FriendShipModel.deleteMany({ roleIdA: roleId }); - await FriendShipModel.deleteMany({ roleIdB: roleId }); - await GroupMailModel.updateMany({ 'roleStatus.roleId': roleId }, { $pull: { roleStatus: { roleId } } }); - await GroupMailModel.deleteMany({ roleId }); - await GroupMailModel.deleteMany({ targetRoleId: roleId }); - let userGuild = await UserGuildModel.getMyGuild(roleId); - if(userGuild) { - if(userGuild.auth == 1) { - const guild = await GuildModel.dismiss(userGuild.guildCode, role.serverId); - await UserGuildModel.dismiss(userGuild.guildCode); - const { members } = guild; - await RoleModel.dissmissGuild(members); - await UserGuildApplyModel.deleteApplyByGuild(userGuild.guildCode); - - } else { - await GuildModel.update({ members: { $in: [roleId] } }, { $pull: { members: roleId }, $inc: { memberCnt: -1, managerCnt: userGuild.auth == 2? -1: 0, guildCe: -role.ce }, $set: { isMemberMax: false } }) - } - } - await GuildModel.updateMany({ invitedMembers: { $in: [roleId] } }, { $pull: { invitedMembers: roleId } }); - await GuildRecModel.deleteMany({ roleId }); - await HangUpSpdUpRecModel.deleteMany({ roleId }); - await HangUpRecordModel.deleteMany({ roleId }); - await HeroModel.deleteMany({ roleId }); - await ItemModel.deleteMany({ roleId }); - await MailModel.deleteMany({ roleId }); - await MessageModel.deleteMany({ roleId }); - await MessageModel.deleteMany({ targetRoleId: roleId }); - await PrivateMessageModel.deleteMany({ roleId }); - await PrivateMessageModel.deleteMany({ targetRoleId: roleId }); - await PvpDefenseModel.deleteMany({ roleId }); - await RScriptRecordModel.deleteMany({ roleId }); - await SchoolModel.deleteMany({ roleId }); - await ScriptBarrageModel.deleteMany({ roleId }); - await SearchRecordModel.deleteMany({ roleId }); - await ServerMailModel.updateMany({ 'roleStatus.roleId': roleId }, { $pull: { roleStatus: { roleId } } }); - await SkinModel.deleteMany({ roleId }); - await TowerRecordModel.deleteMany({ roleId }); - await TowerTaskRecModel.deleteMany({ roleId }); - await UserGachaModel.deleteMany({ roleId }); - await UserGachaRecModel.deleteMany({ roleId }); - await UserGiftCodeModel.deleteMany({ roleId }); - await UserGuildModel.deleteMany({ roleId }); - await UserGuildActivityRecModel.deleteMany({ roleId }); - await UserGuildApplyModel.deleteMany({ roleId }); - await UserOrderModel.deleteMany({ roleId }); - await UserShopModel.deleteMany({ roleId }); - await UserTaskModel.deleteMany({ roleId }); - await UserTaskHistoryModel.deleteMany({ roleId }); - await UserTaskRecModel.deleteMany({ roleId }); - await WishPoolReportModel.deleteMany({ wishRoleId: roleId}); - await WishPoolReportModel.deleteMany({ dntRoleId: roleId}); - - await RoleModel.deleteMany({ roleId }); + let result = await deletRole(roleId); + if(!result) return ctx.service.utils.resResult(STATUS.WRONG_PARMS); return ctx.service.utils.resResult(STATUS.SUCCESS); } diff --git a/shared/pubUtils/roleUtil.ts b/shared/pubUtils/roleUtil.ts index 448d578f9..43a3de96a 100644 --- a/shared/pubUtils/roleUtil.ts +++ b/shared/pubUtils/roleUtil.ts @@ -16,6 +16,89 @@ import { calculatetopLineup, } from "./playerCe"; import { GuildModel, GuildType } from "../db/Guild"; import { PvpDefenseModel } from "../db/PvpDefense"; import { ActivityModelType } from "../db/Activity"; +import { EquipModel } from '../db/Equip'; +import { ActionPointModel } from '../db/ActionPoint'; +import { BattleDropModel } from '../db/BattleDrop'; +import { BattleRecordModel } from '../db/BattleRecord'; +import { BattleSweepRecordModel } from '../db/BattleSweepRecord'; +import { DailyRecordModel } from '../db/DailyRecord'; +import { EventRecordModel } from '../db/EventRecord'; +import { ExpeditionPointModel } from '../db/ExpeditionPoint'; +import { ExpeditionRecordModel } from '../db/ExpeditionRecord'; +import { ExpeditionWarRecordModel } from '../db/ExpeditionWarRecord'; +import { HangUpRecordModel } from '../db/HangUpRecord'; +import { HangUpSpdUpRecModel } from '../db/HangUpSpdUpRec'; +import { SearchRecordModel } from '../db/SearchRecord'; +import { TowerRecordModel } from '../db/TowerRecord'; +import { TowerTaskRecModel } from '../db/TowerTaskRec'; +import { ItemModel } from '../db/Item'; +import { SchoolModel } from '../db/School'; +import { FriendShipModel } from '../db/FriendShip'; +import { FriendApplyModel } from '../db/FriendApply'; +import { FriendRelationModel } from '../db/FriendRelation'; +import { ActivityBuyRecordsModel } from '../db/ActivityBuyRecords'; +import { ActivityDailyChallengesModel } from '../db/ActivityDailyChallenges'; +import { ActivityDailyCoinModel } from '../db/ActivityDailyCoin'; +import { ActivityDailyGiftsModel } from '../db/ActivityDailyGifts'; +import { ActivityDailyGKModel } from '../db/ActivityDailyGK'; +import { ActivityDailyMealModel } from '../db/ActivityDailyMeal'; +import { ActivityDailyRMBGiftsModel } from '../db/ActivityDailyRMBGifts'; +import { ActivityFirstGiftModel } from '../db/ActivityFirstGift'; +import { ActivityGrowthFundModel } from '../db/ActivityGrowthFund'; +import { ActivityGrowthModel } from '../db/ActivityGrowth'; +import { ActivityGrowthPointModel } from '../db/ActivityGrowthPoint'; +import { ActivityMonopolyModel } from '../db/ActivityMonopoly'; +import { ActivityMonopolyLandModel } from '../db/ActivityMonopolyLand'; +import { ActivityMonthlyTicketModel } from '../db/ActivityMonthlyTicket'; +import { ActivityNewHeroGachaModel } from '../db/ActivityNewHeroGacha'; +import { ActivityNewHeroGiftModel } from '../db/ActivityNewHeroGift'; +import { ActivityNewHeroGKModel } from '../db/ActivityNewHeroGK'; +import { ActivityPopUpShopModel } from '../db/ActivityPopUpShop'; +import { ActivityPopUpShopRecordModel } from '../db/ActivityPopUpShopRecord'; +import { ActivityRechargeMoneyModel } from '../db/ActivityRechargeMoney'; +import { ActivityRefreshShopModel } from '../db/ActivityRefreshShop'; +import { ActivityRefreshTaskModel } from '../db/ActivityRefreshTask'; +import { ActivityRefreshTaskPointModel } from '../db/ActivityRefreshTaskPoint'; +import { ActivitySelfServiceGoodsModel } from '../db/ActivitySelfServiceGoods'; +import { ActivitySelfServiceModel } from '../db/ActivitySelfService'; +import { ActivitySelfServiceShopModel } from '../db/ActivitySelfServiceShop'; +import { ActivityShopModel } from '../db/ActivityShop'; +import { ActivitySignInModel } from '../db/ActivitySignIn'; +import { ActivityTaskPointModel } from '../db/ActivityTaskPoint'; +import { ActivityThirtyDaysModel } from '../db/ActivityThirtyDays'; +import { ActivityThirtyDaysPointRewardModel } from '../db/ActivityThirtyDaysPointReward'; +import { ActivityTreasureHuntFirstPageModel } from '../db/ActivityTreasureHuntFirstPage'; +import { ActivityTreasureHuntShopModel } from '../db/ActivityTreasureHuntShop'; +import { ActivityTreasureHuntTaskModel } from '../db/ActivityTreasureHuntTask'; +import { ActivityTreasureHuntTreasureShopModel } from '../db/ActivityTreasureHuntTreasureShop'; +import { ActivityVipRechargeMoneyModel } from '../db/ActivityVipRechargeMoney'; +import { BattleBlueprtDropModel } from '../db/BattleBlueprtDrop'; +import { ChatInfoModel } from '../db/ChatInfo'; +import { DungeonFirstModel } from '../db/DungeonFirst'; +import { EquipPrintDropModel } from '../db/EquipPrintDrop'; +import { FriendPointModel } from '../db/FriendPoint'; +import { FriendPresentLogModel } from '../db/FriendPresentLog'; +import { GroupMailModel } from '../db/GroupMail'; +import { UserGuildModel } from '../db/UserGuild'; +import { UserGuildApplyModel } from '../db/UserGuildApply'; +import { GuildRecModel } from '../db/GuildRec'; +import { MailModel } from '../db/Mail'; +import { MessageModel } from '../db/Message'; +import { PrivateMessageModel } from '../db/PrivateMessage'; +import { RScriptRecordModel } from '../db/RScriptRecord'; +import { ScriptBarrageModel } from '../db/ScriptBarrage'; +import { ServerMailModel } from '../db/ServerMail'; +import { UserGachaModel } from '../db/UserGacha'; +import { UserGachaRecModel } from '../db/UserGachaRec'; +import { UserGiftCodeModel } from '../db/UserGiftCode'; +import { UserGuildActivityRecModel } from '../db/UserGuildActivityRec'; +import { UserOrderModel } from '../db/UserOrder'; +import { UserShopModel } from '../db/UserShop'; +import { UserTaskModel } from '../db/UserTask'; +import { UserTaskHistoryModel } from '../db/UserTaskHistory'; +import { UserTaskRecModel } from '../db/UserTaskRec'; +import { WishPoolReportModel } from '../db/WishPoolReport'; +import { pick } from "underscore"; // 储存在内存中的初始数据 export function getInitRoleInfo() { @@ -255,4 +338,126 @@ export class CreateHeroes extends UpdateHeroes { return { ...cur, ce: reduceCe(cur.ce)} }); } +} + + +export async function deletRole(roleId: string) { + let role = await RoleModel.findByRoleId(roleId); + if(!role || !role.hasInit) return false; + await ActionPointModel.deleteMany({roleId}); + await ActivityBuyRecordsModel.deleteMany({ roleId }); + await ActivityDailyChallengesModel.deleteMany({ roleId }); + await ActivityDailyCoinModel.deleteMany({ roleId }); + await ActivityDailyGiftsModel.deleteMany({ roleId }); + await ActivityDailyGKModel.deleteMany({ roleId }); + await ActivityDailyMealModel.deleteMany({ roleId }); + await ActivityDailyRMBGiftsModel.deleteMany({ roleId }); + await ActivityFirstGiftModel.deleteMany({ roleId }); + await ActivityGrowthModel.deleteMany({ roleId }); + await ActivityGrowthPointModel.deleteMany({ roleId }); + await ActivityGrowthFundModel.deleteMany({ roleId }); + await ActivityMonopolyModel.deleteMany({ roleId }); + await ActivityMonopolyLandModel.deleteMany({ roleId }); + await ActivityMonthlyTicketModel.deleteMany({ roleId }); + await ActivityNewHeroGachaModel.deleteMany({ roleId }); + await ActivityNewHeroGiftModel.deleteMany({ roleId }); + await ActivityNewHeroGKModel.deleteMany({ roleId }); + await ActivityPopUpShopModel.deleteMany({ roleId }); + await ActivityPopUpShopRecordModel.deleteMany({ roleId }); + await ActivityRechargeMoneyModel.deleteMany({ roleId }); + await ActivityRefreshShopModel.deleteMany({ roleId }); + await ActivityRefreshTaskModel.deleteMany({ roleId }); + await ActivityRefreshTaskPointModel.deleteMany({ roleId }); + await ActivitySelfServiceModel.deleteMany({ roleId }); + await ActivitySelfServiceGoodsModel.deleteMany({ roleId }); + await ActivitySelfServiceShopModel.deleteMany({ roleId }); + await ActivityShopModel.deleteMany({ roleId }); + await ActivitySignInModel.deleteMany({ roleId }); + await ActivityTaskPointModel.deleteMany({ roleId }); + await ActivityThirtyDaysModel.deleteMany({ roleId }); + await ActivityThirtyDaysPointRewardModel.deleteMany({ roleId }); + await ActivityTreasureHuntFirstPageModel.deleteMany({ roleId }); + await ActivityTreasureHuntShopModel.deleteMany({ roleId }); + await ActivityTreasureHuntTaskModel.deleteMany({ roleId }); + await ActivityTreasureHuntTreasureShopModel.deleteMany({ roleId }); + await ActivityVipRechargeMoneyModel.deleteMany({ roleId }); + await BattleBlueprtDropModel.deleteMany({ roleId }); + await BattleDropModel.deleteMany({ roleId }); + await BattleRecordModel.deleteMany({ roleId }); + await BattleSweepRecordModel.deleteMany({ roleId }); + await ChatInfoModel.deleteMany({ roleId }); + await ChatInfoModel.updateMany({ 'recentPrivateChats.targetRoleId': roleId }, { $pull: { recentPrivateChats: { targetRoleId: roleId } } }); + await DailyRecordModel.deleteMany({ roleId }); + await DungeonFirstModel.deleteMany({ roleId }); + await EquipModel.deleteMany({ roleId }); + await EquipPrintDropModel.deleteMany({ roleId }); + await EventRecordModel.deleteMany({ roleId }); + await ExpeditionPointModel.deleteMany({ roleId }); + await ExpeditionRecordModel.deleteMany({ roleId }); + await ExpeditionWarRecordModel.deleteMany({ roleId }); + await FriendApplyModel.deleteMany({ roleId }); + await FriendApplyModel.deleteMany({ frdRoleId: roleId }); + await FriendPointModel.deleteMany({ roleId }); + await FriendPresentLogModel.deleteMany({ roleId }); + await FriendPresentLogModel.deleteMany({ hisRoleId: roleId }); + await FriendRelationModel.deleteMany({ roleId }); + await FriendRelationModel.updateMany({ 'friends.roleId': roleId }, { $pull: { friends: { roleId }} }); + await FriendRelationModel.updateMany({ 'blacklist.roleId': roleId }, { $pull: { blacklist: { roleId }} }); + await FriendShipModel.deleteMany({ roleIdA: roleId }); + await FriendShipModel.deleteMany({ roleIdB: roleId }); + await GroupMailModel.updateMany({ 'roleStatus.roleId': roleId }, { $pull: { roleStatus: { roleId } } }); + await GroupMailModel.deleteMany({ roleId }); + await GroupMailModel.deleteMany({ targetRoleId: roleId }); + let userGuild = await UserGuildModel.getMyGuild(roleId); + if(userGuild) { + if(userGuild.auth == 1) { + const guild = await GuildModel.dismiss(userGuild.guildCode, role.serverId); + await UserGuildModel.dismiss(userGuild.guildCode); + const { members } = guild; + await RoleModel.dissmissGuild(members); + await UserGuildApplyModel.deleteApplyByGuild(userGuild.guildCode); + + } else { + await GuildModel.update({ members: { $in: [roleId] } }, { $pull: { members: roleId }, $inc: { memberCnt: -1, managerCnt: userGuild.auth == 2? -1: 0, guildCe: -role.ce }, $set: { isMemberMax: false } }) + } + } + await GuildModel.updateMany({ invitedMembers: { $in: [roleId] } }, { $pull: { invitedMembers: roleId } }); + await GuildRecModel.deleteMany({ roleId }); + await HangUpSpdUpRecModel.deleteMany({ roleId }); + await HangUpRecordModel.deleteMany({ roleId }); + await HeroModel.deleteMany({ roleId }); + await ItemModel.deleteMany({ roleId }); + await MailModel.deleteMany({ roleId }); + await MessageModel.deleteMany({ roleId }); + await MessageModel.deleteMany({ targetRoleId: roleId }); + await PrivateMessageModel.deleteMany({ roleId }); + await PrivateMessageModel.deleteMany({ targetRoleId: roleId }); + await PvpDefenseModel.deleteMany({ roleId }); + await RScriptRecordModel.deleteMany({ roleId }); + await SchoolModel.deleteMany({ roleId }); + await ScriptBarrageModel.deleteMany({ roleId }); + await SearchRecordModel.deleteMany({ roleId }); + await ServerMailModel.updateMany({ 'roleStatus.roleId': roleId }, { $pull: { roleStatus: { roleId } } }); + await SkinModel.deleteMany({ roleId }); + await TowerRecordModel.deleteMany({ roleId }); + await TowerTaskRecModel.deleteMany({ roleId }); + await UserGachaModel.deleteMany({ roleId }); + await UserGachaRecModel.deleteMany({ roleId }); + await UserGiftCodeModel.deleteMany({ roleId }); + await UserGuildModel.deleteMany({ roleId }); + await UserGuildActivityRecModel.deleteMany({ roleId }); + await UserGuildApplyModel.deleteMany({ roleId }); + await UserOrderModel.deleteMany({ roleId }); + await UserShopModel.deleteMany({ roleId }); + await UserTaskModel.deleteMany({ roleId }); + await UserTaskHistoryModel.deleteMany({ roleId }); + await UserTaskRecModel.deleteMany({ roleId }); + await WishPoolReportModel.deleteMany({ wishRoleId: roleId}); + await WishPoolReportModel.deleteMany({ dntRoleId: roleId}); + + let doc = new RoleModel(); + const update = Object.assign(doc.toJSON(), pick(role, ['serverType', 'userInfo', 'seqId', 'serverId']), { roleName: role.roleId }); + delete update._id; + await RoleModel.updateMany({ roleId }, { $set: update }); + return true; } \ No newline at end of file