活动:统计获得铜币的总数量
This commit is contained in:
@@ -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, {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user