调整签到奖励

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": [ "total_sign": [
{ {
"days": 3, "days": 2,
"reward": 1 "reward": 1
}, },
{ {
"days": 4, "days": 3,
"reward": 4 "reward": 4
}, },
{ {
"days": 5, "days": 4,
"reward": 5 "reward": 5
}, },
{ {
"days": 6, "days": 5,
"reward": 6 "reward": 6
}, },
{ {
@ -22,6 +22,10 @@
} }
], ],
"sequential_sign": [ "sequential_sign": [
{
"days": 2,
"reward": 1
},
{ {
"days": 3, "days": 3,
"reward": 1 "reward": 1

View File

@ -37,11 +37,13 @@ export default class ActivityController extends BaseController {
if (user.inviteUser) { if (user.inviteUser) {
throw new ZError(11, 'already set invite user') 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) let inviteUser = await ActivityUser.findByCode(code, user.activity)
if (!inviteUser) { if (!inviteUser) {
throw new ZError(12, 'invalid invite code') throw new ZError(12, 'invalid invite code')
} }
// TODO:: 检查自己是否符合条件
const dateTag = formatDate(new Date()) const dateTag = formatDate(new Date())
// 更新邀请积分-邀请人 // 更新邀请积分-邀请人
await updateRankScore({ 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 { checkInToday, seqSignCfg, seqSignScore, totalSignCfg, totalSignScore } from 'services/sign.svr'
import { ZError, SyncLocker, BaseController, router } from 'zutils' import { ZError, SyncLocker, BaseController, router } from 'zutils'
import { formatDate } from 'zutils/utils/date.util' import { formatDate } from 'zutils/utils/date.util'
import { mongoose } from '@typegoose/typegoose'
import { generateChestLevel, generateNewChest, generateStepReward } from 'services/game.svr' import { generateChestLevel, generateNewChest, generateStepReward } from 'services/game.svr'
import { ChestStatusEnum } from 'models/ActivityChest' import { ChestStatusEnum } from 'models/ActivityChest'
import { updateRankScore } from 'services/rank.svr' import { updateRankScore } from 'services/rank.svr'
@ -67,7 +66,6 @@ class GameController extends BaseController {
} }
/** /**
* *
* //TODO:: test
*/ */
@router('post /api/user/checkin/claim') @router('post /api/user/checkin/claim')
async claimCheckResult(req) { async claimCheckResult(req) {
@ -125,7 +123,10 @@ class GameController extends BaseController {
if (gameInfo.status === 1) { if (gameInfo.status === 1) {
throw new ZError(11, 'already opened') 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 gameInfo.status = 1
await gameInfo.save() await gameInfo.save()
return {} return {}

View File

@ -121,6 +121,12 @@ export class ActivityUserClass extends BaseModule {
) { ) {
return this.findOne({ inviteCode, activity }).exec() 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 }) export const ActivityUser = getModelForClass(ActivityUserClass, { existingConnection: ActivityUserClass.db })