活动:统计获得铜币的总数量

This commit is contained in:
qiaoxin
2021-06-10 20:21:53 +08:00
parent d5242ee9dd
commit f1fa6ae354
4 changed files with 19 additions and 4 deletions

View File

@@ -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, {

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -46,6 +46,7 @@ export class DailyCoinData extends ActivityBase {
list: Array<DailyCoinItem> = [];
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) {