拍卖行:分红结算接口增加针对测试的处理
This commit is contained in:
@@ -270,7 +270,7 @@ export class AuctionHandler {
|
|||||||
if (magicWord !== DEBUG_MAGIC_WORD) {
|
if (magicWord !== DEBUG_MAGIC_WORD) {
|
||||||
return resResult(STATUS.TOKEN_ERR);
|
return resResult(STATUS.TOKEN_ERR);
|
||||||
}
|
}
|
||||||
const result = await sendUngotDividend();
|
const result = await sendUngotDividend(true);
|
||||||
if (result === true) {
|
if (result === true) {
|
||||||
return resResult(STATUS.SUCCESS);
|
return resResult(STATUS.SUCCESS);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -202,14 +202,48 @@ export async function stopAuction() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function sendUngotDividend() {
|
async function debugDividends() {
|
||||||
|
const begin = yestodayGuildBegin();
|
||||||
|
const dividends = await DividendModel.findDividendsByBegin(begin);
|
||||||
|
const todayBegin = todayGuildBegin();
|
||||||
|
const todayDividends = await DividendModel.findDividendsByBegin(todayBegin);
|
||||||
|
return [...dividends, ...todayDividends];
|
||||||
|
}
|
||||||
|
|
||||||
|
async function officialDividends() {
|
||||||
|
const begin = yestodayGuildBegin();
|
||||||
|
const dividends = await DividendModel.findDividendsByBegin(begin);
|
||||||
|
return dividends;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function updateDebugDividendsStatus(status: number) {
|
||||||
|
const begin = yestodayGuildBegin();
|
||||||
|
await DividendModel.updateDividendsStatus(begin, status);
|
||||||
|
const todayBegin = todayGuildBegin();
|
||||||
|
await DividendModel.updateDividendsStatus(todayBegin,status);
|
||||||
|
}
|
||||||
|
|
||||||
|
async function updateOfficialDividendsStatus(status: number) {
|
||||||
|
const begin = yestodayGuildBegin();
|
||||||
|
await DividendModel.updateDividendsStatus(begin, status);
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function sendUngotDividendJob() {
|
||||||
|
try {
|
||||||
|
return await sendUngotDividend();
|
||||||
|
} catch (e) {
|
||||||
|
console.error('sendUngotDividend err: ', e);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function sendUngotDividend(debug = false) {
|
||||||
try {
|
try {
|
||||||
console.log('schedule sendUngotDividend called:', new Date());
|
console.log('schedule sendUngotDividend called:', new Date());
|
||||||
const begin = yestodayGuildBegin();
|
const dividends = debug === true ? await debugDividends() : await officialDividends();
|
||||||
const dividends = await DividendModel.findDividendsByBegin(begin);
|
|
||||||
const rewards = new Map<string, number>();
|
const rewards = new Map<string, number>();
|
||||||
for (let dividend of dividends) {
|
for (let dividend of dividends) {
|
||||||
if (!dividend.dividends) continue;
|
if (!dividend.dividends || dividend.status === DIVIDEND_STATUS.SENT) continue;
|
||||||
for (let dividendRec of dividend.dividends) {
|
for (let dividendRec of dividend.dividends) {
|
||||||
if (dividendRec.status === ROLE_RECEIVE_STATUS.YES) continue;
|
if (dividendRec.status === ROLE_RECEIVE_STATUS.YES) continue;
|
||||||
const sum = rewards.get(dividendRec.roleId) || 0;
|
const sum = rewards.get(dividendRec.roleId) || 0;
|
||||||
@@ -227,7 +261,7 @@ export async function sendUngotDividend() {
|
|||||||
pushMessage.forEach(({route, data, uids })=>{
|
pushMessage.forEach(({route, data, uids })=>{
|
||||||
pinus.app.channelService.pushMessageByUids(route, resResult(STATUS.SUCCESS, { mails: data }), uids);
|
pinus.app.channelService.pushMessageByUids(route, resResult(STATUS.SUCCESS, { mails: data }), uids);
|
||||||
});
|
});
|
||||||
await DividendModel.updateDividendsStatus(begin, DIVIDEND_STATUS.SENT);
|
debug === true ? await updateDebugDividendsStatus(DIVIDEND_STATUS.SENT) : await updateOfficialDividendsStatus(DIVIDEND_STATUS.SENT);
|
||||||
return true;
|
return true;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('sendUngotDividend err: ', e);
|
console.error('sendUngotDividend err: ', e);
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import { getMailContent, sendMail } from './mailService';
|
|||||||
import { reportOnline } from '../pubUtils/httpUtil';
|
import { reportOnline } from '../pubUtils/httpUtil';
|
||||||
import User, { UserModel } from '../db/User';
|
import User, { UserModel } from '../db/User';
|
||||||
import { getGuildActivityByDic, setMedianCe } from './guildActivityService';
|
import { getGuildActivityByDic, setMedianCe } from './guildActivityService';
|
||||||
import { sendUngotDividend, startGuildAuction, startWorldAuction, stopAuction } from './auctionService';
|
import { sendUngotDividendJob, startGuildAuction, startWorldAuction, stopAuction } from './auctionService';
|
||||||
import { DicGuildActivity } from '../pubUtils/dictionary/DicGuildActivity';
|
import { DicGuildActivity } from '../pubUtils/dictionary/DicGuildActivity';
|
||||||
const PER_SECOND = 1 * 1000;
|
const PER_SECOND = 1 * 1000;
|
||||||
const PER_DAY = 24 * 60 * 60;
|
const PER_DAY = 24 * 60 * 60;
|
||||||
@@ -410,5 +410,5 @@ function auctionSchedule() {
|
|||||||
scheduleJob('startGuildAuction', '0 0 20 20 * ?', startGuildAuction);
|
scheduleJob('startGuildAuction', '0 0 20 20 * ?', startGuildAuction);
|
||||||
scheduleJob('startWorldAuction', '0 0 20 30 * ?', startWorldAuction);
|
scheduleJob('startWorldAuction', '0 0 20 30 * ?', startWorldAuction);
|
||||||
scheduleJob('stopAuction', '0 0 22 00 * ?', stopAuction);
|
scheduleJob('stopAuction', '0 0 22 00 * ?', stopAuction);
|
||||||
scheduleJob('sendUngotDividend', '0 0 5 00 * ?', sendUngotDividend);
|
scheduleJob('sendUngotDividendJob', '0 0 5 00 * ?', sendUngotDividendJob);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user