商店:添加时间配置
This commit is contained in:
@@ -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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user