154 lines
7.2 KiB
TypeScript
154 lines
7.2 KiB
TypeScript
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';
|
||
import { RoleModel } from '../db/Role';
|
||
import moment = require('moment');
|
||
import { getPlayerTreasureHuntData, getTreasureHuntData } from './treasureHuntService';
|
||
import { getPlayerPopUpShopData } from './popUpShopService';
|
||
import { getPlayerSevenDaysData } from './sevenDaysService';
|
||
import { getPlayerDailyMealData } from './dailyMealService';
|
||
import { getPlayerDailyCoinData } from './dailyCoinService';
|
||
import { getPlayerDailyRMBGiftsData } from './dailyRMBGiftsService';
|
||
import { getPlayerDailyGKData } from './dailyGKService';
|
||
|
||
/**
|
||
* 获取活动数据
|
||
*
|
||
* @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.NEW_PLAYER_LIMIT_PACKAGE://新手限定RMB购买礼包 15
|
||
{
|
||
let { createTime } = await RoleModel.findByRoleId(roleId);
|
||
let createDate = moment(createTime * 1000).toDate();
|
||
let endTime = moment(createDate).startOf('d').add(7, 'd').add(5, 'h').toDate();
|
||
if (new Date() <= endTime) {
|
||
activityData = await getPlayerLimitPackageData(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 getPlayerDailyRMBGiftsData(activityId, serverId, roleId);
|
||
break;
|
||
}
|
||
case ACTIVITY_TYPE.TREASURE_HUNT://寻宝骑兵活动 23
|
||
{
|
||
let { huntActivityId, huntBeginTime, huntEndTime, huntRoundIndex } = await getTreasureHuntData(serverId);
|
||
activityData = await getPlayerTreasureHuntData(activityId, serverId, roleId, huntRoundIndex, huntBeginTime, huntEndTime);
|
||
break;
|
||
}
|
||
case ACTIVITY_TYPE.POP_UP_SHOP://弹出商店 24
|
||
{
|
||
activityData = await getPlayerPopUpShopData(activityId, serverId, roleId);
|
||
break;
|
||
}
|
||
case ACTIVITY_TYPE.VIP_RECHARGE_MONEY://vip累计充值活动 26
|
||
{
|
||
activityData = await getPlayerVipRechargeMoneyData(activityId, serverId, roleId);
|
||
break;
|
||
}
|
||
case ACTIVITY_TYPE.SEVEN_DAY://七天乐活动 27
|
||
case ACTIVITY_TYPE.FOURTEEN_DAY://十四天乐活动 28
|
||
case ACTIVITY_TYPE.COMMON_SEVEN_DAY://通用七天乐活动 29
|
||
{
|
||
activityData = await getPlayerSevenDaysData(activityId, serverId, roleId);
|
||
break;
|
||
}
|
||
case ACTIVITY_TYPE.DAILY_MEAL://每日领取免费午饭、晚饭活动 30
|
||
{
|
||
activityData = await getPlayerDailyMealData(activityId, serverId, roleId);
|
||
break;
|
||
}
|
||
case ACTIVITY_TYPE.DAILY_COIN://每日兑换铜币活动 31
|
||
{
|
||
activityData = await getPlayerDailyCoinData(activityId, serverId, roleId);
|
||
break;
|
||
}
|
||
case ACTIVITY_TYPE.DAILY_GK://每日关卡(每日开启一关) 32
|
||
{
|
||
activityData = await getPlayerDailyGKData(activityId, serverId, roleId);
|
||
break;
|
||
}
|
||
default: {
|
||
console.log('未知活动类型.........')
|
||
break;
|
||
}
|
||
}
|
||
return activityData;
|
||
}
|
||
|