Files
ZYZ/game-server/app/servers/activity/handler/activityHandler.ts
2021-05-28 19:10:51 +08:00

304 lines
11 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 { hid, lv } = msg;
const roleId = session.get('roleId');
const serverId = session.get('serverId');
let playerActivityArray = [];
//七天乐活动-成长任务 1 2 3
{
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 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 });
}
}