diff --git a/src/common/Constants.ts b/src/common/Constants.ts index 1dea96f..67f4af7 100644 --- a/src/common/Constants.ts +++ b/src/common/Constants.ts @@ -32,6 +32,8 @@ export const MAX_ENHANCE_COUNT_BASE = 1 export const MAX_ENHANCE_COUNT_ADV = 10 // 宝箱助力增加的分数 export const ENHANCE_CHEST_GIFT = 10 +// 完成所有基础任务额外奖励的ticket +export const BASE_TASK_TICKET = 3 // 低保步数 export const RESET_STEP = 2 diff --git a/src/controllers/tasks.controller.ts b/src/controllers/tasks.controller.ts index ee15d7b..24b00b9 100644 --- a/src/controllers/tasks.controller.ts +++ b/src/controllers/tasks.controller.ts @@ -4,6 +4,7 @@ import { TaskStatus, TaskStatusEnum } from 'models/ActivityUser' import { join } from 'path' import { formatDate } from 'utils/utcdate.util' import { GeneralScription } from 'models/chain/GeneralScription' +import { BASE_TASK_TICKET } from 'common/Constants' const fs = require('fs') const prod = process.env.NODE_ENV === 'production' @@ -206,6 +207,18 @@ export default class TasksController extends BaseController { const Task = require('../tasks/' + currentTask.task) const taskInstance = new Task.default({ user, activity }) const { score } = await taskInstance.claimReward(currentTask) - return { status: currentTask.status, score, ticket: 0 } + const baseTaskSet = new Set(activity.baseTasks) + let count = 0 + for (let task of user.taskProgress) { + if (baseTaskSet.has(task.id) && task.status === TaskStatusEnum.CLAIMED) { + count++ + } + } + let ticket = 0 + if (count === baseTaskSet.size) { + // all base task finished, give ticket + ticket = BASE_TASK_TICKET + } + return { status: currentTask.status, score, ticket } } }