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 }