活动:添加隐藏时间
This commit is contained in:
@@ -150,8 +150,8 @@ export class GmHandler {
|
||||
}
|
||||
}
|
||||
|
||||
async updateActivity(msg: { activityId: number|string, groupId: number, beginTime: number, endTime: number, type: number, data: string, timeType: number, days: number, delayDay: number, interval: number, name: string, hideDayByServer: number }, session: BackendSession) {
|
||||
const { activityId, groupId, beginTime, endTime, type, data, timeType = 3, days = 0, delayDay = 0, interval = 0, name = '', hideDayByServer = 0 } = msg;
|
||||
async updateActivity(msg: { activityId: number|string, groupId: number, beginTime: number, endTime: number, type: number, data: string, timeType: number, days: number, delayDay: number, interval: number, name: string, hideDayByServer: number, effectDay: number }, session: BackendSession) {
|
||||
const { activityId, groupId, beginTime, endTime, type, data, timeType = 3, days = 0, delayDay = 0, interval = 0, name = '', hideDayByServer = 0, effectDay = 0 } = msg;
|
||||
const uid = session.get('uid');
|
||||
if (!type || !data) {
|
||||
return resResult(STATUS.WRONG_PARMS);
|
||||
@@ -170,7 +170,7 @@ export class GmHandler {
|
||||
let checkGroup = await checkActivityGroupTypeWithId(groupId, activities);
|
||||
if(!checkGroup) return resResult(STATUS.GM_ACTIVITY_NOT_FIT_GROUP_TYPE);
|
||||
|
||||
activities = await ActivityModel.addActivity(aids, groupId, beginTime ? new Date(beginTime) : undefined, endTime ? new Date(endTime) : undefined, type, data, timeType, days, delayDay, interval, name, hideDayByServer, uid);
|
||||
activities = await ActivityModel.addActivity(aids, groupId, beginTime ? new Date(beginTime) : undefined, endTime ? new Date(endTime) : undefined, type, data, timeType, days, delayDay, interval, name, hideDayByServer, effectDay, uid);
|
||||
|
||||
|
||||
let activityServers = pinus.app.getServersByType('activity');
|
||||
@@ -186,13 +186,13 @@ export class GmHandler {
|
||||
});
|
||||
}
|
||||
|
||||
async switchActivity(msg: { activityId: number }, session: BackendSession) {
|
||||
const { activityId } = msg;
|
||||
async switchActivity(msg: { activityId: number, isEnable: boolean }, session: BackendSession) {
|
||||
const { activityId, isEnable } = msg;
|
||||
const uid = session.get('uid');
|
||||
let activity = await ActivityModel.findActivity(activityId);
|
||||
if(!activity) return resResult(STATUS.WRONG_PARMS);
|
||||
|
||||
activity = await ActivityModel.setEnable(activityId, !activity.isEnable, uid);
|
||||
activity = await ActivityModel.setEnable(activityId, isEnable, uid);
|
||||
|
||||
let activityServers = pinus.app.getServersByType('activity');
|
||||
for(let server of activityServers) {
|
||||
|
||||
@@ -82,6 +82,7 @@ export default (app: Application) => {
|
||||
router.post('/api/activity/createtasktoactivity', tokenParser, controller.activity.createTaskToActivity);
|
||||
router.post('/api/activity/updateactivitytaskpoint', tokenParser, controller.activity.updateActivityTaskPoint);
|
||||
router.post('/api/activity/delactivitytaskpoint', tokenParser, controller.activity.delActivityTaskPoint);
|
||||
// router.post('/api/activity/getactivitylist', tokenParser, controller.activity.getActivityList);
|
||||
|
||||
router.post('/api/mail/getcreatesinglemail', tokenParser, controller.mail.getSingleMail);
|
||||
router.post('/api/mail/getcreatesinglemailtxt', tokenParser, controller.mail.getSingleMailTxt);
|
||||
|
||||
@@ -30,14 +30,16 @@ export default class Activity extends BaseModel {
|
||||
@prop({ required: true })
|
||||
days: number; // 活动持续天数 timeType=1、2
|
||||
@prop({ required: true })
|
||||
effectDay: number; // 循环中显示的天数
|
||||
@prop({ required: true })
|
||||
delayDay: number; // 迟几天开启活动,0表示按照规定时间开启
|
||||
@prop({ required: true })
|
||||
interval: number; // 周期性活动时间间隔,秒
|
||||
interval: number; // 周期性活动时间间隔,天
|
||||
@prop({ required: true })
|
||||
hideDayByServer: number; // 开服后几天内该活动不可见
|
||||
|
||||
@prop({ required: true })
|
||||
isEnable: boolean; // 开服后几天内该活动不可见
|
||||
isEnable: boolean; // 该活动是否有效
|
||||
|
||||
// 获取正在开启和即将到来的活动列表
|
||||
public static async findOpenAndComingActivityes() {
|
||||
@@ -81,13 +83,13 @@ export default class Activity extends BaseModel {
|
||||
}
|
||||
|
||||
//新增活动
|
||||
public static async addActivity(aids: number[], groupId: number, beginTime: Date, endTime: Date, type: number, data: string, timeType: number, days: number, delayDay: number, interval: number, name: string, hideDayByServer: number, uid = 1) {
|
||||
public static async addActivity(aids: number[], groupId: number, beginTime: Date, endTime: Date, type: number, data: string, timeType: number, days: number, delayDay: number, interval: number, name: string, hideDayByServer: number, effectDay: number, uid = 1) {
|
||||
let result: ActivityModelType[] = [];
|
||||
let newAids = [];
|
||||
for (let activityId of aids) {
|
||||
if (!activityId) activityId = await CounterModel.getNewCounter(COUNTER.ACTIVITY);
|
||||
newAids.push(activityId);
|
||||
let update = { type, data, timeType, days, delayDay, interval, groupId, name, hideDayByServer }
|
||||
let update = { type, data, timeType, days, delayDay, interval, groupId, name, hideDayByServer, effectDay }
|
||||
if (beginTime != undefined) {
|
||||
update["beginTime"] = beginTime;
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ export abstract class ActivityBase {
|
||||
type: number = 0;
|
||||
todayIndex: number = 0;//从1开始
|
||||
delayDay: number = 0;//延迟多少天开启,0表示按照原计划开启
|
||||
effectDay: number = 0;// 活动生效天数
|
||||
hideDayByServer: number = 0;
|
||||
isEnable: boolean = false;
|
||||
|
||||
@@ -27,8 +28,10 @@ export abstract class ActivityBase {
|
||||
}
|
||||
|
||||
public canShow() {
|
||||
console.log('#### canShow', this.beginTime <= Date.now(), this.endTime >= Date.now())
|
||||
return this.isEnable && this.beginTime <= Date.now() && this.endTime >= Date.now()
|
||||
if(!this.isEnable) return false;
|
||||
if(this.beginTime > Date.now() || this.endTime < Date.now()) return false;
|
||||
if(this.nextRefreshTime && this.nextRefreshTime < Date.now()) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -63,7 +66,7 @@ export abstract class ActivityBase {
|
||||
|
||||
this.type = activityData.type;
|
||||
console.log('今天是活动第几天', activityData.beginTime, new Date, this.todayIndex)
|
||||
console.log('***** activityData', activityData.timeType)
|
||||
console.log('***** activityData', activityData.timeType, this.beginTime, this.endTime, this.todayIndex, this.roundIndex, this.nextRefreshTime, this.effectDay)
|
||||
switch (activityData.timeType) {
|
||||
case ACTIVITY_TIME_TYPE.SERVER_OPEN_TIME: {
|
||||
this.beginTime = moment(serverTime * 1000).add(this.delayDay, 'd').startOf('d').add(REFRESH_TIME, 'h').valueOf();
|
||||
@@ -73,7 +76,6 @@ export abstract class ActivityBase {
|
||||
this.endTime = moment(this.beginTime).add(1, 'd').valueOf();
|
||||
}
|
||||
this.todayIndex = deltaDays(moment(this.beginTime).toDate(), new Date) + 1;
|
||||
console.log('活动时间数据11...', activityData.timeType, this.beginTime, this.endTime, this.todayIndex, this.roundIndex, this.nextRefreshTime)
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TIME_TYPE.ROLE_REGISTER_TIME: {
|
||||
@@ -85,11 +87,9 @@ export abstract class ActivityBase {
|
||||
}
|
||||
this.todayIndex = deltaDays(moment(this.beginTime).toDate(), new Date) + 1;
|
||||
|
||||
console.log('活动时间数据22...', activityData.timeType, this.beginTime, this.endTime, this.todayIndex, this.roundIndex, this.nextRefreshTime)
|
||||
break;
|
||||
}
|
||||
case ACTIVITY_TIME_TYPE.DATE_TIME: {
|
||||
console.log('活动时间数据33...', activityData.timeType, this.beginTime, this.endTime, this.todayIndex, this.roundIndex, this.nextRefreshTime)
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
@@ -97,8 +97,8 @@ export abstract class ActivityBase {
|
||||
}
|
||||
}
|
||||
if (activityData.interval > 0) {
|
||||
this.roundIndex = Math.ceil((moment(new Date).valueOf() - this.beginTime) / (activityData.interval * 1000));
|
||||
this.nextRefreshTime = moment(this.beginTime).add(activityData.interval * this.roundIndex, 'second').valueOf();
|
||||
this.roundIndex = Math.ceil((moment(new Date).valueOf() - this.beginTime) / (activityData.interval * 86400000));
|
||||
this.nextRefreshTime = moment(this.beginTime).add(activityData.interval * (this.roundIndex - 1), 'day').add(activityData.effectDay, 'd').valueOf();
|
||||
this.todayIndex = Math.ceil(((moment(new Date).valueOf() - this.beginTime) / (24 * 60 * 60 * 1000)));
|
||||
}
|
||||
if(activityData.hideDayByServer > 0) {
|
||||
@@ -125,6 +125,7 @@ export class ActivityInRemote {
|
||||
timeType: number; // 活动时间类型 ACTIVITY_TIME_TYPE 1.服务器开启时间 2.角色创建时间 3.指定开启时间(beginTime,endTime)
|
||||
days: number; // 活动持续天数 timeType=1、2
|
||||
delayDay: number; // 迟几天开启活动,0表示按照规定时间开启
|
||||
effectDay: number; // 生效天数
|
||||
interval: number; // 周期性活动时间间隔,秒
|
||||
hideDayByServer: number;
|
||||
isEnable: boolean;
|
||||
@@ -144,6 +145,7 @@ export class ActivityInRemote {
|
||||
this.hideDayByServer = activity.hideDayByServer;
|
||||
this.isEnable = activity.isEnable;
|
||||
this.name = activity.name;
|
||||
this.effectDay = activity.effectDay;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -76,7 +76,7 @@ export class LimitShopData extends ActivityBase {
|
||||
// this.nextRefreshTime = this.endTime;
|
||||
let dataObj = JSON.parse(data);
|
||||
this.name = dataObj.name;
|
||||
this.interval = dataObj.interval;
|
||||
this.interval = dataObj.interval * 864000;
|
||||
|
||||
// this.beginTime = moment(this.beginTime).startOf('d').add(REFRESH_TIME, 'hour').valueOf();
|
||||
// if (this.interval > 0) {
|
||||
|
||||
@@ -155,7 +155,7 @@ export class RefreshShopData extends ActivityBase {
|
||||
let dataObj = JSON.parse(data);
|
||||
this.shopType = dataObj.shopType;
|
||||
this.name = dataObj.name;
|
||||
this.interval = dataObj.interval;
|
||||
this.interval = dataObj.interval * 864000;
|
||||
|
||||
// this.beginTime = moment(this.beginTime).startOf('d').add(REFRESH_TIME, 'hour').valueOf();
|
||||
// if (this.interval > 0) {
|
||||
|
||||
@@ -112,7 +112,7 @@ export class RefreshTaskData extends ActivityBase {
|
||||
// this.nextRefreshTime = this.endTime;
|
||||
let dataObj = JSON.parse(data);
|
||||
this.name = dataObj.name;
|
||||
this.interval = dataObj.interval;
|
||||
this.interval = dataObj.interval * 864000;
|
||||
this.consumePoint = dataObj.consumePoint;
|
||||
this.reward = dataObj.reward;
|
||||
this.addPointActivityId = dataObj.addPointActivityId ? dataObj.addPointActivityId : 0;
|
||||
|
||||
@@ -1,22 +1,4 @@
|
||||
[
|
||||
{
|
||||
"id": 1,
|
||||
"activityType": 1,
|
||||
"name": " DAILY_DISCOUNT_GIFT",
|
||||
"string": "七天乐活动"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"activityType": 2,
|
||||
"name": "TASK_GROWTH",
|
||||
"string": "七天乐(成长任务)"
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"activityType": 3,
|
||||
"name": "TASK_DAILY_CHALLENGES",
|
||||
"string": "七天乐(今日挑战)"
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"activityType": 4,
|
||||
@@ -167,12 +149,6 @@
|
||||
"name": "FOURTEEN_DAY",
|
||||
"string": "十四天乐活动"
|
||||
},
|
||||
{
|
||||
"id": 29,
|
||||
"activityType": 29,
|
||||
"name": "COMMON_SEVEN_DAY",
|
||||
"string": "通用七天乐活动"
|
||||
},
|
||||
{
|
||||
"id": 30,
|
||||
"activityType": 30,
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
"API_IS_CLOSE": 1,
|
||||
"CLOSE_APIS": [
|
||||
"order.orderHandler.applyOrder"
|
||||
],
|
||||
"CLOSE_LOGIN": 0,
|
||||
"CLOSE_LOGIN_WHEN_ONLINE_MAX": 1,
|
||||
|
||||
Reference in New Issue
Block a user