diff --git a/docs/uaw.md b/docs/uaw.md index c3f819f..0ac4f82 100644 --- a/docs/uaw.md +++ b/docs/uaw.md @@ -29,6 +29,11 @@ 1. 用户状态接口(10)增加返回当日可助力次数 1. 开启宝箱(19), 宝箱开启记录(20)增加返回额外的物品 +#### 20240409 + +1. 增加接口:我的助力记录(27) +2. 所有带用户信息的接口增加返回avatar(头像)字段 + ### 1. 钱包预登录 #### Request @@ -529,9 +534,10 @@ body: ```js [{ - level: 1, // 段位 nickname: '用户昵称', + avatar: '头像', score: 100, // 获得的积分 + time: 123123123, }] ``` @@ -758,3 +764,28 @@ body: enhanced: 0, // 用户是否已经为当前宝箱助力 } ``` + + + +### 27.\* 我的助力记录 + +#### Request + +- URL:`/api/user/enhance/list` +- 方法:GET` +- 头部: + - Authorization: Bearer JWT_token + + +#### Response + +```js +[{ + nickname: '用户昵称', + avatar: '头像', + time: 123123123123, + score: 100, // 我获得的积分 +}] +``` + +### diff --git a/src/controllers/activity.controller.ts b/src/controllers/activity.controller.ts index 76931d3..6f5a932 100644 --- a/src/controllers/activity.controller.ts +++ b/src/controllers/activity.controller.ts @@ -96,6 +96,7 @@ export default class ActivityController extends BaseController { // user: u.id, level: rankLevel(score), nickname: u.twitterName || u.discordName || formatAddress(u.address), + avatar: u.twitterAvatar || '', score, }) } @@ -147,6 +148,7 @@ export default class ActivityController extends BaseController { rank: start + i / 2 + 1, level: rankLevel(score), nickname: user?.twitterName || user?.discordName || user?.address ? formatAddress(user.address) : 'unknown', + avatar: user?.twitterAvatar || '', score, // yesterday: yesterdayScore ? parseInt(yesterdayScore + '') : 0, }) diff --git a/src/controllers/chest.controller.ts b/src/controllers/chest.controller.ts index 6c3a4cc..1ed9099 100644 --- a/src/controllers/chest.controller.ts +++ b/src/controllers/chest.controller.ts @@ -88,8 +88,35 @@ class BoxController extends BaseController { const score = records[i].score result.push({ nickname: u?.twitterName || u?.discordName || u?.address ? formatAddress(u.address) : 'unknown', - level: rankLevel(score), + avatar: u.twitterAvatar || '', score: score, + // @ts-ignore + time: records[i].createdAt.getTime(), + }) + } + return result + } + /** + * 我的助力列表 + */ + @router('post /api/user/enhance/list') + async myEnhanceList(req) { + const user = req.user + const result = [] + const records = await ChestEnhanceRecord.find({ user: user.id, activity: user.activity }).sort({ _id: -1 }) + const uids = records.map(record => record.chestOwner) + const users = await ActivityUser.find({ _id: { $in: uids } }) + const userMap = new Map() + users.forEach(u => userMap.set(u.id, u)) + for (let i = 0; i < records.length; i++) { + const u = userMap.get(records[i].user) + const score = records[i].myScore || 0 + result.push({ + nickname: u?.twitterName || u?.discordName || u?.address ? formatAddress(u.address) : 'unknown', + avatar: u.twitterAvatar || '', + score: score, + // @ts-ignore + time: records[i].createdAt.getTime(), }) } return result @@ -200,6 +227,8 @@ class BoxController extends BaseController { dateTag, chest: chest.id, score, + chestOwner: chest.user, + myScore: ENHANCE_CHEST_GIFT, }) await enhanceRecord.save() await updateRankScore({ diff --git a/src/models/ChestEnhanceRecord.ts b/src/models/ChestEnhanceRecord.ts index a5812cd..6ade178 100644 --- a/src/models/ChestEnhanceRecord.ts +++ b/src/models/ChestEnhanceRecord.ts @@ -19,12 +19,18 @@ class ChestEnhanceRecordClass extends BaseModule { @prop() public chest: string + @prop() + public chestOwner: string + @prop() public dateTag: string @prop() public score: number + @prop() + public myScore: number + public toJson() { return { user: this.user,