活动:招财进宝改为领取箱子
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { Application, BackendSession, HandlerService } from 'pinus';
|
||||
import { resResult } from '../../../pubUtils/util';
|
||||
import { ACTIVITY_RESOURCES_TYPE, CURRENCY_BY_TYPE, CURRENCY_TYPE, ITEM_CHANGE_REASON, STATUS } from '../../../consts';
|
||||
import { ACTIVITY_RESOURCES_TYPE, CURRENCY_BY_TYPE, CURRENCY_TYPE, DAILY_COIN_BOX_STATUS, ITEM_CHANGE_REASON, STATUS } from '../../../consts';
|
||||
import { getGoldObject, handleCost } from '../../../services/role/rewardService';
|
||||
import { getPlayerDailyCoinData, mergeData } from '../../../services/activity/dailyCoinService';
|
||||
import { ConsumeExchangeFormulaItem, CoinRewardFormulaItem } from '../../../domain/activityField/dailyCoinField';
|
||||
@@ -91,13 +91,6 @@ export class DailyCoinHandler {
|
||||
reward.count = reward.count * rate;
|
||||
}
|
||||
allReward = allReward.concat(baseRewardParamArr);
|
||||
let extraIndex = playerData.isExtra(index);
|
||||
if (extraIndex != -1) {//额外奖励
|
||||
let extraRewardParamArr: Array<RewardParam> = stringToRewardParam(playerData.extraReward);
|
||||
let extraReward = extraRewardParamArr[extraIndex];
|
||||
// console.log('额外奖励', JSON.stringify(extraReward))
|
||||
allReward.push(extraReward);
|
||||
}
|
||||
}
|
||||
|
||||
let newConsume = mergeData(allConsume);
|
||||
@@ -128,13 +121,47 @@ export class DailyCoinHandler {
|
||||
//免费期间
|
||||
let time = moment(new Date()).valueOf();
|
||||
let result = await addReward(roleId, roleName, sid, serverId, newReward, ITEM_CHANGE_REASON.DAILY_COIN_EXCHANGE);
|
||||
await ActivityDailyCoinModel.addExchangeRecord(serverId, activityId, roleId, playerData.roundIndex, count, addCoin, `${count}&${consumeGold}&${addCoin}&${time}`);
|
||||
let record = await ActivityDailyCoinModel.addExchangeRecord(serverId, activityId, roleId, playerData.roundIndex, count, addCoin, `${count}&${consumeGold}&${addCoin}&${time}`);
|
||||
let extraReward = playerData.setAllBoxStatus(record);
|
||||
|
||||
let exchangeCount = playerData.exchangeCount + count;
|
||||
return resResult(STATUS.SUCCESS, Object.assign(result, {
|
||||
param: { activityId, count },
|
||||
param: { activityId, count, extraReward },
|
||||
item: { exchangeCount, recordMsg: `${count}&${consumeGold}&${addCoin}&${time}`, rateArray },
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description 领取宝箱
|
||||
* @param {{ activityId: number, cellIndex:number}} msg
|
||||
* @param {BackendSession} session
|
||||
* @memberof DailyCoinHandler
|
||||
*/
|
||||
async receiveExtraReward(msg: { activityId: number, cellIndex: number }, session: BackendSession) {
|
||||
const { activityId, cellIndex } = msg;
|
||||
const roleId = session.get('roleId');
|
||||
const serverId = session.get('serverId');
|
||||
const sid = session.get('sid');
|
||||
const roleName = session.get('roleName');
|
||||
|
||||
|
||||
let playerData = await getPlayerDailyCoinData(activityId, serverId, roleId)
|
||||
if (!playerData) return resResult(STATUS.ACTIVITY_MISSING);
|
||||
let box = await playerData.findBoxByCellIndex(cellIndex);
|
||||
if(!box) return resResult(STATUS.DAILY_COIN_BOX_NOT_FOUND);
|
||||
if(box.status != DAILY_COIN_BOX_STATUS.CAN_OPEN) return resResult(STATUS.DAILY_COIN_BOX_CANNOT_RECEIVE);
|
||||
|
||||
let rewardArray = stringToRewardParam(box.reward)
|
||||
let result = await addReward(roleId, roleName, sid, serverId, rewardArray, ITEM_CHANGE_REASON.ACT_DAILY_COIN_RECEIVE_BOX);
|
||||
|
||||
let record = await ActivityDailyCoinModel.receiveBox(serverId, activityId, roleId, playerData.roundIndex, cellIndex);
|
||||
let item = playerData.setBoxStatus(cellIndex, record);
|
||||
|
||||
return resResult(STATUS.SUCCESS, Object.assign(result, {
|
||||
item,
|
||||
param: { activityId },
|
||||
}));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user