初始提交
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
/**
|
||||
* @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
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user