活动:活动按照合集调整数据结构
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { Application, BackendSession } from 'pinus';
|
||||
import { resResult } from '../../../pubUtils/util';
|
||||
import { ACTIVITY_TYPE, FIRST_GIFT_STATE, SERVER_OPEN_TIME, STATUS, TASK_TYPE } from '../../../consts';
|
||||
import { ACTIVITY_TYPE, ACTIVITY_GROUP_TYPE, SERVER_OPEN_TIME, STATUS, TASK_TYPE } from '../../../consts';
|
||||
import { firstGiftActivity, getPlayerFirstGiftData } from '../../../services/firstGiftService';
|
||||
import { newPlayerSignInActivity, signInActivity, signInVIPActivity } from '../../../services/signInService';
|
||||
import { growthFundActivity } from '../../../services/growthFundService';
|
||||
@@ -24,6 +24,10 @@ import { getSelfServiceShopActivityData } from '../../../services/selfServiceSho
|
||||
import { ActivitySelfServiceGoodsModel } from '../../../db/ActivitySelfServiceGoods';
|
||||
import { dailyMealActivity } from '../../../services/dailyMealService';
|
||||
import { dailyCoinActivity } from '../../../services/dailyCoinService';
|
||||
import { ActivityGroupModel } from '../../../db/ActivityGroup';
|
||||
import { ServerlistModel } from '../../../db/Serverlist';
|
||||
import { getActivity } from '../../../services/activityService';
|
||||
import { ActivityModel } from '../../../db/Activity';
|
||||
// import { ActivityDailyChallengesModel } from '../../../db/ActivityDailyChallenges';
|
||||
// import { isComplete } from '../../../pubUtils/taskUtil';
|
||||
|
||||
@@ -466,7 +470,27 @@ export class ActivityHandler {
|
||||
}
|
||||
}
|
||||
|
||||
return resResult(STATUS.SUCCESS, { playerActivityArray });
|
||||
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
|
||||
let groups = await ActivityGroupModel.findGroupsData(activityGroupId);
|
||||
let playerGroupArray = [];
|
||||
for (let groupData of groups) {
|
||||
if (groupData.type !== ACTIVITY_GROUP_TYPE.UNKNOW) {
|
||||
let playerActivityArray = [];
|
||||
for (let activityId of groupData.activities) {
|
||||
let activityData = await ActivityModel.findActivity(activityId);
|
||||
if (activityData) {
|
||||
let playerActivityData = await getActivity(serverId, roleId, activityId, activityData.type)
|
||||
if (playerActivityData) playerActivityArray.push(playerActivityData);
|
||||
}
|
||||
}
|
||||
playerGroupArray.push({
|
||||
type: groupData.type,
|
||||
activities: playerActivityArray,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return resResult(STATUS.SUCCESS, { playerActivityArray, playerGroupArray });
|
||||
}
|
||||
|
||||
//测试活动任务数据
|
||||
|
||||
@@ -64,6 +64,7 @@ export class DailyCoinHandler {
|
||||
let allConsume: Array<ItemInter> = []
|
||||
let allReward: Array<RewardParam> = [];
|
||||
let role = await RoleModel.findByRoleId(roleId)
|
||||
let rateArray = [];//暴击记录
|
||||
for (let i = 1; i <= count; i++) {
|
||||
let index = curIndex + i;
|
||||
console.log('第几次抽奖', index)
|
||||
@@ -75,7 +76,7 @@ export class DailyCoinHandler {
|
||||
allConsume = allConsume.concat(consume)
|
||||
}
|
||||
let rate = playerData.getRate()//翻几倍
|
||||
|
||||
rateArray.push(rate);
|
||||
let rewardItem: CoinRewardFormulaItem = playerData.findCoinRewardFormulaItem(index);
|
||||
let lv = role.lv;//玩家等级
|
||||
let coinRewardCount = eval(rewardItem.rewardFormula);
|
||||
@@ -86,10 +87,12 @@ export class DailyCoinHandler {
|
||||
reward.count = reward.count * rate;
|
||||
}
|
||||
allReward = allReward.concat(baseRewardParamArr);
|
||||
if (playerData.isExtra(index)) {//额外奖励
|
||||
let extraIndex = playerData.isExtra(index);
|
||||
if (extraIndex != -1) {//额外奖励
|
||||
let extraRewardParamArr: Array<RewardParam> = stringToRewardParam(playerData.extraReward);
|
||||
console.log('额外奖励', JSON.stringify(extraRewardParamArr))
|
||||
allReward = allReward.concat(extraRewardParamArr);
|
||||
let extraReward = extraRewardParamArr[extraIndex];
|
||||
console.log('额外奖励', JSON.stringify(extraReward))
|
||||
allReward.push(extraReward);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -125,7 +128,7 @@ export class DailyCoinHandler {
|
||||
let exchangeCount = playerData.exchangeCount + count;
|
||||
return resResult(STATUS.SUCCESS, Object.assign(result, {
|
||||
param: { activityId, count },
|
||||
item: { exchangeCount },
|
||||
item: { exchangeCount, recordMsg: `${count}&${consumeGold}&${addCoin}`, rateArray },
|
||||
}));
|
||||
}
|
||||
|
||||
|
||||
97
game-server/app/services/activityService.ts
Normal file
97
game-server/app/services/activityService.ts
Normal file
@@ -0,0 +1,97 @@
|
||||
import { ACTIVITY_TYPE } from '../consts';
|
||||
import { getPlayerFirstGiftData } from './firstGiftService';
|
||||
import { getPlayerSignInData, } from './signInService';
|
||||
import { getPlayerGrowthFundData, } from './growthFundService';
|
||||
import { getPlayerLimitPackageData, } from './limitPackageService';
|
||||
import { getPlayerDailyGiftsData } from './dailyGiftsService';
|
||||
import { getPlayerYuanbaoShopData, } from './yuanbaoService';
|
||||
import { getPlayerMonthlyTicketData, } from './monthlyTicketService';
|
||||
import { getPlayerRechargeMoneyData, } from './rechargeMoneyService';
|
||||
import { getPlayerThirtyDaysData, playerThirtyDaysActivityDays, } from './thirtyDaysService';
|
||||
import { getPlayerVipRechargeMoneyData, } from './vipRechargeMoneyService';
|
||||
import { getPlayerActivityData, } from './selfServiceShopActivityService';
|
||||
import { ActivitySelfServiceGoodsModel } from '../db/ActivitySelfServiceGoods';
|
||||
|
||||
/**
|
||||
* 获取活动数据
|
||||
*
|
||||
* @param {number} serverId 区Id
|
||||
* @param {number} activityId 活动Id
|
||||
* @param {string} roleId 角色Id
|
||||
*
|
||||
*/
|
||||
export async function getActivity(serverId: number, roleId: string, activityId: number, activityType: number) {
|
||||
let activityData = null;
|
||||
switch (activityType) {
|
||||
case ACTIVITY_TYPE.SIGN_IN://签到 4
|
||||
case ACTIVITY_TYPE.SIGN_IN_VIP://高级签到 5
|
||||
case ACTIVITY_TYPE.NEW_PLAYER_SIGN_IN://新手签到 25
|
||||
{
|
||||
activityData = await getPlayerSignInData(activityId, serverId, roleId);
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.GROWTH_FUND_MAIN://成长基金 6
|
||||
case ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP://高阶成长基金 7
|
||||
case ACTIVITY_TYPE.GROWTH_FUND_TOWER://镇念塔成长基金 8
|
||||
case ACTIVITY_TYPE.GROWTH_FUND_TOWER_VIP://高阶镇念塔成长基金 9
|
||||
case ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE://精英成长基金 10
|
||||
case ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE_VIP://高阶精英成长基金 11
|
||||
{
|
||||
activityData = await getPlayerGrowthFundData(activityId, serverId, roleId);
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.THIRTY_DAYS://30天目标活动 12
|
||||
{
|
||||
let data = await getPlayerThirtyDaysData(activityId, serverId, roleId);
|
||||
let todayIndex = await playerThirtyDaysActivityDays(roleId);
|
||||
activityData = { playerData: data, todayIndex }
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.SELF_SERVICE_SHOP://自选商店 糜家商队 13
|
||||
{
|
||||
let data = await getPlayerActivityData(activityId, serverId, roleId);
|
||||
let playerGoods = await ActivitySelfServiceGoodsModel.findData(activityId, roleId, data.roundIndex, true);
|
||||
activityData = { playerData: data, playerGoods: playerGoods ? playerGoods : [] }
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.FIRST_GIFT://首冲礼包活动 14
|
||||
{
|
||||
activityData = await getPlayerFirstGiftData(activityId, serverId, roleId);
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_DAILY://每日限购礼包,RMB购买礼包 16
|
||||
case ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_WEEKLY://每周限购礼包,RMB购买礼包 17
|
||||
{
|
||||
activityData = await getPlayerLimitPackageData(activityId, serverId, roleId);
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.YUAN_BAO_SHOP://元宝商店 18
|
||||
{
|
||||
activityData = await getPlayerYuanbaoShopData(activityId, serverId, roleId);
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.MONTHLY_TICKET_1://月卡1 19
|
||||
case ACTIVITY_TYPE.MONTHLY_TICKET_2://月卡2 20
|
||||
{
|
||||
activityData = await getPlayerMonthlyTicketData(activityId, serverId, roleId);
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.RECHARGE_MONEY://累计充值RMB活动 21
|
||||
{
|
||||
activityData = await getPlayerRechargeMoneyData(activityId, serverId, roleId);
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.DAILY_RMB_GIFTS://每日特惠RMB购买,一次性购买7天礼包 22
|
||||
{
|
||||
activityData = await getPlayerDailyGiftsData(activityId, serverId, roleId);
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TYPE.VIP_RECHARGE_MONEY://vip累计充值活动 26
|
||||
{
|
||||
activityData = await getPlayerVipRechargeMoneyData(activityId, serverId, roleId);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return activityData;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { ACTIVITY_TYPE, DAILY_MEAL_TYPE } from '../consts';
|
||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { ActivityDailyCoinModel, ActivityDailyCoinModelType } from '../db/ActivityDailyCoin';
|
||||
import { ActivityGroupModel } from '../db/ActivityGroup';
|
||||
import { ServerlistModel } from '../db/Serverlist';
|
||||
import { DailyCoinData } from '../domain/activityField/dailyCoinField';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user