弹出礼包时间

This commit is contained in:
luying
2022-08-16 14:51:34 +08:00
parent af30bc7c8c
commit 9e757e0c61
2 changed files with 16 additions and 15 deletions
+11 -10
View File
@@ -1,5 +1,5 @@
import moment = require("moment");
import { POP_UP_SHOP_CONDITION_TYPE, POP_UP_SHOP_REFRESH_TIME_TYPE, REFRESH_TIME } from "../../consts";
import { POP_UP_SHOP_CONDITION_TYPE, POP_UP_SHOP_REFRESH_TIME_TYPE, REFRESH_TIME, SHOP_REFRESH_TYPE } from "../../consts";
import { ActivityModelType } from "../../db/Activity";
import { ActivityPopUpShopModelType, PopUpShopItem as ActivityPopUpShopItem } from "../../db/ActivityPopUpShop";
import { RewardInter } from "../../pubUtils/interface";
@@ -7,7 +7,7 @@ import { parseNumberList } from "../../pubUtils/util";
import { stringWithTypeToRewardInter } from "../../pubUtils/roleUtil";
import { ActivityBase } from './activityField';
import { PVPConfigModel } from "../../db/SystemConfig";
import { nowSeconds } from "../../pubUtils/timeUtil";
import { getZeroPointOfTimeD, nowSeconds } from "../../pubUtils/timeUtil";
// 数据库格式
interface PopUpShopDataInDb {
@@ -302,22 +302,23 @@ export class PopUpShopPackage {
effectEndTime = new Date(this.parent.endTime);
break;
case POP_UP_SHOP_REFRESH_TIME_TYPE.NATURAL_DAY:
effectBeginTime = moment(now).startOf('d').add(REFRESH_TIME, 'h').toDate();
effectEndTime = moment(now).endOf('d').add(REFRESH_TIME, 'h').toDate();
effectBeginTime = getZeroPointOfTimeD(now, SHOP_REFRESH_TYPE.DAILY);
effectEndTime = moment(effectBeginTime).add(1, 'd').toDate();
break;
case POP_UP_SHOP_REFRESH_TIME_TYPE.NATURAL_WEEK:
effectBeginTime = moment(now).startOf('w').add(REFRESH_TIME, 'h').toDate();
effectEndTime = moment(now).endOf('w').add(REFRESH_TIME, 'h').toDate();
effectBeginTime = getZeroPointOfTimeD(now, SHOP_REFRESH_TYPE.WEEKLY);
effectEndTime = moment(effectBeginTime).add(1, 'w').toDate();
break;
case POP_UP_SHOP_REFRESH_TIME_TYPE.NATURAL_MONTH:
effectBeginTime = moment(now).startOf('month').add(REFRESH_TIME, 'h').toDate();
effectEndTime = moment(now).endOf('month').add(REFRESH_TIME, 'h').toDate();
effectBeginTime = getZeroPointOfTimeD(now, SHOP_REFRESH_TYPE.MONTHLY);
effectEndTime = moment(effectBeginTime).add(1, 'month').toDate();
break;
case POP_UP_SHOP_REFRESH_TIME_TYPE.DAYS:
let gap = moment(now).diff(this.parent.beginTime, 'd');
let n = Math.floor(gap / this.refreshDay);
effectBeginTime = moment(this.parent.beginTime).startOf('d').add(n * this.refreshDay, 'd').add(REFRESH_TIME, 'h').toDate();
effectEndTime = moment(this.parent.beginTime).startOf('d').add((n + 1) * this.refreshDay, 'd').add(REFRESH_TIME, 'h').toDate();
let zeroPoint = getZeroPointOfTimeD(this.parent.beginTime, SHOP_REFRESH_TYPE.DAILY);
effectBeginTime = moment(zeroPoint).add(n * this.refreshDay, 'd').toDate();
effectEndTime = moment(zeroPoint).add(n * this.refreshDay, 'd').toDate();
break;
case POP_UP_SHOP_REFRESH_TIME_TYPE.PVP:
let pvpConfig = await PVPConfigModel.findCurPVPConfig();
+5 -5
View File
@@ -268,7 +268,7 @@ class Time {
* @param seconds 几秒
*/
public getMonthZeroPoint(day: number = 1, hour = REFRESH_TIME, minute = 0, seconds = 0) {
let t = this._getTimeWithWeek(this.time, day, hour, minute, seconds);
let t = this._getTimeWithMonth(this.time, day, hour, minute, seconds);
if(this.now > t) {
return this._returnResult(t);
} else {
@@ -505,14 +505,14 @@ export function getZeroPointOfTime(refTime: Date|number, refreshType: SHOP_REFRE
}
}
export function getZeroPointOfTimeD(refTime: Date, refreshType: SHOP_REFRESH_TYPE = SHOP_REFRESH_TYPE.DAILY) {
export function getZeroPointOfTimeD(refTime: Date|number, refreshType: SHOP_REFRESH_TYPE = SHOP_REFRESH_TYPE.DAILY, hour = REFRESH_TIME) {
let t = new Time(TIME_OUTPUT_TYPE.DATE, refTime);
if(refreshType == SHOP_REFRESH_TYPE.DAILY) {
return <Date>t.getDayZeroPoint();
return <Date>t.getDayZeroPoint(hour);
} else if (refreshType == SHOP_REFRESH_TYPE.WEEKLY) {
return <Date>t.getWeekZeroPoint();
return <Date>t.getWeekZeroPoint(1, hour);
} else if (refreshType == SHOP_REFRESH_TYPE.MONTHLY) {
return <Date>t.getMonthZeroPoint();
return <Date>t.getMonthZeroPoint(1, hour);
}
}