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 { newPlayerSignInActivity, 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 { playerThirtyDaysActivityDays, thirtyDaysActivity } from '../../../services/thirtyDaysService'; import { dailyRMBGiftsActivity } from '../../../services/dailyRMBGiftsService'; import { popUpShopActivity } from '../../../services/popUpShopService'; import { vipRechargeMoneyActivity } from '../../../services/vipRechargeMoneyService'; import { sevenDaysActivity } from '../../../services/sevenDaysService'; import { checkActivityTask } from '../../../services/taskService'; import { treasureHuntActivity } from '../../../services/treasureHuntService'; // 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'); const sid: string = session.get('sid'); const funcs: number[] = session.get('funcs'); 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, }); } } //30天目标活动 12 { let data = await thirtyDaysActivity(ACTIVITY_TYPE.THIRTY_DAYS, serverId, roleId); if (data) { let todayIndex = await playerThirtyDaysActivityDays(roleId); playerActivityArray.push({ type: ACTIVITY_TYPE.THIRTY_DAYS, activityId: data.activityId, data: { playerData: data, todayIndex }, }); } } //首冲礼包活动 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, }); } } //每日特惠RMB购买,一次性购买7天礼包 22 { let data = await dailyRMBGiftsActivity(serverId, roleId); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.DAILY_RMB_GIFTS, activityId: data.activityId, data, }); } } //寻宝骑兵活动 23 { let data = await treasureHuntActivity(serverId, roleId); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.TREASURE_HUNT, activityId: data.activityId, data, }); } } //弹出商店 24 { let data = await popUpShopActivity(serverId, roleId); if (data && data.length > 0) { for (let obj of data) { playerActivityArray.push({ type: ACTIVITY_TYPE.POP_UP_SHOP, activityId: obj.activityId, data: obj, }); } } } //新手签到 25 { let data = await newPlayerSignInActivity(serverId, roleId); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.NEW_PLAYER_SIGN_IN, activityId: data.activityId, data, }); } } //vip累计充值活动 26 { let data = await vipRechargeMoneyActivity(serverId, roleId); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.VIP_RECHARGE_MONEY, activityId: data.activityId, data, }); } } //七天乐活动 27 { let data = await sevenDaysActivity(serverId, roleId, ACTIVITY_TYPE.SEVEN_DAY); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.SEVEN_DAY, activityId: data.activityId, data, }); } } //十四天乐活动 28 { let data = await sevenDaysActivity(serverId, roleId, ACTIVITY_TYPE.FOURTEEN_DAY); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.FOURTEEN_DAY, activityId: data.activityId, data, }); } } //通用七天乐活动 29 { let data = await sevenDaysActivity(serverId, roleId, ACTIVITY_TYPE.COMMON_SEVEN_DAY); if (data) { playerActivityArray.push({ type: ACTIVITY_TYPE.COMMON_SEVEN_DAY, activityId: data.activityId, data, }); } } return resResult(STATUS.SUCCESS, { playerActivityArray }); } //测试活动任务数据 async testActivityTask(msg: { hid: number, lv: number }, session: BackendSession) { const { lv } = msg; const roleId = session.get('roleId'); const serverId = session.get('serverId'); const sid: string = session.get('sid'); const funcs: number[] = session.get('funcs'); let heroNum = 1; // await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.HERO_QUALITY, heroNum, { heroes: [{ quality: 3 }] }) // await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.HERO_QUALITY_TO_QUALITY_COUNT, 1, { oldQuality: 1, quality: 2 }) // await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.HERO_WAKE_UP_STAR_UP_COUNT, 1, { quality: 1, colorStar: 1 }) // await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_MAIN_ELITE, 1, { mainEliteWarId: 9001 }) // await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_DUNGEON_WAR, 1, { warId: 5001 }) // await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_EXPEDITION_BOX, 1) // await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.ROLE_LV, 100) // await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.PVP, 1) await checkActivityTask(serverId, sid, funcs, roleId, TASK_TYPE.BATTLE_TOWER_LV, 1, { towerLv: lv }) return resResult(STATUS.SUCCESS,); } }