计算得分时, 增加boost值的计算

This commit is contained in:
CounterFire2023 2024-01-08 16:03:05 +08:00
parent b21a3d472c
commit c8500e9654
6 changed files with 24 additions and 4 deletions

View File

@ -301,6 +301,7 @@ body:
{
"address": "钱包地址",
"boost": 1, // 正常值为1
"boostExpire": 0, // 计算得分时, 如果boost过期, 即使boost大于1, 也不计算boost
"twitterId": "",
"twitterName": "",
"discordId": "",

View File

@ -96,6 +96,7 @@ class SignController extends BaseController {
let result = {
address: user.address,
boost: user.boost || 1,
boostExpire: user.boostExpire,
twitterId: user.twitterId,
twitterName: user.twitterName,
discordId: user.discordId,

View File

@ -90,6 +90,12 @@ class ActivityUserClass extends BaseModule {
@prop({default: 1})
public boost: number
/**
* boost过期时间
* , boost过期, boost
*/
@prop()
public boostExpire?: Date
@prop()
public lastLogin?: Date

View File

@ -39,6 +39,7 @@ export default class ShareCode extends ITask {
// According to configuration, add score to user who invite current user
if (cfg.autoclaim) {
try {
await super.claimReward(task);
await updateInviteScore(this.params.user, scores, 0, task.task)
} catch(err) {
console.log(err)
@ -48,6 +49,7 @@ export default class ShareCode extends ITask {
}
public async claimReward(task: TaskStatus) {
await super.claimReward(task);
let cfg = this.params.activity.tasks.find((t: TaskCfg) => t.id === task.id)
let scores = cfg.params.score;
await updateInviteScore(this.params.user, scores, 0, task.task)

View File

@ -21,9 +21,13 @@ export abstract class ITask {
if (!cfg.score) {
return;
}
let score = cfg.score
if (user.boost > 1 && Date.now() < user.boostExpire) {
score = Math.floor(score * user.boost)
}
await updateRankScore({
user: user.id,
score: cfg.score,
score: score,
activity: user.activity,
scoreType: cfg.task,
scoreParams: {

View File

@ -7,8 +7,14 @@ export const formatDate = (date: Date): string => {
};
// get formated datestring of yesterday
export const yesterday = () => {
const date = new Date();
export const yesterday = (date?: Date) => {
date = date || new Date();
date.setDate(date.getDate() - 1);
return date;
};
};
export const nextday = (date?: Date) => {
date = date || new Date();
date.setDate(date.getDate() + 1);
return date;
}