diff --git a/game-server/app/servers/role/handler/itemHandler.ts b/game-server/app/servers/role/handler/itemHandler.ts index de3bce5c8..d3da7b2ee 100644 --- a/game-server/app/servers/role/handler/itemHandler.ts +++ b/game-server/app/servers/role/handler/itemHandler.ts @@ -14,6 +14,7 @@ import { GiftCodeDetailModel } from "../../../db/GiftCodeDetail"; import { GiftCodeType, GiftCodeModel } from "../../../db/GiftCode"; import { nowSeconds } from "../../../pubUtils/timeUtil"; import { AP } from "../../../pubUtils/dicParam"; +import { GiftPackageFloorModel } from "../../../db/GiftPackageFloor"; export default function (app: Application) { new HandlerService(app, {}); @@ -56,6 +57,31 @@ export class ItemHandler { } + // 获取礼包保底情况 + public async getGiftPackageFloor(msg: { id: number }, session: BackendSession) { + let { id } = msg; + const roleId = session.get('roleId'); + let dicGoods = gameData.goods.get(id); + if (!dicGoods) { + return resResult(STATUS.ACTIVITY_DATA_ERROR); + } + let dicItid = ITID.get(dicGoods.itid); + if (!dicItid) return resResult(STATUS.DIC_DATA_NOT_FOUND); + if (dicItid.type != CONSUME_TYPE.GIFT_PACKAGE) { + return resResult(STATUS.NOT_CONSUME_GOODS); + } + let giftID = dicGoods.gift; + if (!giftID) { + return resResult(STATUS.NOT_GIFTPACKAGE); + } + let giftPackageData = gameData.giftPackage.get(giftID); + if (!giftPackageData) { + return resResult(STATUS.NOT_GIFTPACKAGE); + } + let result = await GiftPackageFloorModel.findByGiftPackageId(roleId, giftPackageData.id, 'floors giftPackageId'); + return resResult(STATUS.SUCCESS, result); + } + // 使用体力道具 public async useApItem(msg: { id: number, count: number }, session: BackendSession) { let { id, count } = msg; diff --git a/game-server/test/gift.test.ts b/game-server/test/gift.test.ts index f2a1ba857..5b518b61f 100644 --- a/game-server/test/gift.test.ts +++ b/game-server/test/gift.test.ts @@ -22,7 +22,7 @@ describe('测试英杰传宝箱', function () { }, 500); }); - afterEach(function (done) { + after(function (done) { pinusClient.disconnect(); // disconnect 后等待 500ms,供服务器清理环境、退出频道等 setTimeout(() => { @@ -44,4 +44,14 @@ describe('测试英杰传宝箱', function () { }); }); + + it('查看保底情况', function (done) { + pinusClient.request('role.itemHandler.getGiftPackageFloor', { + id: GOOD_ID_RED_RAND, + }, (res) => { + checkSuccessResponse(res); + console.log(JSON.stringify(res)); + done(); + }); + }); }); diff --git a/shared/db/GiftPackageFloor.ts b/shared/db/GiftPackageFloor.ts index bd3cd2357..80c429ae2 100644 --- a/shared/db/GiftPackageFloor.ts +++ b/shared/db/GiftPackageFloor.ts @@ -41,8 +41,8 @@ export default class GiftPackageFloor extends BaseModel { } // 根据礼包 id 查找 - public static async findByGiftPackageId(roleId: string, giftPackageId: number, lean = true) { - const result: GiftPackageFloorType = await GiftPackageFloorModel.findOneAndUpdate({ roleId, giftPackageId}, {}, {new: true, upsert: true}).lean(lean); + public static async findByGiftPackageId(roleId: string, giftPackageId: number, select = '', lean = true) { + const result: GiftPackageFloorType = await await GiftPackageFloorModel.findOneAndUpdate({ roleId, giftPackageId}, {}, {new: true, upsert: true}).select(select).lean(lean); return result; }