feat: 修改job
This commit is contained in:
@@ -23,7 +23,24 @@ const { createAction } = require('../modules/action/action.handler');
|
||||
const { createNewFund } = require('../modules/fund/fund.handler');
|
||||
|
||||
const tokenReleaseRate = 0.2;
|
||||
|
||||
async function awardMine(user, fund, i) {
|
||||
const released = fund.releasedAmout || 0;
|
||||
if (released === fund.releasedAmout) {
|
||||
await Fund.findByIdAndUpdate(fund.id, {
|
||||
$set: {
|
||||
[`fundList.${i}.status`]: 2 //标记失效
|
||||
}
|
||||
});
|
||||
return 0;
|
||||
}
|
||||
const rewardMine = +fund.amount * tokenReleaseRate;
|
||||
return rewardMine;
|
||||
}
|
||||
function awardInvite(user, fund, allInviteReward) {
|
||||
const rewardInvite = allInviteReward - (fund.option.usedGroupReward || 0); // 求增量: 总额 - 已领取总额(fundSum)
|
||||
// 挖矿奖励 = 充值金额奖励 + 社区奖励
|
||||
return rewardInvite;
|
||||
}
|
||||
// fund.option.usedGroupReward : 已领取的社群奖励总额
|
||||
const doReward = async (user, fund) => {
|
||||
// 1.对于充值的fundList的每一项,按照2%进行发放,累加到asset.vic,添加action,类型为1
|
||||
@@ -32,19 +49,9 @@ const doReward = async (user, fund) => {
|
||||
const fundlist = fund.fundList;
|
||||
for (let i = 0, len = fundlist.length; i < len; ++i) {
|
||||
const fund = fundlist[i];
|
||||
const released = fund.releasedAmout || 0;
|
||||
if (released === fund.releasedAmout) {
|
||||
await Fund.findByIdAndUpdate(fund.id, {
|
||||
$set: {
|
||||
[`fundList.${i}.status`]: 2 //标记失效
|
||||
}
|
||||
});
|
||||
continue;
|
||||
}
|
||||
const allInviteReward = (+user.group.length || 0) * 10; // 计算出从开始到现在邀请奖励总额
|
||||
const rewardInvite = allInviteReward - (fund.option.usedGroupReward || 0); // 求增量: 总额 - 已领取总额(fundSum)
|
||||
// 挖矿奖励 = 充值金额奖励 + 社区奖励
|
||||
const rewardMine = +fund.amount * tokenReleaseRate;
|
||||
const allInviteReward = (+user.group.length || 0) * 10;
|
||||
const rewardMine = awardMine(user, fund, i);
|
||||
const rewardInvite = awardInvite(user, fund, allInviteReward);
|
||||
const reward = rewardMine + rewardInvite;
|
||||
await Fund.findByIdAndUpdate(fund.id, {
|
||||
$inc: {
|
||||
@@ -55,7 +62,7 @@ const doReward = async (user, fund) => {
|
||||
'asset.usdt': allInviteReward // 用来记录所有社群奖励总额
|
||||
}
|
||||
}).then(() => {
|
||||
createAction(1, {
|
||||
rewardMine > 0 && createAction(1, {
|
||||
userId: fund.userId,
|
||||
tokenType: 'vic',
|
||||
amount: rewardMine,
|
||||
@@ -83,7 +90,8 @@ const jobs = [
|
||||
if (typeof currentIndex !== 'number') {
|
||||
currentIndex = 0;
|
||||
await new system({
|
||||
key: currentIndex
|
||||
key: 'userIndex4job',
|
||||
value: currentIndex
|
||||
}).save();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user