演武台:转入拍卖行时间

This commit is contained in:
luying
2021-09-22 20:25:00 +08:00
parent b736b58883
commit 6f48173a9c
2 changed files with 86 additions and 10 deletions

View File

@@ -1,6 +1,6 @@
import { MailModel, MailType } from './../db/Mail';
import { DividendModel } from './../db/Dividend';
import { LOT_CODE_LEN, AUCTION_STAGE, AUCTION_TIME, DIVIDEND_CODE_LEN, DIVIDEND_STATUS, LOT_STATUS, MAIL_TYPE, CURRENCY_BY_TYPE, CURRENCY_TYPE, STATUS, DIVIDENDWEEKENDRATE, DIVIDENDMAXRATIO, DIVIDENDPOSITIONMAXRATIO, ROLE_RECEIVE_STATUS, AUCTION_BID_STATUS, DEBUG_MAGIC_WORD } from './../consts';
import { LOT_CODE_LEN, AUCTION_STAGE, AUCTION_TIME, DIVIDEND_CODE_LEN, DIVIDEND_STATUS, LOT_STATUS, MAIL_TYPE, CURRENCY_BY_TYPE, CURRENCY_TYPE, STATUS, DIVIDENDWEEKENDRATE, DIVIDENDMAXRATIO, DIVIDENDPOSITIONMAXRATIO, ROLE_RECEIVE_STATUS, AUCTION_BID_STATUS, DEBUG_MAGIC_WORD, AUCTION_SOURCE } from './../consts';
import { DividendRec, ItemReward } from "../domain/dbGeneral";
import { genCode, resResult } from '../pubUtils/util';
import { LotModel, LotParam } from '../db/Lot';
@@ -52,39 +52,85 @@ export async function officialAuctionLots(session: FrontendOrBackendSession, beg
return lots;
}
// 拍卖行开始时间 今天20:20
export function auctionBegin() {
let { hour, minute } = gameData.auctionTime.get(AUCTION_TIME.GUILD_OPEN);
return <Date>getTimeFunD().getAfterDayWithHour(0, hour, minute);
return <Date>getTimeFunD().getAfterDayAndSetHour(0, hour, minute);
}
// 军团拍卖行结束时间 20:30
export function guildAuctionEnd() {
let { hour, minute } = gameData.auctionTime.get(AUCTION_TIME.GUILD_CLOSE);
return <Date>getTimeFunD().getAfterDayWithHour(0, hour, minute);
return <Date>getTimeFunD().getAfterDayAndSetHour(0, hour, minute);
}
// 拍卖行结束时间 22:00
export function auctionEnd() {
let { hour, minute } = gameData.auctionTime.get(AUCTION_TIME.WORLD_CLOSE);
return <Date>getTimeFunD().getAfterDayWithHour(0, hour, minute);
return <Date>getTimeFunD().getAfterDayAndSetHour(0, hour, minute);
}
// 今天军团拍卖行开始时间 20:20
export function todayGuildBegin() {
let { hour, minute } = gameData.auctionTime.get(AUCTION_TIME.GUILD_OPEN);
return <Date>getTimeFunD(getZeroPointD()).getAfterDayWithHour(0, hour, minute);
return <Date>getTimeFunD().getAfterDayAndSetHour(0, hour, minute);
}
// 明天军团拍卖行开始时间 20:20
export function tomorrowGuildBegin() {
let { hour, minute } = gameData.auctionTime.get(AUCTION_TIME.GUILD_OPEN);
console.log(hour, minute)
return <Date>getTimeFunD().getAfterDayAndSetHour(1, hour, minute);
}
// 明天军团拍卖行开始时间 20:20
export function tomorrowGuildEnd() {
let { hour, minute } = gameData.auctionTime.get(AUCTION_TIME.GUILD_CLOSE);
console.log(hour, minute)
return <Date>getTimeFunD().getAfterDayAndSetHour(1, hour, minute);
}
// 昨天军团拍卖行开始时间 20:20
export function yestodayGuildBegin() {
let { hour, minute } = gameData.auctionTime.get(AUCTION_TIME.GUILD_OPEN);
return <Date>getTimeFunD(getZeroPointD()).getAfterDayWithHour(-1, hour, minute);
return <Date>getTimeFunD().getAfterDayAndSetHour(-1, hour, minute);
}
// 今天世界拍卖行开始时间 20:40
export function todayWorldBegin() {
let { hour, minute } = gameData.auctionTime.get(AUCTION_TIME.WORLD_OPEN);
return <Date>getTimeFunD(getZeroPointD()).getAfterDayWithHour(0, hour, minute);
return <Date>getTimeFunD().getAfterDayAndSetHour(0, hour, minute);
}
// 今天世界拍卖行结束时间 22:00
export function todayWorldEnd() {
let { hour, minute } = gameData.auctionTime.get(AUCTION_TIME.WORLD_CLOSE);
return <Date>getTimeFunD(getZeroPointD()).getAfterDayWithHour(0, hour, minute);
return <Date>getTimeFunD().getAfterDayAndSetHour(0, hour, minute);
}
// 拍卖行预览时间 20:00
export function guildAuctionPreview() {
let { hour, minute } = gameData.auctionTime.get(AUCTION_TIME.GUILD_PREVIEW);
return <Date>getTimeFunD().getAfterDayAndSetHour(0, hour, minute);
}
// 演武台。8点以前是今天的8点以后是明天的
export function getBossAuctionBegin() {
if(Date.now() < guildAuctionPreview().getTime()) {
return todayGuildBegin();
} else {
return tomorrowGuildBegin();
}
}
// 演武台。8点以前是今天的8点以后是明天的
export function getBossAuctionEnd() {
if(Date.now() < guildAuctionPreview().getTime()) {
return guildAuctionEnd();
} else {
return tomorrowGuildEnd();
}
}
/**
@@ -97,9 +143,13 @@ export function todayWorldEnd() {
* @param {ItemReward[]} rewards
*/
export async function genAuction(guildCode: string, sourceType: number, sourceCode: string, serverId: number, rewards: ItemReward[]) {
const begin = auctionBegin();
let begin = auctionBegin();
let end = auctionEnd();
if(sourceType == AUCTION_SOURCE.BOSS) { // 军团boss本
begin = getBossAuctionBegin();
end = getBossAuctionEnd();
}
const guildEnd = guildAuctionEnd();
const end = auctionEnd();
const lotsData: LotParam[] = rewards.map(reward => {
const { id, count } = reward;
const code = genCode(LOT_CODE_LEN);

View File

@@ -312,6 +312,32 @@ class Time {
}
}
/**
* @description 获取几天前的指定时分秒,但是不做前后的计算
* @param day 几天前
* @param hour 几点,默认为刷新时间
* @param minute 几分
* @param seconds 几秒
*/
public getBeforeDayAndSetHour(day: number = 0, hour = REFRESH_TIME, minute = 0, seconds = 0) {
let t = this._setHour(this.time, hour, minute, seconds);
let timestamp = t.getTime() - day * this.DAY_TO_MS;
return this._returnResult(timestamp);
}
/**
* @description 获取几天后的指定时分秒,但是不做前后的计算
* @param day 几天前
* @param hour 几点,默认为刷新时间
* @param minute 几分
* @param seconds 几秒
*/
public getAfterDayAndSetHour(day: number = 0, hour = REFRESH_TIME, minute = 0, seconds = 0) {
let t = this._setHour(this.time, hour, minute, seconds);
let timestamp = t.getTime() + day * this.DAY_TO_MS;
return this._returnResult(timestamp);
}
/**
* @description 获取某个时间的纯粹的几天前
* @param day 几天前