diff --git a/game-server/app/services/gvg/gvgService.ts b/game-server/app/services/gvg/gvgService.ts index b193ca83a..b4ca4746d 100644 --- a/game-server/app/services/gvg/gvgService.ts +++ b/game-server/app/services/gvg/gvgService.ts @@ -39,11 +39,15 @@ export async function createNewGVGConfig() { } // 每周自动解散一些联军 let autoLeagues = await GVGLeagueModel.findAutoCreateLeague(); - let needDissmissLeagueId: string[] = []; + let needDissmissLeagueId: string[] = [], needDissmissLeagueCodes: string[] = []; for(let league of autoLeagues) { - if(!await checkHasCities(league)) needDissmissLeagueId.push(league._id); + if(!await checkHasCities(league)) { + needDissmissLeagueId.push(league._id); + needDissmissLeagueCodes.push(league.leagueCode); + } } await GVGLeagueModel.dismissByIds(needDissmissLeagueId); + await GuildModel.leagueAutoDismiss(needDissmissLeagueCodes); await pinus.app.rpc.systimer.systimerRemote.initGVGConfigSchedule.broadcast(); return config; } diff --git a/shared/db/Guild.ts b/shared/db/Guild.ts index e22e30902..55edd4bec 100644 --- a/shared/db/Guild.ts +++ b/shared/db/Guild.ts @@ -355,6 +355,10 @@ export default class Guild extends BaseModel { const result: GuildType = await GuildModel.findOneAndUpdate({ leagueCode }, { $set: { leagueCode: '' }}).lean(); return result; } + + public static async leagueAutoDismiss(leagueCodes: string[]) { + await GuildModel.updateMany({ leagueCode: { $in: leagueCodes } }, { $set: { leagueCode: '' }}); + } } export const GuildModel = getModelForClass(Guild);