调整签到奖励

This commit is contained in:
CounterFire2023 2024-03-27 11:59:11 +08:00
parent 9f393f9c35
commit 97fc6fb7bf
4 changed files with 21 additions and 8 deletions

View File

@ -1,19 +1,19 @@
{
"total_sign": [
{
"days": 3,
"days": 2,
"reward": 1
},
{
"days": 4,
"days": 3,
"reward": 4
},
{
"days": 5,
"days": 4,
"reward": 5
},
{
"days": 6,
"days": 5,
"reward": 6
},
{
@ -22,6 +22,10 @@
}
],
"sequential_sign": [
{
"days": 2,
"reward": 1
},
{
"days": 3,
"reward": 1

View File

@ -37,11 +37,13 @@ export default class ActivityController extends BaseController {
if (user.inviteUser) {
throw new ZError(11, 'already set invite user')
}
if (!user.allTaskFinished()) {
throw new ZError(12, 'not all task finished')
}
let inviteUser = await ActivityUser.findByCode(code, user.activity)
if (!inviteUser) {
throw new ZError(12, 'invalid invite code')
}
// TODO:: 检查自己是否符合条件
const dateTag = formatDate(new Date())
// 更新邀请积分-邀请人
await updateRankScore({

View File

@ -5,7 +5,6 @@ import { queryCheckInList } from 'services/chain.svr'
import { checkInToday, seqSignCfg, seqSignScore, totalSignCfg, totalSignScore } from 'services/sign.svr'
import { ZError, SyncLocker, BaseController, router } from 'zutils'
import { formatDate } from 'zutils/utils/date.util'
import { mongoose } from '@typegoose/typegoose'
import { generateChestLevel, generateNewChest, generateStepReward } from 'services/game.svr'
import { ChestStatusEnum } from 'models/ActivityChest'
import { updateRankScore } from 'services/rank.svr'
@ -67,7 +66,6 @@ class GameController extends BaseController {
}
/**
*
* //TODO:: test
*/
@router('post /api/user/checkin/claim')
async claimCheckResult(req) {
@ -125,7 +123,10 @@ class GameController extends BaseController {
if (gameInfo.status === 1) {
throw new ZError(11, 'already opened')
}
// TODO:: check condition
// check if all task finished
if (!user.allTaskFinished()) {
throw new ZError(12, 'The opening conditions are not met')
}
gameInfo.status = 1
await gameInfo.save()
return {}

View File

@ -121,6 +121,12 @@ export class ActivityUserClass extends BaseModule {
) {
return this.findOne({ inviteCode, activity }).exec()
}
public allTaskFinished() {
return this.taskProgress.every((task: TaskStatus) => {
return task.status !== TaskStatusEnum.NOT_START && task.status !== TaskStatusEnum.RUNNING
})
}
}
export const ActivityUser = getModelForClass(ActivityUserClass, { existingConnection: ActivityUserClass.db })