商店:添加时间配置

This commit is contained in:
luying
2022-08-12 17:29:18 +08:00
parent 0228c12c6b
commit 1a4f864f75
+39 -11
View File
@@ -1,4 +1,5 @@
import { SHOP_REFRESH_TYPE } from "../../consts"; import moment = require("moment");
import { ACTIVITY_TIME_TYPE, REFRESH_TIME, SHOP_REFRESH_TYPE } from "../../consts";
import { ActivityModelType } from "../../db/Activity"; import { ActivityModelType } from "../../db/Activity";
import { UserShopType } from "../../db/UserShop"; import { UserShopType } from "../../db/UserShop";
import { UserShopTypeType } from "../../db/UserShopType"; import { UserShopTypeType } from "../../db/UserShopType";
@@ -29,6 +30,8 @@ interface ShopItemInDb {
chosen: number; chosen: number;
indirectId: number; indirectId: number;
createTime: number; createTime: number;
timeType: ACTIVITY_TIME_TYPE;
days: number;
beginTime: number; beginTime: number;
endTime: number; endTime: number;
} }
@@ -36,10 +39,14 @@ interface ShopItemInDb {
export class ShopData extends ActivityBase { export class ShopData extends ActivityBase {
shop: number; shop: number;
type: number; type: number;
roleTime: number;
serverTime: number;
list: ShopDicData[] = []; list: ShopDicData[] = [];
constructor(activityData: ActivityModelType, createTime: number, serverTime: number) { constructor(activityData: ActivityModelType, createTime: number, serverTime: number) {
super(activityData, createTime, serverTime) super(activityData, createTime, serverTime);
this.roleTime = createTime;
this.serverTime = serverTime;
this.initData(activityData.data) this.initData(activityData.data)
} }
@@ -49,7 +56,7 @@ export class ShopData extends ActivityBase {
this.shop = result.shop; this.shop = result.shop;
this.type = result.type; this.type = result.type;
for (let obj of result.list) { for (let obj of result.list) {
this.list.push(new ShopDicData(obj)) this.list.push(new ShopDicData(obj, this.roleTime, this.serverTime))
} }
} }
@@ -85,11 +92,11 @@ export class ShopDicData {
productID: string = ''; productID: string = '';
chosen: number; chosen: number;
indirectId: number; indirectId: number;
createTime: number; createTime: number = 0;
beginTime: number; beginTime: number = 0;
endTime: number; endTime: number = 0;
constructor(obj: ShopItemInDb) { constructor(obj: ShopItemInDb, roleTime: number, serverTime: number) {
this.id = obj.id; this.id = obj.id;
this.goodId = obj.goodId; this.goodId = obj.goodId;
this.goodName = obj.goodName; this.goodName = obj.goodName;
@@ -106,8 +113,30 @@ export class ShopDicData {
this.chosen = obj.chosen; this.chosen = obj.chosen;
this.indirectId = obj.indirectId; this.indirectId = obj.indirectId;
this.createTime = obj.createTime; this.createTime = obj.createTime;
this.beginTime = obj.beginTime; this.setTime(obj, roleTime, serverTime);
this.endTime = obj.endTime; }
setTime(obj: ShopItemInDb, roleTime: number, serverTime: number) {
switch (obj.timeType) {
case ACTIVITY_TIME_TYPE.SERVER_OPEN_TIME: {
this.beginTime = moment(serverTime * 1000).startOf('d').add(REFRESH_TIME, 'h').unix();
this.endTime = moment(this.beginTime * 1000).add(obj.days > 0? obj.days: 1, 'd').unix();
break;
}
case ACTIVITY_TIME_TYPE.ROLE_REGISTER_TIME: {
this.beginTime = moment(roleTime * 1000).startOf('d').add(REFRESH_TIME, 'h').unix();
this.endTime = moment(this.beginTime * 1000).add(obj.days > 0? obj.days: 1, 'd').unix();
break;
}
case ACTIVITY_TIME_TYPE.DATE_TIME: {
this.beginTime = obj.beginTime;
this.endTime = obj.endTime;
break;
}
default: {
break;
}
}
} }
public setReadRecord(record: UserShopTypeType) { public setReadRecord(record: UserShopTypeType) {
@@ -140,8 +169,7 @@ export class ShopReturnData {
if(!activityData || activityData.shop != this.shop || activityData.type != this.type) return; if(!activityData || activityData.shop != this.shop || activityData.type != this.type) return;
this.activityId = activityData.activityId; this.activityId = activityData.activityId;
for(let obj of activityData.list) { for(let obj of activityData.list) {
let newDic = new ShopDicData(obj); this.dic.push(obj);
this.dic.push(newDic);
} }
} }