活动:修改限购商店的刷新时间为5点

This commit is contained in:
qiaoxin
2021-05-28 17:20:18 +08:00
parent 480f8458f8
commit 6a2f7889ae
7 changed files with 58 additions and 21 deletions

View File

@@ -1,6 +1,6 @@
import { Application, BackendSession } from 'pinus';
import { resResult } from '../../../pubUtils/util';
import { ACTIVITY_TYPE, FIRST_GIFT_STATE, STATUS } from '../../../consts';
import { ACTIVITY_TYPE, FIRST_GIFT_STATE, SERVER_OPEN_TIME, STATUS } from '../../../consts';
import { firstGiftActivity, getPlayerFirstGiftData } from '../../../services/firstGiftService';
import { signInActivity, signInVIPActivity } from '../../../services/signInService';
import { growthFundActivity } from '../../../services/growthFundService';
@@ -10,6 +10,8 @@ import { dailyChallengesActivity } from '../../../services/dailyChallengesServic
import { dailyGiftsActivity } from '../../../services/dailyGiftsService';
import { yuanbaoActivity } from '../../../services/yuanbaoService';
import { monthlyTicketActivity } from '../../../services/monthlyTicketService';
import { rechargeMoneyActivity } from '../../../services/rechargeMoneyService';
import moment = require('moment');
export default function (app: Application) {
return new ActivityHandler(app);
@@ -172,13 +174,16 @@ export class ActivityHandler {
//新手限定RMB购买礼包 15
{
let data = await newPlayerLimitPackageActivity(serverId, roleId);
if (data) {
playerActivityArray.push({
type: ACTIVITY_TYPE.NEW_PLAYER_LIMIT_PACKAGE,
activityId: data.activityId,
data,
});
let endTime = moment(SERVER_OPEN_TIME).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
@@ -239,6 +244,19 @@ export class ActivityHandler {
});
}
}
//累计充值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 });
}

View File

@@ -1,6 +1,6 @@
import { Application, BackendSession } from 'pinus';
import { resResult } from '../../../pubUtils/util';
import { ACTIVITY_TYPE, FIRST_GIFT_STATE, STATUS } from '../../../consts';
import { ACTIVITY_TYPE, FIRST_GIFT_STATE, SERVER_OPEN_TIME, STATUS } from '../../../consts';
import { newPlayerLimitPackageActivity, getPlayerLimitPackageData, limitPackageActivity } from '../../../services/limitPackageService';
import { addReward, stringToRewardParam, useGiftPackage } from '../../../services/giftPackageService';
import { ActivityShopModel } from '../../../db/ActivityShop';
@@ -17,7 +17,7 @@ export class LimitPackageHandler {
/************************新手限定礼包****************************/
/**
* @description 获取新手限定活动数据
* @description 获取新手限定活动数据 开服1-7天可以购买第8天0-5点只能看不能买
* @param {{ activityId:number}} msg
* @param {BackendSession} session
* @memberof LimitPackageHandler
@@ -27,6 +27,10 @@ export class LimitPackageHandler {
const roleId = session.get('roleId');
const serverId = session.get('serverId');
let endTime = moment(SERVER_OPEN_TIME).startOf('d').add(7, 'd').add(5, 'h').toDate();
if (new Date() > endTime) {
return resResult(STATUS.ACTIVITY_NEW_PLAYER_GIFT_END);
}
let playerData = await newPlayerLimitPackageActivity(serverId, roleId);
if (!playerData) {
return resResult(STATUS.ACTIVITY_MISSING);
@@ -81,7 +85,8 @@ export class LimitPackageHandler {
switch (playerData.type) {
case ACTIVITY_TYPE.NEW_PLAYER_LIMIT_PACKAGE:
{
if (playerData.endTime < moment(new Date).valueOf()) {
let endTime = moment(SERVER_OPEN_TIME).startOf('d').add(7, 'd').toDate();
if (new Date() > endTime) {
return resResult(STATUS.ACTIVITY_NEW_PLAYER_LIMIT_PACKAGE_END);
}
break;

View File

@@ -1,11 +1,13 @@
import moment = require('moment');
import { ACTIVITY_TYPE, TASK_TYPE } from '../consts';
import { ActivityModel, ActivityModelType } from '../db/Activity';
import { ActivityShopModel, ActivityShopModelType } from '../db/ActivityShop';
import { RoleModel } from '../db/Role';
import { ServerlistModel } from '../db/Serverlist';
import { LimitShopData, ShopItem } from '../domain/activityField/limitShopField';
/**
* 获取新手玩家限购礼包活动数据
* 获取新手玩家限购礼包活动数据 新手限定作为开服七天乐的延伸礼包。只存在于开服前七天,七天时间过去,玩家无法购买
*
* @param {number} serverId 区Id
* @param {number} type 活动类型 ACTIVITY_TYPE
@@ -14,6 +16,9 @@ import { LimitShopData, ShopItem } from '../domain/activityField/limitShopField'
*/
export async function newPlayerLimitPackageActivity(serverId: number, roleId: string) {
let { createTime } = await RoleModel.findByRoleId(roleId);
let createDate = moment(createTime * 1000).toDate();
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.NEW_PLAYER_LIMIT_PACKAGE, new Date)
if (activityArray.length == 0) {

View File

@@ -20,15 +20,19 @@ import { ServerlistModel } from '../db/Serverlist';
export async function rechargeMoneyActivity(serverId: number, roleId: string) {
let { activityGroupId } = await ServerlistModel.findByServerId(serverId);
let activityArray: ActivityModelType[] = await ActivityModel.findOpenActivityByType(activityGroupId, ACTIVITY_TYPE.RECHARGE_MONEY, new Date())
activityArray = activityArray.sort((a, b) => {
return b.activityId - a.activityId
});
let playerDataArray = [];
for (let activityData of activityArray) {
let playerData = await getPlayerRechargeMoneyData(activityData.activityId, serverId, roleId);
playerDataArray.push(playerData)
}
return playerDataArray
let activityData = activityArray[0];
let playerRecord: ActivityRechargeMoneyModelType[] = await ActivityRechargeMoneyModel.findData(serverId, roleId);
let playerData = new RechargeMoneyData(activityData);
playerData.setPlayerRecords(playerRecord);
return playerData;
// let playerDataArray = [];
// for (let activityData of activityArray) {
// let playerData = await getPlayerRechargeMoneyData(activityData.activityId, serverId, roleId);
// playerDataArray.push(playerData)
// }
// return playerDataArray
}
/**

View File

@@ -360,6 +360,7 @@ export const STATUS = {
ACTIVITY_NEED_PAY: { code: 50023, simStr: '客户端调错接口了' },
ACTIVITY_GOLD_RESOURCE: { code: 50024, simStr: '元宝资源' },
ACTIVITY_ID_ERROR: { code: 50025, simStr: 'id错误' },
ACTIVITY_NEW_PLAYER_GIFT_END: { code: 50026, simStr: '新手活动结束' },
// GM后台相关状态 60000 - 69999
GM_ERR_PASSWORD: { code: 60001, simStr: '账号或密码错误' },
GM_MISS_API: { code: 60002, simStr: '未找到该接口' },

View File

@@ -1,4 +1,5 @@
import moment = require('moment');
import { REFRESH_TIME } from '../../consts';
import { ActivityModelType } from '../../db/Activity';
import { ActivityShopModelType } from '../../db/ActivityShop';
import { ActivityBase } from './activityField';
@@ -71,6 +72,8 @@ export class LimitShopData extends ActivityBase {
let dataObj = JSON.parse(data);
this.name = dataObj.name;
this.interval = dataObj.interval;
this.beginTime = moment(this.beginTime).startOf('d').add(REFRESH_TIME, 'hour').valueOf();
if (this.interval > 0) {
this.roundIndex = Math.ceil((moment(new Date).valueOf() - this.beginTime) / (this.interval * 1000));
this.nextRefreshTime = moment(this.beginTime).add(this.interval * this.roundIndex, 'second').valueOf();

View File

@@ -17,6 +17,7 @@ export class RechargeMoneyItem {
this.id = data.id;
this.name = data.name;
this.reward = data.reward;
this.rewardTime = null;
}
}