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; }