From f4235a21c4c556bbdeb3e28ea91c5b8bd583e7f7 Mon Sep 17 00:00:00 2001 From: luying Date: Fri, 18 Nov 2022 16:31:06 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=88=20perf(=E6=B4=BB=E5=8A=A8):=20?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8=E9=80=9A=E7=94=A8=E5=95=86=E5=BA=97=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0count=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../servers/activity/handler/refreshShopHandler.ts | 13 +++++++------ game-server/app/services/checkParam.ts | 4 ++-- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/game-server/app/servers/activity/handler/refreshShopHandler.ts b/game-server/app/servers/activity/handler/refreshShopHandler.ts index 81e32d19e..789d67a70 100644 --- a/game-server/app/servers/activity/handler/refreshShopHandler.ts +++ b/game-server/app/servers/activity/handler/refreshShopHandler.ts @@ -42,8 +42,8 @@ export class RefreshShopHandler { * @param {BackendSession} session * @memberof RefreshShopHandler */ - async buyGood(msg: { activityId: number, roundIndex: number, id: number, pageIndex: number }, session: BackendSession) { - const { activityId, roundIndex, id, pageIndex } = msg; + async buyGood(msg: { activityId: number, roundIndex: number, id: number, pageIndex: number, count: number }, session: BackendSession) { + const { activityId, roundIndex, id, pageIndex, count = 1 } = msg; const roleId = session.get('roleId'); const serverId = session.get('serverId'); const sid = session.get('sid'); @@ -63,7 +63,7 @@ export class RefreshShopHandler { if (!item) { return resResult(STATUS.ACTIVITY_ID_ERROR); } - if (item.countMax > 0 && item.buyCount >= item.countMax) { + if (item.countMax > 0 && item.buyCount + count > item.countMax) { return resResult(STATUS.ACTIVITY_MAX_COUNT); } if (item.price > 0) { @@ -71,16 +71,17 @@ export class RefreshShopHandler { } //检查资源 - let consume = stringToConsumeParam(item.consume) + let consumeArr = new Array(count).fill(item.consume); + let consume = stringToConsumeParam(...consumeArr); let consumeResult = await handleCost(roleId, sid, consume, ITEM_CHANGE_REASON.BUY_REFRESH_SHOP); if (!consumeResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH); - let rewardArray = stringToRewardParam(item.reward) + let rewardArray = stringToRewardParam(item.reward).map(cur => ({...cur, count: cur.count * count })); let result = await addReward(roleId, roleName, sid, serverId, rewardArray, ITEM_CHANGE_REASON.BUY_REFRESH_SHOP); await ActivityRefreshShopModel.addRecord(activityId, roleId, roundIndex, pageIndex, id); - item.buyCount += 1; + item.buyCount += count; return resResult(STATUS.SUCCESS, Object.assign(result, { param: { activityId, roundIndex, id }, item: item diff --git a/game-server/app/services/checkParam.ts b/game-server/app/services/checkParam.ts index ffd14ae53..c96dcb5a1 100644 --- a/game-server/app/services/checkParam.ts +++ b/game-server/app/services/checkParam.ts @@ -303,8 +303,8 @@ export function checkRouteParam(route: string, msg: any) { } case 'activity.refreshShopHandler.buyGood': { - let { activityId, roundIndex, id, pageIndex } = msg; - if(!checkNaturalNumbers(activityId, roundIndex, id, pageIndex)) return false; + let { activityId, roundIndex, id, pageIndex, count } = msg; + if(!checkNaturalNumbers(activityId, roundIndex, id, pageIndex, count)) return false; break; } case 'activity.refreshTaskHandler.getReward':