diff --git a/game-server/app/servers/activity/handler/limitPackageHandler.ts b/game-server/app/servers/activity/handler/limitPackageHandler.ts index b5dd99370..79a6571b6 100644 --- a/game-server/app/servers/activity/handler/limitPackageHandler.ts +++ b/game-server/app/servers/activity/handler/limitPackageHandler.ts @@ -2,10 +2,11 @@ import { Application, BackendSession } from 'pinus'; import { deltaDays, resResult } from '../../../pubUtils/util'; import { ACTIVITY_TYPE, FIRST_GIFT_STATE, SERVER_OPEN_TIME, STATUS } from '../../../consts'; import { newPlayerLimitPackageActivity, getPlayerLimitPackageData, limitPackageActivity } from '../../../services/limitPackageService'; -import { addReward, stringToRewardParam, useGiftPackage } from '../../../services/giftPackageService'; +import { addReward, stringToConsumeParam, stringToRewardParam, useGiftPackage } from '../../../services/giftPackageService'; import { ActivityShopModel } from '../../../db/ActivityShop'; import moment = require('moment'); import { RoleModel } from '../../../db/Role'; +import { handleCost } from '../../../services/rewardService'; export default function (app: Application) { return new LimitPackageHandler(app); @@ -108,6 +109,14 @@ export class LimitPackageHandler { if (item.countMax > 0 && item.buyCount >= item.countMax) { return resResult(STATUS.ACTIVITY_MAX_COUNT); } + if (item.price > 0) { + return resResult(STATUS.ACTIVITY_NEED_PAY); + } + + //检查资源 + let consume = stringToConsumeParam(item.consume) + let consumeResult = await handleCost(roleId, sid, consume); + if (!consumeResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH); let rewardArray = stringToRewardParam(item.reward) let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardArray); diff --git a/shared/domain/activityField/limitShopField.ts b/shared/domain/activityField/limitShopField.ts index 2b3b563ee..1a2ab135f 100644 --- a/shared/domain/activityField/limitShopField.ts +++ b/shared/domain/activityField/limitShopField.ts @@ -12,6 +12,7 @@ export class ShopItem { name: string; //名字 price: number; //价格 productID: string; //商品id + consume: string; //消耗 imageName: string; discount: number; //折扣 @@ -26,6 +27,7 @@ export class ShopItem { this.productID = data.productID; this.imageName = data.imageName; this.discount = data.discount ? data.discount : 0; + this.consume = data.consume ? data.consume : ''; this.buyCount = 0; } }