diff --git a/game-server/app/servers/activity/handler/dailyCoinHandler.ts b/game-server/app/servers/activity/handler/dailyCoinHandler.ts index 3fe4bef36..ab442a20d 100644 --- a/game-server/app/servers/activity/handler/dailyCoinHandler.ts +++ b/game-server/app/servers/activity/handler/dailyCoinHandler.ts @@ -1,6 +1,6 @@ import { Application, BackendSession } from 'pinus'; import { resResult } from '../../../pubUtils/util'; -import { STATUS } from '../../../consts'; +import { CURRENCY_BY_TYPE, CURRENCY_TYPE, STATUS } from '../../../consts'; import { handleCost } from '../../../services/rewardService'; import { getPlayerDailyCoinData, mergeData } from '../../../services/dailyCoinService'; import { DailyCoinItem } from '../../../domain/activityField/dailyCoinField'; @@ -36,6 +36,7 @@ export class DailyCoinHandler { if (!playerData) return resResult(STATUS.ACTIVITY_MISSING); + delete playerData.list; return resResult(STATUS.SUCCESS, playerData); } @@ -92,9 +93,17 @@ export class DailyCoinHandler { let consumeResult = await handleCost(roleId, sid, newConsume); if (!consumeResult) return resResult(STATUS.ACTIVITY_RES_NOT_ENOUGH); + let addCoin = 0 + let coinId = CURRENCY_BY_TYPE.get(CURRENCY_TYPE.COIN); + for (let obj of newReward) { + if (obj.id === coinId) { + addCoin += obj.count; + } + } + //免费期间 let result = await addReward(roleId, roleName, sid, serverId, funcs, newReward) - await ActivityDailyCoinModel.addExchangeRecord(serverId, activityId, roleId, playerData.beginTime, count); + await ActivityDailyCoinModel.addExchangeRecord(serverId, activityId, roleId, playerData.beginTime, count, addCoin); let exchangeCount = playerData.exchangeCount + count; return resResult(STATUS.SUCCESS, Object.assign(result, { diff --git a/game-server/app/services/dailyCoinService.ts b/game-server/app/services/dailyCoinService.ts index d24b8836b..0269d1596 100644 --- a/game-server/app/services/dailyCoinService.ts +++ b/game-server/app/services/dailyCoinService.ts @@ -24,6 +24,7 @@ export async function dailyCoinActivity(serverId: number, roleId: string) { let playerRecord: ActivityDailyCoinModelType = await ActivityDailyCoinModel.findData(serverId, activityData.activityId, roleId, playerData.beginTime); playerData.setPlayerRecords(playerRecord); + delete playerData.list; return playerData; } diff --git a/shared/db/ActivityDailyCoin.ts b/shared/db/ActivityDailyCoin.ts index cf7355e73..f34ee051d 100644 --- a/shared/db/ActivityDailyCoin.ts +++ b/shared/db/ActivityDailyCoin.ts @@ -17,11 +17,13 @@ export default class Activity_Daily_Coin extends BaseModel { beginTime: number; // 开始统计的时间 @prop({ required: true }) exchangeCount: number; // 兑换次数 + @prop({ required: true }) + coinCount: number; // 兑换获得铜币数量 //兑换记录 - public static async addExchangeRecord(serverId: number, activityId: number, roleId: string, beginTime: number, count: number) { - let result = await ActivityDailyCoinModel.findOneAndUpdate({ serverId, activityId, roleId, beginTime }, { $inc: { exchangeCount: count } }, { upsert: true, new: true }).lean(true) + public static async addExchangeRecord(serverId: number, activityId: number, roleId: string, beginTime: number, count: number, coinCount: number) { + let result = await ActivityDailyCoinModel.findOneAndUpdate({ serverId, activityId, roleId, beginTime }, { $inc: { exchangeCount: count, coinCount: coinCount } }, { upsert: true, new: true }).lean(true) return result; } diff --git a/shared/domain/activityField/dailyCoinField.ts b/shared/domain/activityField/dailyCoinField.ts index 78ea9cb07..b326fc1da 100644 --- a/shared/domain/activityField/dailyCoinField.ts +++ b/shared/domain/activityField/dailyCoinField.ts @@ -46,6 +46,7 @@ export class DailyCoinData extends ActivityBase { list: Array = []; name: string = '';//名字 exchangeCount: number = 0;//已经兑换次数 + coinCount: number = 0;//已经兑换获得铜币数量 public findItem(index: number) { let itemIndex = this.list.findIndex(obj => { return obj.index === index }); @@ -55,10 +56,12 @@ export class DailyCoinData extends ActivityBase { //解析玩家领取记录 public setPlayerRecords(data: ActivityDailyCoinModelType) { this.exchangeCount = data && data.exchangeCount ? data.exchangeCount : 0; + this.coinCount = data && data.coinCount ? data.coinCount : 0; } public initData(data: string) { this.exchangeCount = 0; + this.coinCount = 0; let dataObj = JSON.parse(data); let arr = dataObj; for (let obj of arr) {