箱子助力列表改为助力积分
This commit is contained in:
parent
3312b8c1ed
commit
4762663202
@ -721,8 +721,8 @@ body:
|
||||
|
||||
```js
|
||||
{
|
||||
"code": "1123", // 宝箱的分享code, code和id选择传一个, 如果两个都传, 优先使用id来查询箱子
|
||||
"id": "123123"
|
||||
"code": "1123", // 宝箱的分享code, code和chestId选择传一个, 如果两个都传, 优先使用chestId来查询箱子
|
||||
"chestId": "123123"
|
||||
}
|
||||
|
||||
```
|
||||
|
@ -71,18 +71,15 @@ class BoxController extends BaseController {
|
||||
if (chest.status === 0) {
|
||||
throw new ZError(13, 'chest is locked')
|
||||
}
|
||||
if (chest.status === 9) {
|
||||
throw new ZError(14, 'chest had been opened')
|
||||
}
|
||||
const result = []
|
||||
const users = await ActivityUser.find({ _id: { $in: chest.bonusUsers } })
|
||||
const records = await ChestEnhanceRecord.find({ chest: chest.id, activity: user.activity }).sort({ score: -1 })
|
||||
const uids = records.map(record => record.user)
|
||||
const users = await ActivityUser.find({ _id: { $in: uids } })
|
||||
const userMap = new Map()
|
||||
const totalKey = rankKey(user.activity)
|
||||
users.forEach(u => userMap.set(u.id, u))
|
||||
for (let i = 0; i < chest.bonusUsers.length; i++) {
|
||||
const u = userMap.get(chest.bonusUsers[i])
|
||||
const totalScore = await new ZRedisClient().zscore(totalKey, u.id)
|
||||
const score = totalScore ? parseInt(totalScore + '') : 0
|
||||
for (let i = 0; i < records.length; i++) {
|
||||
const u = userMap.get(records[i].user)
|
||||
const score = records[i].score
|
||||
result.push({
|
||||
nickname: u?.twitterName || u?.discordName || u?.address ? formatAddress(u.address) : 'unknown',
|
||||
level: rankLevel(score),
|
||||
@ -96,20 +93,20 @@ class BoxController extends BaseController {
|
||||
*/
|
||||
@router('post /api/chest/enhance/state')
|
||||
async enhanceState(req) {
|
||||
const { code, id } = req.params
|
||||
const { code, chestId } = req.params
|
||||
const user = req.user
|
||||
if (code && !isValidShareCode(code)) {
|
||||
throw new ZError(11, 'invalid share code')
|
||||
}
|
||||
if (id && !isObjectIdString(id)) {
|
||||
if (chestId && !isObjectIdString(chestId)) {
|
||||
throw new ZError(11, 'invalid chest id')
|
||||
}
|
||||
if (!code && !id) {
|
||||
if (!code && !chestId) {
|
||||
throw new ZError(11, 'must provide share code or chest id')
|
||||
}
|
||||
let chest: any
|
||||
if (id) {
|
||||
chest = await ActivityChest.findById(id)
|
||||
if (chestId) {
|
||||
chest = await ActivityChest.findById(chestId)
|
||||
} else {
|
||||
chest = await ActivityChest.findOne({ shareCode: code, activity: user.activity })
|
||||
}
|
||||
@ -189,7 +186,7 @@ class BoxController extends BaseController {
|
||||
{ _id: chest.id },
|
||||
{
|
||||
$inc: { scoreBonus: score },
|
||||
$push: { bonusUsers: uid, bonusScores: score },
|
||||
$push: { bonusUsers: uid },
|
||||
},
|
||||
)
|
||||
const enhanceRecord = new ChestEnhanceRecord({
|
||||
|
Loading…
x
Reference in New Issue
Block a user