appOnlineUserModel.js 2.0 KB

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