测试:演武台拍卖行测试
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
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, DIVIDENDMAXRATIO, DIVIDENDPOSITIONMAXRATIO, ROLE_RECEIVE_STATUS, AUCTION_BID_STATUS, DEBUG_MAGIC_WORD, AUCTION_SOURCE } from './../consts';
|
||||
import { DividendRec, ItemReward } from "../domain/dbGeneral";
|
||||
import { genCode } from '../pubUtils/util';
|
||||
import { genCode, getRandSingleEelm } from '../pubUtils/util';
|
||||
import { LotModel, LotParam } from '../db/Lot';
|
||||
import { getCurDay, getTimeFunD, getTimeFunM } from '../pubUtils/timeUtil';
|
||||
import { gameData, getGoodById } from '../pubUtils/data';
|
||||
@@ -26,12 +26,12 @@ export function getMaxPrice(gid: number, count: number) {
|
||||
return (good ? good.quality * 200 : 200) * count;
|
||||
}
|
||||
|
||||
export function auctionStage() {
|
||||
export async function auctionStage() {
|
||||
const curTime = new Date().getTime();
|
||||
if (curTime < todayGuildBegin().getTime()) return AUCTION_STAGE.DEFAULT;
|
||||
if (curTime < todayWorldBegin().getTime() && curTime > todayGuildBegin().getTime()) return AUCTION_STAGE.GUILD;
|
||||
if (curTime > todayWorldBegin().getTime() && curTime < todayWorldEnd().getTime()) return AUCTION_STAGE.WORLD;
|
||||
if (curTime > todayWorldEnd().getTime()) return AUCTION_STAGE.END;
|
||||
if (curTime < (await todayGuildBegin()).getTime()) return AUCTION_STAGE.DEFAULT;
|
||||
if (curTime < (await todayWorldBegin()).getTime() && curTime > (await todayGuildBegin()).getTime()) return AUCTION_STAGE.GUILD;
|
||||
if (curTime > (await todayWorldBegin()).getTime() && curTime < (await todayWorldEnd()).getTime()) return AUCTION_STAGE.WORLD;
|
||||
if (curTime > (await todayWorldEnd()).getTime()) return AUCTION_STAGE.END;
|
||||
}
|
||||
|
||||
export async function debugAuctionLots(session: FrontendOrBackendSession, begin: Date) {
|
||||
@@ -43,7 +43,7 @@ export async function debugAuctionLots(session: FrontendOrBackendSession, begin:
|
||||
export async function officialAuctionLots(session: FrontendOrBackendSession, begin: Date) {
|
||||
const serverId = session.get('serverId');
|
||||
const guildCode = session.get('guildCode');
|
||||
const stage = auctionStage();
|
||||
const stage = await auctionStage();
|
||||
let lots = [];
|
||||
if (stage === AUCTION_STAGE.DEFAULT || stage === AUCTION_STAGE.GUILD) {
|
||||
lots = await LotModel.findGuildLotsByBegin(guildCode, begin);
|
||||
@@ -54,83 +54,102 @@ export async function officialAuctionLots(session: FrontendOrBackendSession, beg
|
||||
}
|
||||
|
||||
// 拍卖行开始时间 今天20:20
|
||||
export function auctionBegin() {
|
||||
export async function auctionBegin() {
|
||||
let now = await getCurrentTime();
|
||||
let { hour, minute } = gameData.auctionTime.get(AUCTION_TIME.GUILD_OPEN);
|
||||
return <Date>getTimeFunD().getAfterDayAndSetHour(0, hour, minute);
|
||||
return <Date>getTimeFunD(now).getAfterDayAndSetHour(0, hour, minute);
|
||||
}
|
||||
|
||||
// 军团拍卖行结束时间 20:30
|
||||
export function guildAuctionEnd() {
|
||||
export async function guildAuctionEnd() {
|
||||
let now = await getCurrentTime();
|
||||
let { hour, minute } = gameData.auctionTime.get(AUCTION_TIME.GUILD_CLOSE);
|
||||
return <Date>getTimeFunD().getAfterDayAndSetHour(0, hour, minute);
|
||||
return <Date>getTimeFunD(now).getAfterDayAndSetHour(0, hour, minute);
|
||||
}
|
||||
|
||||
// 拍卖行结束时间 22:00
|
||||
export function auctionEnd() {
|
||||
export async function auctionEnd() {
|
||||
let now = await getCurrentTime();
|
||||
let { hour, minute } = gameData.auctionTime.get(AUCTION_TIME.WORLD_CLOSE);
|
||||
return <Date>getTimeFunD().getAfterDayAndSetHour(0, hour, minute);
|
||||
return <Date>getTimeFunD(now).getAfterDayAndSetHour(0, hour, minute);
|
||||
}
|
||||
|
||||
// 今天军团拍卖行开始时间 20:20
|
||||
export function todayGuildBegin() {
|
||||
export async function todayGuildBegin() {
|
||||
let now = await getCurrentTime();
|
||||
let { hour, minute } = gameData.auctionTime.get(AUCTION_TIME.GUILD_OPEN);
|
||||
return <Date>getTimeFunD().getAfterDayAndSetHour(0, hour, minute);
|
||||
return <Date>getTimeFunD(now).getAfterDayAndSetHour(0, hour, minute);
|
||||
}
|
||||
|
||||
async function getCurrentTime() {
|
||||
let now = Date.now();
|
||||
if(dicParam.SERVER_DEBUG_MODE.CURRENT_TIME == 1) {
|
||||
let guilds = pinus.app.getServersByType('guild');
|
||||
let guild = getRandSingleEelm(guilds);
|
||||
now = await pinus.app.rpc.guild.guildActivityRemote.getCurrentTime.toServer(guild.id);
|
||||
}
|
||||
return now
|
||||
}
|
||||
|
||||
// 明天军团拍卖行开始时间 20:20
|
||||
export function tomorrowGuildBegin() {
|
||||
export async function tomorrowGuildBegin() {
|
||||
let now = await getCurrentTime();
|
||||
let { hour, minute } = gameData.auctionTime.get(AUCTION_TIME.GUILD_OPEN);
|
||||
// console.log(hour, minute)
|
||||
return <Date>getTimeFunD().getAfterDayAndSetHour(1, hour, minute);
|
||||
return <Date>getTimeFunD(now).getAfterDayAndSetHour(1, hour, minute);
|
||||
}
|
||||
|
||||
// 明天军团拍卖行开始时间 20:20
|
||||
export function tomorrowGuildEnd() {
|
||||
export async function tomorrowGuildEnd() {
|
||||
let now = await getCurrentTime();
|
||||
let { hour, minute } = gameData.auctionTime.get(AUCTION_TIME.GUILD_CLOSE);
|
||||
// console.log(hour, minute)
|
||||
return <Date>getTimeFunD().getAfterDayAndSetHour(1, hour, minute);
|
||||
return <Date>getTimeFunD(now).getAfterDayAndSetHour(1, hour, minute);
|
||||
}
|
||||
|
||||
// 昨天军团拍卖行开始时间 20:20
|
||||
export function yestodayGuildBegin() {
|
||||
export async function yestodayGuildBegin() {
|
||||
let now = await getCurrentTime();
|
||||
let { hour, minute } = gameData.auctionTime.get(AUCTION_TIME.GUILD_OPEN);
|
||||
return <Date>getTimeFunD().getAfterDayAndSetHour(-1, hour, minute);
|
||||
return <Date>getTimeFunD(now).getAfterDayAndSetHour(-1, hour, minute);
|
||||
}
|
||||
|
||||
// 今天世界拍卖行开始时间 20:40
|
||||
export function todayWorldBegin() {
|
||||
export async function todayWorldBegin() {
|
||||
let now = await getCurrentTime();
|
||||
let { hour, minute } = gameData.auctionTime.get(AUCTION_TIME.WORLD_OPEN);
|
||||
return <Date>getTimeFunD().getAfterDayAndSetHour(0, hour, minute);
|
||||
return <Date>getTimeFunD(now).getAfterDayAndSetHour(0, hour, minute);
|
||||
}
|
||||
|
||||
// 今天世界拍卖行结束时间 22:00
|
||||
export function todayWorldEnd() {
|
||||
export async function todayWorldEnd() {
|
||||
let now = await getCurrentTime();
|
||||
let { hour, minute } = gameData.auctionTime.get(AUCTION_TIME.WORLD_CLOSE);
|
||||
return <Date>getTimeFunD().getAfterDayAndSetHour(0, hour, minute);
|
||||
return <Date>getTimeFunD(now).getAfterDayAndSetHour(0, hour, minute);
|
||||
}
|
||||
|
||||
// 拍卖行预览时间 20:00
|
||||
export function guildAuctionPreview() {
|
||||
export async function guildAuctionPreview() {
|
||||
let now = await getCurrentTime();
|
||||
let { hour, minute } = gameData.auctionTime.get(AUCTION_TIME.GUILD_PREVIEW);
|
||||
return <Date>getTimeFunD().getAfterDayAndSetHour(0, hour, minute);
|
||||
return <Date>getTimeFunD(now).getAfterDayAndSetHour(0, hour, minute);
|
||||
}
|
||||
|
||||
// 演武台。8点以前是今天的,8点以后是明天的
|
||||
export function getBossAuctionBegin() {
|
||||
if(Date.now() < guildAuctionPreview().getTime()) {
|
||||
return todayGuildBegin();
|
||||
export async function getBossAuctionBegin() {
|
||||
if(Date.now() < (await guildAuctionPreview()).getTime()) {
|
||||
return await todayGuildBegin();
|
||||
} else {
|
||||
return tomorrowGuildBegin();
|
||||
return await tomorrowGuildBegin();
|
||||
}
|
||||
}
|
||||
|
||||
// 演武台。8点以前是今天的,8点以后是明天的
|
||||
export function getBossAuctionEnd() {
|
||||
if(Date.now() < guildAuctionPreview().getTime()) {
|
||||
return guildAuctionEnd();
|
||||
export async function getBossAuctionEnd() {
|
||||
if(Date.now() < (await guildAuctionPreview()).getTime()) {
|
||||
return await guildAuctionEnd();
|
||||
} else {
|
||||
return tomorrowGuildEnd();
|
||||
return await tomorrowGuildEnd();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -144,13 +163,13 @@ export function getBossAuctionEnd() {
|
||||
* @param {ItemReward[]} rewards
|
||||
*/
|
||||
export async function genAuction(guildCode: string, sourceType: number, sourceCode: string, serverId: number, rewards: { goods: RewardInter, basePrice: number, maxPrice: number}[]) {
|
||||
let begin = auctionBegin();
|
||||
let end = auctionEnd();
|
||||
let begin = await auctionBegin();
|
||||
let end = await auctionEnd();
|
||||
if(sourceType == AUCTION_SOURCE.BOSS) { // 军团boss本
|
||||
begin = getBossAuctionBegin();
|
||||
end = getBossAuctionEnd();
|
||||
begin = await getBossAuctionBegin();
|
||||
end = await getBossAuctionEnd();
|
||||
}
|
||||
const guildEnd = guildAuctionEnd();
|
||||
const guildEnd = await guildAuctionEnd();
|
||||
const lotsData: LotParam[] = rewards.map(({ goods, basePrice, maxPrice }) => {
|
||||
const { id, count } = goods;
|
||||
const code = genCode(LOT_CODE_LEN);
|
||||
@@ -223,7 +242,7 @@ export async function calculateDividend(dividend: DividendType) {
|
||||
export async function startGuildAuction() {
|
||||
try {
|
||||
console.log('schedule startGuildAuction called:', new Date());
|
||||
const begin = todayGuildBegin();
|
||||
const begin = await todayGuildBegin();
|
||||
await LotModel.updateLotsStageByBegin(begin, AUCTION_STAGE.GUILD);
|
||||
await DividendModel.updateDividendsStatus(begin, DIVIDEND_STATUS.ING);
|
||||
|
||||
@@ -243,7 +262,7 @@ export async function startGuildAuction() {
|
||||
export async function startWorldAuction() {
|
||||
try {
|
||||
console.log('schedule startWorldAuction called:', new Date());
|
||||
const begin = todayGuildBegin();
|
||||
const begin = await todayGuildBegin();
|
||||
await LotModel.setLotSoldByBegin(begin);
|
||||
await LotModel.updateUnSoldLotsStageByBegin(begin, AUCTION_STAGE.WORLD);
|
||||
await DividendModel.updateDividendsStatus(begin, DIVIDEND_STATUS.END);
|
||||
@@ -263,7 +282,7 @@ export async function startWorldAuction() {
|
||||
export async function stopAuction() {
|
||||
try {
|
||||
console.log('schedule stopAuction called:', new Date());
|
||||
const begin = todayGuildBegin();
|
||||
const begin = await todayGuildBegin();
|
||||
await LotModel.setLotSoldByBegin(begin);
|
||||
await LotModel.updateLotsStageByBegin(begin, AUCTION_STAGE.END);
|
||||
|
||||
@@ -280,28 +299,28 @@ export async function stopAuction() {
|
||||
}
|
||||
|
||||
async function debugDividends() {
|
||||
const begin = yestodayGuildBegin();
|
||||
const begin = await yestodayGuildBegin();
|
||||
const dividends = await DividendModel.findDividendsByBegin(begin);
|
||||
const todayBegin = todayGuildBegin();
|
||||
const todayBegin = await todayGuildBegin();
|
||||
const todayDividends = await DividendModel.findDividendsByBegin(todayBegin);
|
||||
return [...dividends, ...todayDividends];
|
||||
}
|
||||
|
||||
async function officialDividends() {
|
||||
const begin = yestodayGuildBegin();
|
||||
const begin = await yestodayGuildBegin();
|
||||
const dividends = await DividendModel.findDividendsByBegin(begin);
|
||||
return dividends;
|
||||
}
|
||||
|
||||
async function updateDebugDividendsStatus(status: number) {
|
||||
const begin = yestodayGuildBegin();
|
||||
const begin = await yestodayGuildBegin();
|
||||
await DividendModel.updateDividendsStatus(begin, status);
|
||||
const todayBegin = todayGuildBegin();
|
||||
const todayBegin = await todayGuildBegin();
|
||||
await DividendModel.updateDividendsStatus(todayBegin,status);
|
||||
}
|
||||
|
||||
async function updateOfficialDividendsStatus(status: number) {
|
||||
const begin = yestodayGuildBegin();
|
||||
const begin = await yestodayGuildBegin();
|
||||
await DividendModel.updateDividendsStatus(begin, status);
|
||||
}
|
||||
|
||||
@@ -361,7 +380,7 @@ export async function sendUngotDividend(debug = false) {
|
||||
* @param magicWord
|
||||
*/
|
||||
export async function getAuction(guildCode: string, session: FrontendOrBackendSession, magicWord?: string) {
|
||||
const begin = todayGuildBegin();
|
||||
const begin = await todayGuildBegin();
|
||||
let lots = magicWord === DEBUG_MAGIC_WORD ? await debugAuctionLots(session, begin) : await officialAuctionLots(session, begin);
|
||||
|
||||
let dividends: DividendType[] = [];
|
||||
|
||||
Reference in New Issue
Block a user