'use strict'; module.exports = app => { const mongoose = app.mongoose; const Schema = mongoose.Schema; const conn = app.mongooseDB.get('etlDB'); // APP在线数据结构 const AppOnlineUserSchema = new Schema({ _id: { type: String }, // 主键,用户ID+年月日拼接+序号 user_Id: { type: String }, // 用户ID user_name: { type: String }, // 登录账号 user_mobileno: { type: String }, // 用户手机号 role_id: { type: String }, // CAR_OWNER 是车主,user是使用人,POTENTIAL是潜客(粉丝) role_id:3 其他 login_time: { type: Number }, // 登录时间戳 longitude: { type: Number }, // 登录位置-经度 latitude: { type: Number }, // 登录位置-纬度 // area_code: { type: String }, // 登录位置-地区编码- 实际数据无 // area_name: { type: String }, // 登录位置-地区名称- 实际数据无 provice_code: { type: String }, // 登录位置-省份编码 无用了 provice_name: { type: String }, // 登录位置-省份名称 city_code: { type: String }, // 登录位置-城市编码 无用了 city_name: { type: String }, // 登录位置-城市名称 county_code: { type: String }, // 登录位置-行政区编码 无用了 county_name: { type: String }, // 登录位置-行政区名称 login_mode: { type: String }, // 登录方式 // (1:人脸、2:声纹、3:密码、4:验证码、5:二维码) // FACE/SOUND/PASSWORD/VERIFICATION_CODE/QR login_state: { type: Number }, // 登录状态 (1:成功、2:失败) }); AppOnlineUserSchema.index({ login_time: -1 }); AppOnlineUserSchema.index({ login_time: -1, login_state: -1 }); AppOnlineUserSchema.index({ login_time: -1, login_state: -1, user_Id: -1 }); AppOnlineUserSchema.index({ login_time: -1, login_state: -1, user_Id: -1, provice_name: -1, city_name: -1 }); AppOnlineUserSchema.index({ login_time: -1, login_mode: -1 }); AppOnlineUserSchema.index({ login_time: -1, role_id: -1 }); return conn.model('AppOnlineUser', AppOnlineUserSchema, 'app_online_user'); };