fix bug in enhance chest

This commit is contained in:
CounterFire2023 2024-03-27 13:55:37 +08:00
parent b44faefbbb
commit 563e12ef0a

View File

@ -7,6 +7,7 @@ import { ScoreRecord } from 'models/ScoreRecord'
import { ChestRecord } from 'models/chain/ChestRecord' import { ChestRecord } from 'models/chain/ChestRecord'
import { generateNewChest } from 'services/game.svr' import { generateNewChest } from 'services/game.svr'
import { SCORE_OPEN_CHEST } from 'common/Constants' import { SCORE_OPEN_CHEST } from 'common/Constants'
import { formatAddress } from 'zutils/utils/chain.util'
/** /**
* *
@ -61,16 +62,13 @@ class BoxController extends BaseController {
const users = await ActivityUser.find({ _id: { $in: chest.bonusUsers } }) const users = await ActivityUser.find({ _id: { $in: chest.bonusUsers } })
const userMap = new Map() const userMap = new Map()
const totalKey = rankKey(user.activity) const totalKey = rankKey(user.activity)
for (let user of users) { users.forEach(u => userMap.set(u.id, u))
// get score from redis
userMap.set(user.id, user)
}
for (let i = 0; i < chest.bonusUsers.length; i++) { for (let i = 0; i < chest.bonusUsers.length; i++) {
const user = userMap.get(chest.bonusUsers[i]) const u = userMap.get(chest.bonusUsers[i])
const totalScore = await new ZRedisClient().zscore(totalKey, user.id) const totalScore = await new ZRedisClient().zscore(totalKey, u.id)
const score = totalScore ? parseInt(totalScore + '') : 0 const score = totalScore ? parseInt(totalScore + '') : 0
result.push({ result.push({
nickname: user.twitterName || user.discordName, nickname: u?.twitterName || u?.discordName || u?.address ? formatAddress(u.address) : 'unknown',
level: rankLevel(score), level: rankLevel(score),
score: score, score: score,
}) })
@ -85,7 +83,7 @@ class BoxController extends BaseController {
new SyncLocker().checkLock(req) new SyncLocker().checkLock(req)
const { code } = req.params const { code } = req.params
const user = req.user const user = req.user
const uid = user.uid const uid = user.id
// TODO:: 待规则确定后, 检查用户是否符合助力条件 // TODO:: 待规则确定后, 检查用户是否符合助力条件
const chest = await ActivityChest.findOne({ shareCode: code, activity: user.activity }) const chest = await ActivityChest.findOne({ shareCode: code, activity: user.activity })