活动:统计获得铜币的总数量
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
import { Application, BackendSession } from 'pinus';
|
import { Application, BackendSession } from 'pinus';
|
||||||
import { resResult } from '../../../pubUtils/util';
|
import { resResult } from '../../../pubUtils/util';
|
||||||
import { STATUS } from '../../../consts';
|
import { CURRENCY_BY_TYPE, CURRENCY_TYPE, STATUS } from '../../../consts';
|
||||||
import { handleCost } from '../../../services/rewardService';
|
import { handleCost } from '../../../services/rewardService';
|
||||||
import { getPlayerDailyCoinData, mergeData } from '../../../services/dailyCoinService';
|
import { getPlayerDailyCoinData, mergeData } from '../../../services/dailyCoinService';
|
||||||
import { DailyCoinItem } from '../../../domain/activityField/dailyCoinField';
|
import { DailyCoinItem } from '../../../domain/activityField/dailyCoinField';
|
||||||
@@ -36,6 +36,7 @@ export class DailyCoinHandler {
|
|||||||
|
|
||||||
if (!playerData) return resResult(STATUS.ACTIVITY_MISSING);
|
if (!playerData) return resResult(STATUS.ACTIVITY_MISSING);
|
||||||
|
|
||||||
|
delete playerData.list;
|
||||||
return resResult(STATUS.SUCCESS, playerData);
|
return resResult(STATUS.SUCCESS, playerData);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,9 +93,17 @@ export class DailyCoinHandler {
|
|||||||
let consumeResult = await handleCost(roleId, sid, newConsume);
|
let consumeResult = await handleCost(roleId, sid, newConsume);
|
||||||
if (!consumeResult) return resResult(STATUS.ACTIVITY_RES_NOT_ENOUGH);
|
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)
|
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;
|
let exchangeCount = playerData.exchangeCount + count;
|
||||||
return resResult(STATUS.SUCCESS, Object.assign(result, {
|
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);
|
let playerRecord: ActivityDailyCoinModelType = await ActivityDailyCoinModel.findData(serverId, activityData.activityId, roleId, playerData.beginTime);
|
||||||
playerData.setPlayerRecords(playerRecord);
|
playerData.setPlayerRecords(playerRecord);
|
||||||
|
delete playerData.list;
|
||||||
return playerData;
|
return playerData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,11 +17,13 @@ export default class Activity_Daily_Coin extends BaseModel {
|
|||||||
beginTime: number; // 开始统计的时间
|
beginTime: number; // 开始统计的时间
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
exchangeCount: number; // 兑换次数
|
exchangeCount: number; // 兑换次数
|
||||||
|
@prop({ required: true })
|
||||||
|
coinCount: number; // 兑换获得铜币数量
|
||||||
|
|
||||||
|
|
||||||
//兑换记录
|
//兑换记录
|
||||||
public static async addExchangeRecord(serverId: number, activityId: number, roleId: string, beginTime: number, count: number) {
|
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 } }, { upsert: true, new: true }).lean(true)
|
let result = await ActivityDailyCoinModel.findOneAndUpdate({ serverId, activityId, roleId, beginTime }, { $inc: { exchangeCount: count, coinCount: coinCount } }, { upsert: true, new: true }).lean(true)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ export class DailyCoinData extends ActivityBase {
|
|||||||
list: Array<DailyCoinItem> = [];
|
list: Array<DailyCoinItem> = [];
|
||||||
name: string = '';//名字
|
name: string = '';//名字
|
||||||
exchangeCount: number = 0;//已经兑换次数
|
exchangeCount: number = 0;//已经兑换次数
|
||||||
|
coinCount: number = 0;//已经兑换获得铜币数量
|
||||||
|
|
||||||
public findItem(index: number) {
|
public findItem(index: number) {
|
||||||
let itemIndex = this.list.findIndex(obj => { return obj.index === index });
|
let itemIndex = this.list.findIndex(obj => { return obj.index === index });
|
||||||
@@ -55,10 +56,12 @@ export class DailyCoinData extends ActivityBase {
|
|||||||
//解析玩家领取记录
|
//解析玩家领取记录
|
||||||
public setPlayerRecords(data: ActivityDailyCoinModelType) {
|
public setPlayerRecords(data: ActivityDailyCoinModelType) {
|
||||||
this.exchangeCount = data && data.exchangeCount ? data.exchangeCount : 0;
|
this.exchangeCount = data && data.exchangeCount ? data.exchangeCount : 0;
|
||||||
|
this.coinCount = data && data.coinCount ? data.coinCount : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public initData(data: string) {
|
public initData(data: string) {
|
||||||
this.exchangeCount = 0;
|
this.exchangeCount = 0;
|
||||||
|
this.coinCount = 0;
|
||||||
let dataObj = JSON.parse(data);
|
let dataObj = JSON.parse(data);
|
||||||
let arr = dataObj;
|
let arr = dataObj;
|
||||||
for (let obj of arr) {
|
for (let obj of arr) {
|
||||||
|
|||||||
Reference in New Issue
Block a user