活动:成长活动、今日挑战奖励接口返回数据添加字段

This commit is contained in:
qiaoxin
2021-05-20 17:16:01 +08:00
parent 14acc426a0
commit afc95d2e19
10 changed files with 119 additions and 158 deletions
@@ -39,12 +39,12 @@ export class PopUpShopHandler {
/**
* @description 购买礼包
* @param {{ activityId: number, taskId: number, id: number}} msg
* @param {{ activityId: number, id: number}} msg
* @param {BackendSession} session
* @memberof PopUpShopHandler
*/
async buyGift(msg: { activityId: number, taskId: number, id: number }, session: BackendSession) {
const { activityId, taskId, id } = msg;
async buyGift(msg: { activityId: number, id: number }, session: BackendSession) {
const { activityId, id } = msg;
const roleId = session.get('roleId');
const serverId = session.get('serverId');
const sid = session.get('sid');
@@ -55,32 +55,32 @@ export class PopUpShopHandler {
if (!activityData) {
return resResult(STATUS.ACTIVITY_MISSING);
}
let playerRecords: ActivityPopUpShopModelType = await ActivityPopUpShopModel.findOpenDataByTaskId(serverId, activityId, roleId, taskId);
let playerRecords: ActivityPopUpShopModelType = await ActivityPopUpShopModel.findOpenDataByTaskId(serverId, activityId, roleId, id);
if (!playerRecords) {
return resResult(STATUS.ACTIVITY_POP_UP_SHOP_EXPIRE);
}
if (playerRecords.isBuy) {
return resResult(STATUS.ACTIVITY_REWARDED);
}
let allTaskData: any[] = JSON.parse(activityData.data);
let taskIndex = allTaskData.findIndex(obj => { return obj && obj.taskId == taskId });
let taskIndex = allTaskData.findIndex(obj => { return obj && obj.id == id });
if (taskIndex == -1) {
return resResult(STATUS.ACTIVITY_DATA_ERROR);
}
let playerData = new PopUpShopData(allTaskData[taskIndex]);
let itemData = playerData.findItem(id);
if (!itemData) {
return resResult(STATUS.ACTIVITY_DATA_ERROR);
}
if (itemData.price) {
if (playerData.price) {
return resResult(STATUS.ACTIVITY_NEED_PAY);
}
if (itemData.consume) {
if (playerData.consume) {
return resResult(STATUS.ACTIVITY_NEED_PAY);
}
//元宝消费
let arr = splitString(itemData.consume, '&')
let arr = splitString(playerData.consume, '&')
if (arr[0] != ACTIVITY_RESOURCES_TYPE.GOODS || arr[1] != CURRENCY_BY_TYPE.get(CURRENCY_TYPE.GOLD)) {
return resResult(STATUS.ACTIVITY_GOLD_RESOURCE);
}
@@ -88,7 +88,7 @@ export class PopUpShopHandler {
let resourceResult = await handleCost(roleId, sid, [{ id: CURRENCY_BY_TYPE.get(CURRENCY_TYPE.GOLD), count: price }]);
if (!resourceResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
let rewardParamArr: Array<RewardParam> = stringToRewardParam(itemData.reward);
let rewardParamArr: Array<RewardParam> = stringToRewardParam(playerData.reward);
let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardParamArr)
return resResult(STATUS.SUCCESS, result);
}
@@ -10,6 +10,8 @@ import { DailyItem } from '../../../domain/activityField/dailyChallengesField';
import { getPlayerDailyGiftsData } from '../../../services/dailyGiftsService';
import { DailyGiftItem } from '../../../domain/activityField/dailyGiftsField';
import { ActivityDailyGiftsModel } from '../../../db/ActivityDailyGifts';
import { addReward, stringToRewardParam } from '../../../services/giftPackageService';
import { RewardParam } from '../../../domain/activityField/rewardField';
export default function (app: Application) {
@@ -68,18 +70,18 @@ export class SevenDaysHandler {
return resResult(STATUS.ACTIVITY_REWARDED);
}
await ActivityGrowthModel.addCellRecord(activityId, roleId, dayIndex, cellIndex, type, 1);
let reward = growthItemData.goodReward();
let goods = await addItems(roleId, roleName, sid, reward);
let heroReward = growthItemData.heroReward();
let addHeros = [];
if (heroReward.length > 0) {
let heroResult = await createHeroes(roleId, roleName, sid, serverId, funcs, heroReward);
goods = goods.concat(heroResult.goods)
addHeros = addHeros.concat(heroResult.heroes);
}
await ActivityGrowthModel.addCellRecord(serverId, activityId, roleId, dayIndex, cellIndex, type, 1, growthItemData.point);
let rewardParamArr: Array<RewardParam> = stringToRewardParam(growthItemData.reward);
let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardParamArr)
return resResult(STATUS.SUCCESS, { goods, addHeros });
growthItemData.receiveRewardCount = 1;
growthItemData.addPointCount = growthItemData.point;
playerData.totalPoint += growthItemData.point;
return resResult(STATUS.SUCCESS, Object.assign(result, {
param: msg,
item: growthItemData,
totalPoint: playerData.totalPoint
}));
}
/**
@@ -113,19 +115,19 @@ export class SevenDaysHandler {
return resResult(STATUS.ACTIVITY_TIME_ERROR);
}
await ActivityGrowthModel.addDayRecord(activityId, roleId, dayIndex, 1);
await ActivityGrowthModel.addDayRecord(serverId, activityId, roleId, dayIndex, 1);
let reward = dayItemData.goodReward();
let goods = await addItems(roleId, roleName, sid, reward);
let heroReward = dayItemData.heroReward();
let addHeros = [];
if (heroReward.length > 0) {
let heroResult = await createHeroes(roleId, roleName, sid, serverId, funcs, heroReward);
goods = goods.concat(heroResult.goods)
addHeros = addHeros.concat(heroResult.heroes);
}
let rewardParamArr: Array<RewardParam> = stringToRewardParam(dayItemData.reward);
let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardParamArr)
return resResult(STATUS.SUCCESS, { goods, addHeros });
dayItemData.getPointReward = true;
playerData.totalConsumePoint += dayItemData.consumePoint;
return resResult(STATUS.SUCCESS, Object.assign(result, {
param: msg,
item: dayItemData,
totalPoint: playerData.totalPoint
}));
}
/************************今日挑战****************************/
@@ -176,7 +178,7 @@ export class SevenDaysHandler {
return resResult(STATUS.ACTIVITY_REWARDED);
}
await ActivityGrowthModel.addCellRecord(activityId, roleId, dayIndex, cellIndex, type, 1);
await ActivityGrowthModel.addCellRecord(serverId, activityId, roleId, dayIndex, cellIndex, type, 1, 0);
let reward = dailyItemData.goodReward();
let goods = await addItems(roleId, roleName, sid, reward);
let heroReward = dailyItemData.heroReward();
+1 -1
View File
@@ -25,7 +25,7 @@ export async function getActivityData(activityId: number, serverId: number, role
*/
export async function getPlayerGrowthData(activityId: number, serverId: number, roleId: string) {
let activityData: ActivityModelType = await ActivityModel.findActivity(activityId, true);
let playerRecords: ActivityGrowthModelType[] = await ActivityGrowthModel.findData(activityId, roleId);
let playerRecords: ActivityGrowthModelType[] = await ActivityGrowthModel.findData(serverId, activityId, roleId);
let playerData = new GrowthData(activityData);
playerData.setPlayerRecords(playerRecords);
+12 -14
View File
@@ -1,7 +1,7 @@
import { ACTIVITY_TYPE, TASK_TYPE } from '../consts';
import { ActivityModel, ActivityModelType } from '../db/Activity';
import { ActivityDailyRMBGiftsModel, ActivityDailyRMBGiftsModelType } from '../db/ActivityDailyRMBGifts';
import { PopUpShopData, PopUpShopItem } from '../domain/activityField/PopUpSHopField';
import { PopUpShopData, } from '../domain/activityField/PopUpSHopField';
import { RoleModel } from '../db/Role';
import moment = require('moment');
import { UserOrderModel, UserOrderModelType } from '../db/UserOrder';
@@ -45,14 +45,15 @@ export async function getPlayerPopUpShopData(activityId: number, serverId: numbe
let allPlayerShop = [];
let allTaskData = JSON.parse(activityData.data);
for (let taskData of allTaskData) {
let playerData = new PopUpShopData(taskData);
let taskId = playerData.taskId;
let index = playerRecords.findIndex(obj => { return obj && obj.taskId == taskId });
if (index != -1) {
playerData.setPlayerRecords(playerRecords[index])
for (let record of playerRecords) {
if (!record.isBuy) {//没有购买
let index = allTaskData.findIndex(obj => { return obj && obj.id === record.id })
if (index != -1) {
let playerData = new PopUpShopData(allTaskData[index]);
playerData.isBuy == false;
allPlayerShop.push(playerData)
}
}
allPlayerShop.push(playerData)
}
return allPlayerShop;
}
@@ -78,15 +79,12 @@ export async function makePopUpShopReward(roleId: string, roleName: string, sid:
return null;
}
let playerData = new PopUpShopData(allTaskData[taskIndex]);
let taskId = playerData.taskId;
let item = playerData.findItemByProductID(productID);
let playerRecords: ActivityPopUpShopModelType = await ActivityPopUpShopModel.addRecord(serverId, activityId, roleId, taskId, item.id);
let playerRecords: ActivityPopUpShopModelType = await ActivityPopUpShopModel.addRecord(serverId, activityId, roleId, playerData.id);
if (!playerRecords) {
return null;
}
let rewardParamArr: Array<RewardParam> = stringToRewardParam(item.reward);
let rewardParamArr: Array<RewardParam> = stringToRewardParam(playerData.reward);
let result = await addReward(roleId, roleName, sid, serverId, funcs, rewardParamArr)
return result
}
}