计算得分时, 增加boost值的计算
This commit is contained in:
parent
b21a3d472c
commit
c8500e9654
@ -301,6 +301,7 @@ body:
|
|||||||
{
|
{
|
||||||
"address": "钱包地址",
|
"address": "钱包地址",
|
||||||
"boost": 1, // 正常值为1
|
"boost": 1, // 正常值为1
|
||||||
|
"boostExpire": 0, // 计算得分时, 如果boost过期, 即使boost大于1, 也不计算boost
|
||||||
"twitterId": "",
|
"twitterId": "",
|
||||||
"twitterName": "",
|
"twitterName": "",
|
||||||
"discordId": "",
|
"discordId": "",
|
||||||
|
@ -96,6 +96,7 @@ class SignController extends BaseController {
|
|||||||
let result = {
|
let result = {
|
||||||
address: user.address,
|
address: user.address,
|
||||||
boost: user.boost || 1,
|
boost: user.boost || 1,
|
||||||
|
boostExpire: user.boostExpire,
|
||||||
twitterId: user.twitterId,
|
twitterId: user.twitterId,
|
||||||
twitterName: user.twitterName,
|
twitterName: user.twitterName,
|
||||||
discordId: user.discordId,
|
discordId: user.discordId,
|
||||||
|
@ -90,6 +90,12 @@ class ActivityUserClass extends BaseModule {
|
|||||||
|
|
||||||
@prop({default: 1})
|
@prop({default: 1})
|
||||||
public boost: number
|
public boost: number
|
||||||
|
/**
|
||||||
|
* boost过期时间
|
||||||
|
* 计算得分时, 如果boost过期, 则不计算boost
|
||||||
|
*/
|
||||||
|
@prop()
|
||||||
|
public boostExpire?: Date
|
||||||
|
|
||||||
@prop()
|
@prop()
|
||||||
public lastLogin?: Date
|
public lastLogin?: Date
|
||||||
|
@ -39,6 +39,7 @@ export default class ShareCode extends ITask {
|
|||||||
// According to configuration, add score to user who invite current user
|
// According to configuration, add score to user who invite current user
|
||||||
if (cfg.autoclaim) {
|
if (cfg.autoclaim) {
|
||||||
try {
|
try {
|
||||||
|
await super.claimReward(task);
|
||||||
await updateInviteScore(this.params.user, scores, 0, task.task)
|
await updateInviteScore(this.params.user, scores, 0, task.task)
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
console.log(err)
|
console.log(err)
|
||||||
@ -48,6 +49,7 @@ export default class ShareCode extends ITask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public async claimReward(task: TaskStatus) {
|
public async claimReward(task: TaskStatus) {
|
||||||
|
await super.claimReward(task);
|
||||||
let cfg = this.params.activity.tasks.find((t: TaskCfg) => t.id === task.id)
|
let cfg = this.params.activity.tasks.find((t: TaskCfg) => t.id === task.id)
|
||||||
let scores = cfg.params.score;
|
let scores = cfg.params.score;
|
||||||
await updateInviteScore(this.params.user, scores, 0, task.task)
|
await updateInviteScore(this.params.user, scores, 0, task.task)
|
||||||
|
@ -21,9 +21,13 @@ export abstract class ITask {
|
|||||||
if (!cfg.score) {
|
if (!cfg.score) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
let score = cfg.score
|
||||||
|
if (user.boost > 1 && Date.now() < user.boostExpire) {
|
||||||
|
score = Math.floor(score * user.boost)
|
||||||
|
}
|
||||||
await updateRankScore({
|
await updateRankScore({
|
||||||
user: user.id,
|
user: user.id,
|
||||||
score: cfg.score,
|
score: score,
|
||||||
activity: user.activity,
|
activity: user.activity,
|
||||||
scoreType: cfg.task,
|
scoreType: cfg.task,
|
||||||
scoreParams: {
|
scoreParams: {
|
||||||
|
@ -7,8 +7,14 @@ export const formatDate = (date: Date): string => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// get formated datestring of yesterday
|
// get formated datestring of yesterday
|
||||||
export const yesterday = () => {
|
export const yesterday = (date?: Date) => {
|
||||||
const date = new Date();
|
date = date || new Date();
|
||||||
date.setDate(date.getDate() - 1);
|
date.setDate(date.getDate() - 1);
|
||||||
return date;
|
return date;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const nextday = (date?: Date) => {
|
||||||
|
date = date || new Date();
|
||||||
|
date.setDate(date.getDate() + 1);
|
||||||
|
return date;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user