拍卖行:分红结算接口增加针对测试的处理

This commit is contained in:
liangtongchuan
2021-03-23 17:08:04 +08:00
parent 470be1a72f
commit 95f2e2495f
3 changed files with 42 additions and 8 deletions

View File

@@ -270,7 +270,7 @@ export class AuctionHandler {
if (magicWord !== DEBUG_MAGIC_WORD) {
return resResult(STATUS.TOKEN_ERR);
}
const result = await sendUngotDividend();
const result = await sendUngotDividend(true);
if (result === true) {
return resResult(STATUS.SUCCESS);
}

View File

@@ -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 {
console.log('schedule sendUngotDividend called:', new Date());
const begin = yestodayGuildBegin();
const dividends = await DividendModel.findDividendsByBegin(begin);
const dividends = debug === true ? await debugDividends() : await officialDividends();
const rewards = new Map<string, number>();
for (let dividend of dividends) {
if (!dividend.dividends) continue;
if (!dividend.dividends || dividend.status === DIVIDEND_STATUS.SENT) continue;
for (let dividendRec of dividend.dividends) {
if (dividendRec.status === ROLE_RECEIVE_STATUS.YES) continue;
const sum = rewards.get(dividendRec.roleId) || 0;
@@ -227,7 +261,7 @@ export async function sendUngotDividend() {
pushMessage.forEach(({route, 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;
} catch (e) {
console.error('sendUngotDividend err: ', e);

View File

@@ -21,7 +21,7 @@ import { getMailContent, sendMail } from './mailService';
import { reportOnline } from '../pubUtils/httpUtil';
import User, { UserModel } from '../db/User';
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';
const PER_SECOND = 1 * 1000;
const PER_DAY = 24 * 60 * 60;
@@ -410,5 +410,5 @@ function auctionSchedule() {
scheduleJob('startGuildAuction', '0 0 20 20 * ?', startGuildAuction);
scheduleJob('startWorldAuction', '0 0 20 30 * ?', startWorldAuction);
scheduleJob('stopAuction', '0 0 22 00 * ?', stopAuction);
scheduleJob('sendUngotDividend', '0 0 5 00 * ?', sendUngotDividend);
scheduleJob('sendUngotDividendJob', '0 0 5 00 * ?', sendUngotDividendJob);
}