活动:添加活动开启关闭的接口
This commit is contained in:
58
game-server/app/servers/activity/handler/activityHandler.ts
Normal file
58
game-server/app/servers/activity/handler/activityHandler.ts
Normal file
@@ -0,0 +1,58 @@
|
||||
import { Application, BackendSession } from 'pinus';
|
||||
import { resResult } from '../../../pubUtils/util';
|
||||
import { ACTIVITY_TYPE, FIRST_GIFT_STATE, STATUS } from '../../../consts';
|
||||
import { firstGiftActivity, getPlayerFirstGiftData } from '../../../services/firstGiftService';
|
||||
import { RoleModel } from '../../../db/Role';
|
||||
import { addReward, stringToRewardParam, useGiftPackage } from '../../../services/giftPackageService';
|
||||
import { ActivityFirstGiftModel } from '../../../db/ActivityFirstGift';
|
||||
import { signInActivity } from '../../../services/signInService';
|
||||
|
||||
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: {}, session: BackendSession) {
|
||||
const { } = msg;
|
||||
const roleId = session.get('roleId');
|
||||
const serverId = session.get('serverId');
|
||||
|
||||
let playerActivityArray = [];
|
||||
//首冲礼包活动
|
||||
{
|
||||
let data = await firstGiftActivity(serverId, roleId);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.FIRST_GIFT,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
//签到
|
||||
{
|
||||
let data = await signInActivity(serverId, roleId);
|
||||
if (data) {
|
||||
playerActivityArray.push({
|
||||
type: ACTIVITY_TYPE.SIGN_IN,
|
||||
activityId: data.activityId,
|
||||
data,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return resResult(STATUS.SUCCESS, { playerActivityArray });
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
import { Application, BackendSession } from 'pinus';
|
||||
import { resResult } from '../../../pubUtils/util';
|
||||
import { STATUS, SIGNIN_VIP_OPEN_LIMIT, ACTIVITY_TYPE, SERVER_OPEN_TIME } from '../../../consts';
|
||||
import { STATUS, SIGNIN_VIP_OPEN_LIMIT, ACTIVITY_TYPE, SERVER_OPEN_TIME, SIGNIN_OPEN, SIGNIN_CLOSE } from '../../../consts';
|
||||
import { canBuyVip, getPlayerSignInData, signInActivity } from '../../../services/signInService';
|
||||
import { addItems, createHeroes, handleCost } from '../../../services/rewardService';
|
||||
import { SignInItem } from '../../../domain/activityField/signInField';
|
||||
@@ -59,12 +59,12 @@ export class SignInHandler {
|
||||
const funcs: number[] = session.get('funcs');
|
||||
|
||||
let todayIndex = moment(new Date()).date();
|
||||
if (todayIndex < 5 || todayIndex > 24) {//未开启
|
||||
if (todayIndex < SIGNIN_OPEN || todayIndex > SIGNIN_CLOSE) {//未开启
|
||||
return resResult(STATUS.ACTIVITY_CLOSED);
|
||||
}
|
||||
|
||||
let openTime = SERVER_OPEN_TIME;
|
||||
let activityData = await signInActivity(ACTIVITY_TYPE.SIGN_IN, serverId, roleId);
|
||||
let activityData = await signInActivity(serverId, roleId);
|
||||
if (!activityData) {//未配置活动数据
|
||||
return resResult(STATUS.ACTIVITY_MISSING);
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ export async function firstGiftActivity(serverId: number, roleId: string) {
|
||||
let activityData = activityArray[0];
|
||||
let playerRecord: ActivityFirstGiftModelType = await ActivityFirstGiftModel.findData(activityData.activityId, roleId);
|
||||
if (playerRecord.isOver) {
|
||||
return true;
|
||||
return null;
|
||||
}
|
||||
|
||||
let playerData = new FirstGiftData(activityData);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import moment = require('moment');
|
||||
import { SERVER_OPEN_TIME, SIGNIN_VIP_OPEN_LIMIT } from '../consts';
|
||||
import { ACTIVITY_TYPE, SERVER_OPEN_TIME, SIGNIN_CLOSE, SIGNIN_OPEN, SIGNIN_VIP_OPEN_LIMIT } from '../consts';
|
||||
import { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||
import { ActivitySignInModel, ActivitySignInModelType } from '../db/ActivitySignIn';
|
||||
import { SignInData, SignInItem } from '../domain/activityField/signInField';
|
||||
@@ -13,10 +13,19 @@ import { SignInData, SignInItem } from '../domain/activityField/signInField';
|
||||
* @param {string} roleId 角色Id
|
||||
*
|
||||
*/
|
||||
export async function signInActivity(type: number, serverId: number, roleId: string) {
|
||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(serverId, type, new Date());
|
||||
export async function signInActivity(serverId: number, roleId: string) {
|
||||
let todayIndex = moment(new Date()).date();
|
||||
if (todayIndex < SIGNIN_OPEN || todayIndex > SIGNIN_CLOSE) {//未开启
|
||||
return null;
|
||||
}
|
||||
|
||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(serverId, ACTIVITY_TYPE.SIGN_IN, new Date());
|
||||
if (activityArray.length > 0) {
|
||||
return activityArray[0];
|
||||
let activityData = activityArray[0];
|
||||
let playerData = new SignInData(activityData);
|
||||
let playerRecords: ActivitySignInModelType[] = await ActivitySignInModel.findData(activityData.activityId, roleId, playerData.roundIndex);
|
||||
playerData.setPlayerRecords(playerRecords);
|
||||
return playerData;
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
@@ -92,4 +92,8 @@ export const SERVER_OPEN_TIME = '2021-05-19T20:03:16.637+08:00';
|
||||
export const SIGNIN_VIP_OPEN_LIMIT = 15;
|
||||
|
||||
//每日特惠礼包RMB购买4挡,一次性支付购买7天,每天只能领取当天的礼包奖励
|
||||
export const DAILYRMBGIFTS_DAYS = 7;//一次性购买*天
|
||||
export const DAILYRMBGIFTS_DAYS = 7;//一次性购买*天
|
||||
|
||||
//签到活动开启时间
|
||||
export const SIGNIN_OPEN = 5;//*号0点开启
|
||||
export const SIGNIN_CLOSE = 24;//*号晚上24点结束
|
||||
Reference in New Issue
Block a user