1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- const {
- userCollection
- } = require('../../common/constants')
- const {
- coverMobile
- } = require('../../common/utils')
- /**
- * 获取受邀用户
- * @tutorial https://uniapp.dcloud.net.cn/uniCloud/uni-id-pages.html#get-invited-user
- * @param {Object} params
- * @param {Number} params.level 获取受邀用户的级数,1表示直接邀请的用户
- * @param {Number} params.limit 返回数据大小
- * @param {Number} params.offset 返回数据偏移
- * @param {Boolean} params.needTotal 是否需要返回总数
- * @returns
- */
- module.exports = async function (params = {}) {
- const schema = {
- level: 'number',
- limit: {
- required: false,
- type: 'number'
- },
- offset: {
- required: false,
- type: 'number'
- },
- needTotal: {
- required: false,
- type: 'boolean'
- }
- }
- this.middleware.validate(params, schema)
- const {
- level,
- limit = 20,
- offset = 0,
- needTotal = false
- } = params
- const uid = this.authInfo.uid
- const query = {
- [`inviter_uid.${level - 1}`]: uid
- }
- const getUserRes = await userCollection.where(query)
- .field({
- _id: true,
- avatar: true,
- avatar_file: true,
- username: true,
- nickname: true,
- mobile: true,
- invite_time: true
- })
- .orderBy('invite_time', 'desc')
- .skip(offset)
- .limit(limit)
- .get()
- const invitedUser = getUserRes.data.map(item => {
- return {
- uid: item._id,
- username: item.username,
- nickname: item.nickname,
- mobile: coverMobile(item.mobile),
- inviteTime: item.invite_time,
- avatar: item.avatar,
- avatarFile: item.avatar_file
- }
- })
- const result = {
- errCode: 0,
- invitedUser
- }
- if (needTotal) {
- const getTotalRes = await userCollection.where(query).count()
- result.total = getTotalRes.total
- }
- return result
- }
|