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 { firstGiftActivity, getPlayerFirstGiftData } from '../../../services/firstGiftService'; import { signInActivity, signInVIPActivity } from '../../../services/signInService'; import { growthFundActivity } from '../../../services/growthFundService'; import { limitPackageActivity, newPlayerLimitPackageActivity } from '../../../services/limitPackageService'; import { growthActivity } from '../../../services/growthService'; import { dailyChallengesActivity } from '../../../services/dailyChallengesService'; import { dailyGiftsActivity } from '../../../services/dailyGiftsService'; import { yuanbaoActivity } from '../../../services/yuanbaoService'; import { monthlyTicketActivity } from '../../../services/monthlyTicketService'; import { rechargeMoneyActivity } from '../../../services/rechargeMoneyService'; import moment = require('moment'); import { RoleModel } from '../../../db/Role'; // import { ActivityDailyChallengesModel } from '../../../db/ActivityDailyChallenges'; // import { isComplete } from '../../../pubUtils/taskUtil'; export default function (app: Application) { return new ActivityHandler(app); } export class ActivityHandler { constructor(private app: Application) { } /** * @description 活动是否开启总接口 * @param {{ }} msg * @param {BackendSession} session * @memberof ActivityHandler */ async getAllOpenActivity(msg: { hid: number, lv: number }, session: BackendSession) { const { } = msg; const roleId = session.get('roleId'); const serverId = session.get('serverId'); let test = true; let playerActivityArray = []; //七天乐活动-成长任务 1 2 3 { let endTime = moment(SERVER_OPEN_TIME).startOf('d').add(7, 'd').toDate(); if (new Date() < endTime || test) {//开启中,开服7天后过期 let sevenData = []; let growthData = await growthActivity(serverId, roleId); if (growthData) { sevenData.push({ type: ACTIVITY_TYPE.TASK_GROWTH, activityId: growthData.activityId, data: growthData, }); } let dailyChallengesData = await dailyChallengesActivity(serverId, roleId); if (dailyChallengesData) { sevenData.push({ type: ACTIVITY_TYPE.TASK_DAILY_CHALLENGES, activityId: dailyChallengesData.activityId, data: dailyChallengesData, }); } let dailyGiftsData = await dailyGiftsActivity(serverId, roleId); if (dailyGiftsData) { sevenData.push({ type: ACTIVITY_TYPE.DAILY_DISCOUNT_GIFT, activityId: dailyGiftsData.activityId, data: dailyGiftsData, }); } if (sevenData.length > 0) { playerActivityArray.push({ type: ACTIVITY_TYPE.SEVEN_DAY, activityId: 0, data: sevenData, }); } } } //14天乐活动-成长任务 1 2 3 { let beginTime = moment(SERVER_OPEN_TIME).startOf('d').add(7, 'd').toDate(); let endTime = moment(SERVER_OPEN_TIME).startOf('d').add(7, 'd').toDate(); let curDate = new Date() if (curDate > beginTime && curDate < endTime) {//开启中,开服7天后开启,开服第21天结束 let sevenData = []; let growthData = await growthActivity(serverId, roleId); if (growthData) { sevenData.push({ type: ACTIVITY_TYPE.TASK_GROWTH, activityId: growthData.activityId, data: growthData, }); } let dailyChallengesData = await dailyChallengesActivity(serverId, roleId); if (dailyChallengesData) { sevenData.push({ type: ACTIVITY_TYPE.TASK_DAILY_CHALLENGES, activityId: dailyChallengesData.activityId, data: dailyChallengesData, }); } let dailyGiftsData = await dailyGiftsActivity(serverId, roleId); if (dailyGiftsData) { sevenData.push({ type: ACTIVITY_TYPE.DAILY_DISCOUNT_GIFT, activityId: dailyGiftsData.activityId, data: dailyGiftsData, }); } if (sevenData.length > 0) { playerActivityArray.push({ type: ACTIVITY_TYPE.FOURTEEN_DAY, activityId: 0, data: sevenData, }); } } } //签到 4 { let data = await signInActivity(serverId, roleId); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.SIGN_IN, activityId: data.activityId, data, }); } } //高级签到 5 { let data = await signInVIPActivity(serverId, roleId); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.SIGN_IN_VIP, activityId: data.activityId, data, }); } } //成长基金 6 { let data = await growthFundActivity(ACTIVITY_TYPE.GROWTH_FUND_MAIN, serverId, roleId); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.GROWTH_FUND_MAIN, activityId: data.activityId, data, }); } } //高阶成长基金 7 { let data = await growthFundActivity(ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP, serverId, roleId); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.GROWTH_FUND_MAIN_VIP, activityId: data.activityId, data, }); } } //镇念塔成长基金 8 { let data = await growthFundActivity(ACTIVITY_TYPE.GROWTH_FUND_TOWER, serverId, roleId); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.GROWTH_FUND_TOWER, activityId: data.activityId, data, }); } } //高阶镇念塔成长基金 9 { let data = await growthFundActivity(ACTIVITY_TYPE.GROWTH_FUND_TOWER_VIP, serverId, roleId); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.GROWTH_FUND_TOWER_VIP, activityId: data.activityId, data, }); } } //精英成长基金 10 { let data = await growthFundActivity(ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE, serverId, roleId); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE, activityId: data.activityId, data, }); } } //高阶精英成长基金 11 { let data = await growthFundActivity(ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE_VIP, serverId, roleId); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.GROWTH_FUND_MAIN_ELITE_VIP, activityId: data.activityId, data, }); } } //首冲礼包活动 14 { let data = await firstGiftActivity(serverId, roleId); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.FIRST_GIFT, activityId: data.activityId, data, }); } } //新手限定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) { let data = await newPlayerLimitPackageActivity(serverId, roleId); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.NEW_PLAYER_LIMIT_PACKAGE, activityId: data.activityId, data, }); } } } //每日限购礼包,RMB购买礼包 16 { let data = await limitPackageActivity(serverId, roleId, ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_DAILY); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_DAILY, activityId: data.activityId, data, }); } } //每日限购礼包,RMB购买礼包 17 { let data = await limitPackageActivity(serverId, roleId, ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_WEEKLY); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.LIMIT_PACKAGE_SHOP_WEEKLY, activityId: data.activityId, data, }); } } //元宝商店 18 { let data = await yuanbaoActivity(serverId, roleId); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.YUAN_BAO_SHOP, activityId: data.activityId, data, }); } } //月卡1 19 { let data = await monthlyTicketActivity(serverId, roleId, ACTIVITY_TYPE.MONTHLY_TICKET_1); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.MONTHLY_TICKET_1, activityId: data.activityId, data, }); } } //月卡2 20 { let data = await monthlyTicketActivity(serverId, roleId, ACTIVITY_TYPE.MONTHLY_TICKET_2); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.MONTHLY_TICKET_2, activityId: data.activityId, data, }); } } //累计充值RMB活动 21 { let data = await rechargeMoneyActivity(serverId, roleId); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.RECHARGE_MONEY, activityId: data.activityId, data, }); } } return resResult(STATUS.SUCCESS, { playerActivityArray }); } }