活动:添加活动开启关闭的接口
This commit is contained in:
@@ -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 { Application, BackendSession } from 'pinus';
|
||||||
import { resResult } from '../../../pubUtils/util';
|
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 { canBuyVip, getPlayerSignInData, signInActivity } from '../../../services/signInService';
|
||||||
import { addItems, createHeroes, handleCost } from '../../../services/rewardService';
|
import { addItems, createHeroes, handleCost } from '../../../services/rewardService';
|
||||||
import { SignInItem } from '../../../domain/activityField/signInField';
|
import { SignInItem } from '../../../domain/activityField/signInField';
|
||||||
@@ -59,12 +59,12 @@ export class SignInHandler {
|
|||||||
const funcs: number[] = session.get('funcs');
|
const funcs: number[] = session.get('funcs');
|
||||||
|
|
||||||
let todayIndex = moment(new Date()).date();
|
let todayIndex = moment(new Date()).date();
|
||||||
if (todayIndex < 5 || todayIndex > 24) {//未开启
|
if (todayIndex < SIGNIN_OPEN || todayIndex > SIGNIN_CLOSE) {//未开启
|
||||||
return resResult(STATUS.ACTIVITY_CLOSED);
|
return resResult(STATUS.ACTIVITY_CLOSED);
|
||||||
}
|
}
|
||||||
|
|
||||||
let openTime = SERVER_OPEN_TIME;
|
let openTime = SERVER_OPEN_TIME;
|
||||||
let activityData = await signInActivity(ACTIVITY_TYPE.SIGN_IN, serverId, roleId);
|
let activityData = await signInActivity(serverId, roleId);
|
||||||
if (!activityData) {//未配置活动数据
|
if (!activityData) {//未配置活动数据
|
||||||
return resResult(STATUS.ACTIVITY_MISSING);
|
return resResult(STATUS.ACTIVITY_MISSING);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ export async function firstGiftActivity(serverId: number, roleId: string) {
|
|||||||
let activityData = activityArray[0];
|
let activityData = activityArray[0];
|
||||||
let playerRecord: ActivityFirstGiftModelType = await ActivityFirstGiftModel.findData(activityData.activityId, roleId);
|
let playerRecord: ActivityFirstGiftModelType = await ActivityFirstGiftModel.findData(activityData.activityId, roleId);
|
||||||
if (playerRecord.isOver) {
|
if (playerRecord.isOver) {
|
||||||
return true;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
let playerData = new FirstGiftData(activityData);
|
let playerData = new FirstGiftData(activityData);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import moment = require('moment');
|
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 { ActivityModel, ActivityModelType } from '../db/Activity';
|
||||||
import { ActivitySignInModel, ActivitySignInModelType } from '../db/ActivitySignIn';
|
import { ActivitySignInModel, ActivitySignInModelType } from '../db/ActivitySignIn';
|
||||||
import { SignInData, SignInItem } from '../domain/activityField/signInField';
|
import { SignInData, SignInItem } from '../domain/activityField/signInField';
|
||||||
@@ -13,10 +13,19 @@ import { SignInData, SignInItem } from '../domain/activityField/signInField';
|
|||||||
* @param {string} roleId 角色Id
|
* @param {string} roleId 角色Id
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
export async function signInActivity(type: number, serverId: number, roleId: string) {
|
export async function signInActivity(serverId: number, roleId: string) {
|
||||||
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(serverId, type, new Date());
|
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) {
|
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
|
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;
|
export const SIGNIN_VIP_OPEN_LIMIT = 15;
|
||||||
|
|
||||||
//每日特惠礼包RMB购买4挡,一次性支付购买7天,每天只能领取当天的礼包奖励
|
//每日特惠礼包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