From eccd9f00518da9eb90c9cdc4fc2386ea5490d8be Mon Sep 17 00:00:00 2001 From: luying Date: Wed, 12 Oct 2022 10:32:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=A2=E8=B4=AD=EF=BC=9A=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activity/handler/groupShopHandler.ts | 30 +++++++++---------- .../app/services/activity/groupShopService.ts | 6 ++-- shared/db/ActivityGroupShopRec.ts | 24 +++++++-------- shared/db/ActivityGroupShopUserRec.ts | 12 ++++---- shared/domain/activityField/groupShopField.ts | 18 +++++------ 5 files changed, 45 insertions(+), 45 deletions(-) diff --git a/game-server/app/servers/activity/handler/groupShopHandler.ts b/game-server/app/servers/activity/handler/groupShopHandler.ts index 062c275e7..219345dad 100644 --- a/game-server/app/servers/activity/handler/groupShopHandler.ts +++ b/game-server/app/servers/activity/handler/groupShopHandler.ts @@ -60,8 +60,8 @@ export class GroupShopHandler { * @param {BackendSession} session * @memberof GroupShopHandler */ - async buy(msg: { activityId: number, price: number, id: number, buyCnt: number }, session: BackendSession) { - const { activityId, price: clientPrice, id, buyCnt } = msg; + async buy(msg: { activityId: number, price: number, itemId: number, buyCnt: number }, session: BackendSession) { + const { activityId, price: clientPrice, itemId, buyCnt } = msg; const roleId: string = session.get('roleId'); const roleName: string = session.get('roleName'); const sid: string = session.get('sid'); @@ -69,7 +69,7 @@ export class GroupShopHandler { let playerData = await getGroupShopData(activityId, roleId); if (!playerData) return resResult(STATUS.ACTIVITY_MISSING); - let item = playerData.findItemById(id); + let item = playerData.findItemById(itemId); if (!item) return resResult(STATUS.ACTIVITY_GROUP_SHOP_ITEM_NOT_FOUND); if(!item.checkBuyCnt(buyCnt)) return resResult(STATUS.ACTIVITY_GROUP_SHOP_BUY_CNT_MAX); @@ -81,24 +81,24 @@ export class GroupShopHandler { if(!result) return resResult(STATUS.BATTLE_GOLD_NOT_ENOUGH); // 玩家添加次数 - let playerRecord = await ActivityGroupShopUserRecModel.incBuyCnt(activityId, roleId, id, item.gid, buyCnt, new GroupShopBuyRecord(curDiscount, buyCnt)); + let playerRecord = await ActivityGroupShopUserRecModel.incBuyCnt(activityId, roleId, itemId, item.id, buyCnt, new GroupShopBuyRecord(curDiscount, buyCnt)); playerData.setPlayerRecord([playerRecord]); // 全服添加次数 - let serverRecord = await ActivityGroupShopRecModel.incBuyCnt(activityId, id, item.gid, buyCnt); + let serverRecord = await ActivityGroupShopRecModel.incBuyCnt(activityId, itemId, item.id, buyCnt); let isRankUp = playerData.incAllRecord(serverRecord); - item = playerData.findItemById(id); + item = playerData.findItemById(itemId); let nextDiscount = item.getCurDiscount(); if(isRankUp) { - await ActivityGroupShopRecModel.addRecord(activityId, id, new GroupShopRecord(nextDiscount)); + await ActivityGroupShopRecModel.addRecord(activityId, itemId, new GroupShopRecord(nextDiscount)); // 推送频道 - await sendMessageToGroupShopWithSuc(PUSH_ROUTE.GROUP_SHOP_UPDATE, { activityId, id, sum: item.sum, curDiscount: nextDiscount }); + await sendMessageToGroupShopWithSuc(PUSH_ROUTE.GROUP_SHOP_UPDATE, { activityId, itemId, sum: item.sum, curDiscount: nextDiscount }); } - let reward = [{ id: item.gid, count: item.count * buyCnt }]; + let reward = [{ id: item.id, count: item.count * buyCnt }]; let goods = await addItems(roleId, roleName, sid, reward, ITEM_CHANGE_REASON.ACT_GROUP_SHOP_BUY); return resResult(STATUS.SUCCESS, { - curItem: pick(item, ['id', 'gid', 'sum', 'hasBoughtCnt']), + curItem: pick(item, ['itemId', 'id', 'sum', 'hasBoughtCnt']), goods, status: priceStatus, oldDiscount: curDiscount, @@ -111,23 +111,23 @@ export class GroupShopHandler { return resResult(STATUS.SUCCESS); } - async debugSetSum(msg: { id: number, sum: number }, session: BackendSession) { + async debugSetSum(msg: { itemId: number, sum: number }, session: BackendSession) { const roleId: string = session.get('roleId'); const serverId = session.get('serverId'); - let { id = 0, sum = 0 } = msg; + let { itemId = 0, sum = 0 } = msg; let activities = await getActivitiesByType(serverId, ACTIVITY_TYPE.GROUP_SHOP); if(activities.length <= 0) return resResult(STATUS.ACTIVITY_MISSING); for(let activityData of activities) { - let recs = await ActivityGroupShopRecModel.debugSetSum(activityData.activityId, id, sum); + let recs = await ActivityGroupShopRecModel.debugSetSum(activityData.activityId, itemId, sum); let playerData = new GroupShopData(activityData, 0, 0); playerData.setRecords(recs); - let items = id == 0? playerData.items: [playerData.findItemById(id)]; + let items = itemId == 0? playerData.items: [playerData.findItemById(itemId)]; for(let item of items) { if(!item) continue; let nextDiscount = item.getCurDiscount(); // 推送频道 - await sendMessageToGroupShopWithSuc(PUSH_ROUTE.GROUP_SHOP_UPDATE, { activityId: activityData.activityId, id, sum: item.sum, curDiscount: nextDiscount }); + await sendMessageToGroupShopWithSuc(PUSH_ROUTE.GROUP_SHOP_UPDATE, { activityId: activityData.activityId, itemId, sum: item.sum, curDiscount: nextDiscount }); } } let playerData = await getGroupShopDataShow(activities[0].activityId, roleId); diff --git a/game-server/app/services/activity/groupShopService.ts b/game-server/app/services/activity/groupShopService.ts index b05a5ad84..601d26ec4 100644 --- a/game-server/app/services/activity/groupShopService.ts +++ b/game-server/app/services/activity/groupShopService.ts @@ -72,7 +72,7 @@ export async function setGroupShopToSetSum(arr: { activityId: number, itemId: nu let item = playerData.findItemById(itemId); let nextDiscount = item.getCurDiscount(); // 推送频道 - await sendMessageToGroupShopWithSuc(PUSH_ROUTE.GROUP_SHOP_UPDATE, { activityId, sum, id: itemId, curDiscount: nextDiscount }); + await sendMessageToGroupShopWithSuc(PUSH_ROUTE.GROUP_SHOP_UPDATE, { activityId, sum, itemId, curDiscount: nextDiscount }); } } } @@ -90,14 +90,14 @@ export async function refundGroupShop(isDebug = false) { let items = playerData.items||[]; for(let item of items) { - let playerRecords = await ActivityGroupShopUserRecModel.findByPrice(activityData.activityId, item.id, item.getCurDiscount().price); + let playerRecords = await ActivityGroupShopUserRecModel.findByPrice(activityData.activityId, item.itemId, item.getCurDiscount().price); for(let { roleId, records } of playerRecords) { for(let { price, buyCnt } of records) { if(price <= item.getCurDiscount().price) continue; let diff = (price - item.getCurDiscount().price) * buyCnt; if(!recs.has(roleId)) recs.set(roleId, []); - recs.get(roleId).push({ itemId: item.id, diff }); + recs.get(roleId).push({ itemId: item.itemId, diff }); } } } diff --git a/shared/db/ActivityGroupShopRec.ts b/shared/db/ActivityGroupShopRec.ts index bbe4b5d90..c5375ebf4 100644 --- a/shared/db/ActivityGroupShopRec.ts +++ b/shared/db/ActivityGroupShopRec.ts @@ -42,10 +42,10 @@ export default class Activity_Group_Shop_Rec extends BaseModel { activityId: number; // 活动Id @prop({ required: true }) - id: number; // item 唯一id + itemId: number; // item 唯一id @prop({ required: true }) - gid: number; // 物品id + id: number; // 物品id @prop({ required: true }) sum: number; // 总购买次数 @@ -59,35 +59,35 @@ export default class Activity_Group_Shop_Rec extends BaseModel { return result; } - public static async incBuyCnt(activityId: number, id: number, gid: number, inc: number) { + public static async incBuyCnt(activityId: number, itemId: number, id: number, inc: number) { let result: ActivityGroupShopRecType = await ActivityGroupShopRecModel.findOneAndUpdate( - { activityId, id }, { $inc: { sum: inc }, $set: { gid } }, { new: true, upsert: true } + { activityId, itemId }, { $inc: { sum: inc }, $set: { id } }, { new: true, upsert: true } ).lean(); return result; } - public static async addRecord(activityId: number, id: number, record: GroupShopRecord) { + public static async addRecord(activityId: number, itemId: number, record: GroupShopRecord) { let result: ActivityGroupShopRecType = await ActivityGroupShopRecModel.findOneAndUpdate( - { activityId, id }, { $push: { records: record } }, { new: true, upsert: true } + { activityId, itemId }, { $push: { records: record } }, { new: true, upsert: true } ).lean(); return result; } - public static async setSum(activityId: number, id: number, sum: number) { + public static async setSum(activityId: number, itemId: number, sum: number) { let result: ActivityGroupShopRecType = await ActivityGroupShopRecModel.findOneAndUpdate( - { activityId, id, sum: { $lt: sum } }, { $set: { sum } }, { new: true, upsert: true } + { activityId, itemId, sum: { $lt: sum } }, { $set: { sum } }, { new: true, upsert: true } ).lean(); return result; } - public static async debugSetSum(activityId: number, id: number, sum: number) { - if(id == 0) { + public static async debugSetSum(activityId: number, itemId: number, sum: number) { + if(itemId == 0) { await ActivityGroupShopRecModel.updateMany({ activityId }, { $set: { sum } }, { new: true, upsert: true }); let result: ActivityGroupShopRecType[] = await ActivityGroupShopRecModel.find({ activityId }).lean(); return result; } else { - await ActivityGroupShopRecModel.updateMany({ activityId, id }, { $set: { sum } }, { new: true, upsert: true }); - let result: ActivityGroupShopRecType[] = await ActivityGroupShopRecModel.find({ activityId, id }).lean(); + await ActivityGroupShopRecModel.updateMany({ activityId, itemId }, { $set: { sum } }, { new: true, upsert: true }); + let result: ActivityGroupShopRecType[] = await ActivityGroupShopRecModel.find({ activityId, itemId }).lean(); return result; } } diff --git a/shared/db/ActivityGroupShopUserRec.ts b/shared/db/ActivityGroupShopUserRec.ts index 5d25435a4..db13fd05d 100644 --- a/shared/db/ActivityGroupShopUserRec.ts +++ b/shared/db/ActivityGroupShopUserRec.ts @@ -51,10 +51,10 @@ export default class Activity_Group_Shop_User_Rec extends BaseModel { roleId: string; // 玩家Id @prop({ required: true }) - id: number; // 唯一id + itemId: number; // 唯一id @prop({ required: true }) - gid: number; // 物品id + id: number; // 物品id @prop({ required: true }) buyCnt: number; // 购买次数 @@ -67,9 +67,9 @@ export default class Activity_Group_Shop_User_Rec extends BaseModel { return result; } - public static async incBuyCnt(activityId: number, roleId: string, id: number, gid: number, inc: number, record: GroupShopBuyRecord) { + public static async incBuyCnt(activityId: number, roleId: string, itemId: number, id: number, inc: number, record: GroupShopBuyRecord) { let result: ActivityGroupShopUserRecType = await ActivityGroupShopUserRecModel.findOneAndUpdate( - { roleId, activityId, id }, { $inc: { buyCnt: inc }, $setOnInsert: { gid }, $push: { records: record } }, { new: true, upsert: true } + { roleId, activityId, itemId }, { $inc: { buyCnt: inc }, $setOnInsert: { id }, $push: { records: record } }, { new: true, upsert: true } ).lean(); return result; } @@ -78,8 +78,8 @@ export default class Activity_Group_Shop_User_Rec extends BaseModel { await ActivityGroupShopUserRecModel.deleteMany({ roleId, activityId }); } - public static async findByPrice(activityId: number, id: number, price: number) { - let result: ActivityGroupShopUserRecType[] = await ActivityGroupShopUserRecModel.find({ activityId, id, 'records.price': { $gt: price } }).lean(); + public static async findByPrice(activityId: number, itemId: number, price: number) { + let result: ActivityGroupShopUserRecType[] = await ActivityGroupShopUserRecModel.find({ activityId, itemId, 'records.price': { $gt: price } }).lean(); return result; } } diff --git a/shared/domain/activityField/groupShopField.ts b/shared/domain/activityField/groupShopField.ts index 269493a6c..b0f30d3c9 100644 --- a/shared/domain/activityField/groupShopField.ts +++ b/shared/domain/activityField/groupShopField.ts @@ -17,8 +17,8 @@ interface GroupShopDiscountInDb { } interface GroupShopItemInDb { - id: number; // 唯一id - gid: number; // 物品id + itemId: number; // 唯一id + id: number; // 物品id count: number; // 一次购买能购买多少 max: number; // 单人可以购买多少次 price: number; // 无折扣单价 @@ -62,8 +62,8 @@ export class GroupShopDiscount { } class GroupShopItem { - id: number; // 唯一id - gid: number; // 物品id + itemId: number; // 唯一id + id: number; // 物品id count: number; // 一次购买能购买多少 max: number; // 单人可以购买多少次 price: number; // 无折扣单价 @@ -73,8 +73,8 @@ class GroupShopItem { hasBoughtCnt: number = 0; // 玩家购买次数 constructor(item: GroupShopItemInDb) { + this.itemId = item.itemId; this.id = item.id; - this.gid = item.gid; this.count = item.count; this.max = item.max; this.price = item.price; @@ -128,17 +128,17 @@ export class GroupShopData extends ActivityBase { for(let item of dataObj.items) { this.items.push(new GroupShopItem(item)); - this.itemMap.set(item.id, this.items.length - 1); + this.itemMap.set(item.itemId, this.items.length - 1); if(item.timers && item.timers.length > 0) { for(let timer of item.timers) { - this.timer.push(new GroupShopTimer(this.beginTime, item.id, timer)); + this.timer.push(new GroupShopTimer(this.beginTime, item.itemId, timer)); } } } } - public findItemById(id: number) { - let index = this.itemMap.get(id); + public findItemById(itemId: number) { + let index = this.itemMap.get(itemId); return this.items[index]; }