12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- /**
- * @class UniIDUsers uni-id 用户模型
- */
- const BaseMod = require('./base')
- module.exports = class UniIDUsers extends BaseMod {
- constructor() {
- super()
- this.tableName = 'uni-id-users'
- this.tablePrefix = false
- }
- /**
- * 获取用户数
- * @param {String} appid DCloud-appid
- * @param {String} platform 平台
- * @param {String} channel 渠道
- * @param {String} version 版本
- * @param {Object} registerTime 注册时间范围 例:{$gte:开始日期时间戳, $lte:结束日期时间戳}
- * @return {Number}
- */
- async getUserCount(appid, platform, channel, version, registerTime) {
- if(!appid || !platform) {
- return false
- }
- const condition = this.getCondition(appid, platform, channel, version, registerTime)
- let userCount = 0
- const userCountRes = await this.getCollection(this.tableName).where(condition).count()
- if(userCountRes && userCountRes.total > 0) {
- userCount = userCountRes.total
- }
- return userCount
- }
- /**
- * 获取用户编号列表
- * @param {String} appid DCloud-appid
- * @param {String} platform 平台
- * @param {String} channel 渠道
- * @param {String} version 版本
- * @param {Object} registerTime 注册时间范围 例:{$gte:开始日期时间戳, $lte:结束日期时间戳}
- * @return {Array}
- */
- async getUserIds(appid, platform, channel, version, registerTime) {
- if(!appid || !platform) {
- return false
- }
- const condition = this.getCondition(appid, platform, channel, version, registerTime)
- let uids = []
- const uidsRes = await this.selectAll(this.tableName, condition, {
- _id: 1
- })
- for (const u in uidsRes.data) {
- uids.push(uidsRes.data[u]._id)
- }
- return uids
- }
- /**
- * 获取查询条件
- * @param {String} appid DCloud-appid
- * @param {String} platform 平台
- * @param {String} channel 渠道
- * @param {String} version 版本
- * @param {Object} registerTime 注册时间范围 例:{$gte:开始日期时间戳, $lte:结束日期时间戳}
- */
- getCondition(appid, platform, channel, version, registerTime) {
- let condition = {
- 'register_env.appid': appid,//DCloud appid
- 'register_env.uni_platform': platform,//平台
- 'register_env.channel': channel ? channel : '1001', //渠道或场景值
- 'register_env.app_version' : version //应用版本区分
- }
- //原生应用平台
- if(['android', 'ios'].includes(platform)) {
- condition['register_env.uni_platform'] = 'app'//systemInfo中uniPlatform字段android和ios都用app表示,所以此处查询需要用osName区分一下
- condition['register_env.os_name'] = platform //系统
- }
- //兼容vue2
- if(channel === '1001') {
- condition['register_env.channel'] = {$in:['', '1001']}
- }
- //注册时间
- if(registerTime) {
- condition.register_date = registerTime
- }
- return condition
- }
- }
|