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