宝箱助力状态查询增加宝箱所有者信息

This commit is contained in:
CounterFire2023 2024-04-11 20:23:29 +08:00
parent 69529d610c
commit f1501a25c3
4 changed files with 63 additions and 16 deletions

View File

@ -34,6 +34,13 @@
1. 增加接口:我的助力记录(27)
2. 所有带用户信息的接口增加返回avatar(头像)字段
#### 20240411
1. 宝箱助力状态查询(26) 增加返回宝箱所有者信息
2.
### 1. 钱包预登录
#### Request
@ -734,7 +741,7 @@ body:
```
### 26.\* 宝箱助力状态查询
### 26.\ 宝箱助力状态查询
#### Request
@ -757,11 +764,13 @@ body:
```js
{
userCurrent: 1, // 用户当日已助力次数
userMax: 10, // 用户当日最大可助力次数
userCurrent: 1, // 用户当日已助力次数, 未登录用户可能为空
userMax: 10, // 用户当日最大可助力次数, 未登录用户可能为空
enhanced: 0, // 用户是否已经为当前宝箱助力, 未登录用户可能为空
chestCurrent: 1, // 宝箱当前助力次数
chestMax: 10, // 宝箱最大可助力次数
enhanced: 0, // 用户是否已经为当前宝箱助力
nickname: '11', // 宝箱所有者昵称
avatar: '', // 宝箱所有者头像, 可能为空
}
```

View File

@ -17,6 +17,7 @@
"start": "2024-01-01 00:00",
"end": "2025-01-01 00:00",
"checkChain": true,
"base": true,
"params": {}
}, {
"id": "e2fclylj30vwcpe0szl",
@ -32,6 +33,23 @@
"start": "2024-01-01 00:00",
"end": "2025-01-01 00:00",
"checkChain": true,
"base": true,
"params": {"time": 6, "failRate": 0}
},{
"id": "e2far3lj30vwcpe0mf8",
"task": "DiscordJoin",
"title": "Join Discord",
"type": 1,
"desc": "Join Counter Fires official Discord server",
"category": "Social Tasks",
"score": 100,
"autoclaim": false,
"pretasks": [],
"cfg": {"icon": "discord"},
"start": "2024-01-01 00:00",
"end": "2025-01-01 00:00",
"checkChain": true,
"base": true,
"params": {"time": 6, "failRate": 0}
}, {
"id": "e2feyflj30vwcpe0sjy",

View File

@ -124,6 +124,7 @@ class BoxController extends BaseController {
/**
*
*/
@role(ROLE_ANON)
@router('post /api/chest/enhance/state')
async enhanceState(req) {
const { code, chestId } = req.params
@ -141,7 +142,7 @@ class BoxController extends BaseController {
if (chestId) {
chest = await ActivityChest.findById(chestId)
} else {
chest = await ActivityChest.findOne({ shareCode: code, activity: user.activity })
chest = await ActivityChest.findOne({ shareCode: code })
}
if (!chest) {
throw new ZError(12, 'chest not found')
@ -152,17 +153,36 @@ class BoxController extends BaseController {
if (chest.status === ChestStatusEnum.LOCKED) {
throw new ZError(15, 'chest is locked')
}
const enhanced = chest.bonusUsers.includes(user.id) ? 1 : 0
const userMax = user.twitterId && user.discordId ? MAX_ENHANCE_COUNT_ADV : MAX_ENHANCE_COUNT_BASE
const dateTag = formatDate(new Date())
const userCurrent = await ChestEnhanceRecord.countDocuments({ user: user.id, activity: user.activity, dateTag })
const chestOwner = await ActivityUser.findById(chest.user)
return {
userCurrent,
userMax,
enhanced,
chestCurrent: chest.bonusUsers.length,
chestMax: chest.maxBounsCount,
if (user) {
const enhanced = chest.bonusUsers.includes(user.id) ? 1 : 0
const userMax = user.twitterId && user.discordId ? MAX_ENHANCE_COUNT_ADV : MAX_ENHANCE_COUNT_BASE
const dateTag = formatDate(new Date())
const userCurrent = await ChestEnhanceRecord.countDocuments({ user: user.id, activity: user.activity, dateTag })
return {
userCurrent,
userMax,
enhanced,
nickname:
chestOwner?.twitterName || chestOwner?.discordName || chestOwner?.address
? formatAddress(chestOwner.address)
: 'unknown',
avatar: chestOwner?.twitterAvatar || '',
chestCurrent: chest.bonusUsers.length,
chestMax: chest.maxBounsCount,
}
} else {
return {
chestCurrent: chest.bonusUsers.length,
chestMax: chest.maxBounsCount,
nickname:
chestOwner?.twitterName || chestOwner?.discordName || chestOwner?.address
? formatAddress(chestOwner.address)
: 'unknown',
avatar: chestOwner?.twitterAvatar || '',
}
}
}
/**

View File

@ -29,7 +29,7 @@ const apiAuthPlugin: FastifyPluginAsync<ApiAuthOptions> = async function (fastif
})
// 只有路由配置的role为anon才不需要过滤
fastify.decorate('apiAuth', async function (request: FastifyRequest, reply: FastifyReply) {
if (!request.roles || request.roles.indexOf(ROLE_ANON) == -1) {
if (!request.roles || request.roles.indexOf(ROLE_ANON) == -1 || request.token) {
try {
if (!request.token) {
return reply.send({ errcode: 11, errmsg: 'need login' })