feat(活动): 活动多时间配置

This commit is contained in:
luying
2022-11-11 10:27:07 +08:00
parent f3357fc226
commit 282dd73951
7 changed files with 68 additions and 2 deletions

View File

@@ -95,6 +95,21 @@ export abstract class ActivityBase {
break;
}
case ACTIVITY_TIME_TYPE.MULT_DATE_TIME: {
let now = new Date();
let multiTime = activityData.multiTime||[];
for(let { id, beginTime, endTime } of multiTime) {
if(beginTime <= now && endTime > now) {
this.beginTime = beginTime.valueOf();
this.endTime = endTime.valueOf();
this.roundIndex = id;
let startOfBeginDay = moment(this.beginTime).startOf('d').add(REFRESH_TIME, 'h');
this.todayIndex = deltaDays(startOfBeginDay.toDate(), new Date) + 1;
}
}
break;
}
default: {
break;
}
@@ -116,6 +131,12 @@ export abstract class ActivityBase {
}
}
class multiTime {
id: number = 0;
beginTime: number = 0;
endTime: number = 0;
}
/**
* 存在内存内的活动
*/
@@ -124,6 +145,7 @@ export class ActivityInRemote {
activityId: number; // 活动Id
beginTime: number = 0; // 开启时间 timeType=3
endTime: number = 0; // 结束时间 timeType=3
multiTime: multiTime[] = []; // 开启时间 timeType=4
type: number; // 活动类型
data: string; // 活动表中的数据
@@ -141,6 +163,11 @@ export class ActivityInRemote {
this.activityId = activity.activityId;
if(activity.beginTime) this.beginTime = activity.beginTime.getTime();
if(activity.endTime) this.endTime = activity.endTime.getTime();
if(activity.multiTime) {
for(let { id, beginTime, endTime } of activity.multiTime) {
this.multiTime.push({ id, beginTime: beginTime?.getTime()||0, endTime: endTime?.getTime()||0 });
}
}
this.type = activity.type;
this.data = activity.data;
this.timeType = activity.timeType;
@@ -160,6 +187,7 @@ export function transActivityInRemoteToModelType(activity: ActivityInRemote): Ac
...activity,
beginTime: new Date(activity.beginTime),
endTime: new Date(activity.endTime),
multiTime: activity.multiTime.map(cur => ({ id: cur.id, beginTime: new Date(cur.beginTime), endTime: new Date(cur.endTime)})),
_id: '',
createdAt: new Date(),
updatedAt: new Date(),