From 4faaf378f63c6aef1e1fb3cbc3dcb85d427c0e4e Mon Sep 17 00:00:00 2001 From: liangtongchuan Date: Mon, 8 Mar 2021 18:32:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BB=E5=AE=9D=EF=BC=9A=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E8=97=8F=E5=AE=9D=E5=9B=BE=E5=8D=A0=E7=94=A8=E7=9A=84=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game-server/app/services/comBattleService.ts | 2 +- shared/db/ComBattleTeam.ts | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/game-server/app/services/comBattleService.ts b/game-server/app/services/comBattleService.ts index 496575c23..e8b42167b 100644 --- a/game-server/app/services/comBattleService.ts +++ b/game-server/app/services/comBattleService.ts @@ -559,7 +559,7 @@ export async function hasEnoughBlueprt(roleId: string, blueprtId: number) { let blueprt = await ItemModel.findbyRoleAndGidAndCount(roleId, blueprtId, 1); if (!blueprt) return false; // 检查是否有已创建未结束的寻宝,预先占用一张藏宝图 - let teams = await ComBattleTeamModel.getTeamByCapAndStatus(roleId, COM_TEAM_STATUS.FIGHTING); + let teams = await ComBattleTeamModel.getBlueprtInUse(roleId, COM_TEAM_STATUS.FIGHTING, blueprtId); if (teams && blueprt.count <= teams.length) return false; return true; } diff --git a/shared/db/ComBattleTeam.ts b/shared/db/ComBattleTeam.ts index 7c3263732..5155952ab 100644 --- a/shared/db/ComBattleTeam.ts +++ b/shared/db/ComBattleTeam.ts @@ -232,6 +232,11 @@ export default class ComBattleTeam extends BaseModel { return teams; } + public static async getBlueprtInUse(roleId: string, status: number, blueprtId: number, lean = true) { + const teams: ComBattleTeamType[] = await ComBattleTeamModel.find({capId: roleId, status, blueprtId}).lean(lean); + return teams; + } + public static async getTeamByBlueprt(blueprtIds: number[], status: number, pub = true, limit = 50, lean = true) { const teams: ComBattleTeamType[] = await ComBattleTeamModel.find({blueprtId: {$in: blueprtIds}, status, pub}).limit(limit).lean(lean); return teams;