player.js 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422
  1. 'use strict';
  2. module.exports = function (app) {
  3. var mdbgoose = app.memdb.goose;
  4. // 基础属性
  5. var PlayerSchema = new mdbgoose.Schema({
  6. _id: { type: String }, // 标识
  7. account: { type: String }, // 账号
  8. userId: { type: Number }, // 号码
  9. openId: { type: String, default: '' }, // openid
  10. mpId: { type: String, default: '' }, // 公众号ID
  11. name: { type: String, default: '' }, // 昵称
  12. sex: { type: String, default: '1' }, // 性别
  13. headurl: { type: String, default: '' }, // 头像
  14. myurl: { type: String, default: ''},
  15. grade: { type: Number, default: 1}, // 等级
  16. diamond: { type: Number, default: 5 }, // 钻石
  17. cost: { type: Number, default: 0 }, // 消费
  18. usdt: { type: Number, default: 0 }, // ustd
  19. address: { type: String, default: '' },
  20. score: { type: Number, default: 0 }, // 积分
  21. nnLuck: { type: Number, default: 0 }, // 运气(牛牛)
  22. tableId: { type: String, default: '' }, // 桌子
  23. rTableId: { type: Number, default: 0 }, // 重入的房间号
  24. gameId: { type: Number, default: 0 }, // 游戏
  25. gameServerId: { type: String, default: '' }, // 游戏点
  26. connectorId: { type: String, default: '' }, // 连接点
  27. totalMoney: { type: Number, default: 0 }, // 总充值
  28. payReward: { type: Number, default: 0 }, // 充值奖励
  29. registerIp: { type: String, default: '' }, // 注册IP
  30. registerTime: { type: Number, default: Date.now }, // 注册时间
  31. roleTime: { type: Number, default: 0 }, // 角色时间
  32. lastLoginIp: { type: String, default: '' }, // 登陆IP
  33. lastLoginTime: { type: Number, default: 0 }, // 最近登录
  34. offlineTime: { type: Number, default: 0 }, // 离线时间
  35. enable: { type: Number, default: 1 }, // (0表示该玩家不可用被冻结,1正常)
  36. regression: { type: Number, default: 0 }, // (0表示该玩家不是回归用户,1:是回归用户)
  37. getacttime: { type: Number, default: 0 }, // (毫秒级时间戳类型,用于记录该玩家上次领取回归奖励的时间,和regression 搭配起来使用)
  38. tel: { type: String, default: '' }, // 手机号码
  39. pwd: { type: String, default: '' }, // 密码
  40. _class: { type: String, default: '' },
  41. spreadId: { type: String, default: '' }, // 推荐人id
  42. spreadCount: { type: Number, default: 0 }, // 推荐 人数
  43. spreadRebate: { type: Number, default: 0 }, // 推荐 返利
  44. spreadRebateOut: { type: Number, default: 0 }, // 推荐 已经提现
  45. formId: { type: Number, default: 0 }, // 来源平台 0为微信 1为闲聊
  46. form: { type: String, default: '' }, // 来源,新用户来源(如果是来自于推广的链接这里存储agentNo)
  47. smName: { type: String, default: '' }, // 实名认证姓名
  48. smCardId: { type: String, default: '' }, // 实名认证身份证号
  49. synPlayer: { type: String, default: '' } // 钻石同步的用户
  50. }, { collection: 'player' });
  51. mdbgoose.model('Player', PlayerSchema);
  52. // 手机号登录信息表,为了在登陆的时候带手机号参数上来
  53. var TelSchema = new mdbgoose.Schema({
  54. _id: { type: String }, // 标识
  55. tel: { type: String, default: '' }, // 手机号码
  56. pwd: { type: String, default: '' }, // 密码
  57. bindTime: { type: Number, default: 0 } // 验证通过时间,=0时表示短信过去了待验证
  58. }, { collection: 'tel' });
  59. mdbgoose.model('Tel', TelSchema);
  60. // 登录信息时间表,为了统计留存率
  61. var LoginSchema = new mdbgoose.Schema({
  62. _id: { type: String }, // 标识
  63. playerId: { type: String }, // 玩家标识
  64. loginTime: { type: Number, default: Date.now } // 最近登录
  65. }, { collection: 'login' });
  66. mdbgoose.model('Login', LoginSchema);
  67. // 邀请信息表,用于邀请新人按比例送钻这个活动
  68. var InviteSchema = new mdbgoose.Schema({
  69. _id: { type: String }, // 被邀请人标识
  70. yId: { type: String }, // 邀请人标识
  71. yuId: { type: String, default: 0 }, // 邀请人用户id
  72. yTime: { type: Number, default: Date.now } // 邀请时间
  73. }, { collection: 'invite' });
  74. mdbgoose.model('Invite', InviteSchema);
  75. // 活动期间邀请的新人产生的消耗,用于邀请新人按比例送钻这个活动
  76. var InvitesCostSchema = new mdbgoose.Schema({
  77. _id: { type: String }, // UUID
  78. pId: { type: String }, // 邀请人标识
  79. uId: { type: Number }, // 邀请人用户id
  80. all: { type: Number, default: 0 }, // 邀请人邀请的所有新人在该天的全部消耗
  81. isSend: { type: Number, default: 0 }, //该天产生的奖励是否通过邮件已发送出去
  82. dayTime: { type: Number, default: Date.now } // 统计时间,以天为单位
  83. }, { collection: 'invitesCost' });
  84. mdbgoose.model('InvitesCost', InvitesCostSchema);
  85. // 钻石记录
  86. var DiamondRecordSchema = new mdbgoose.Schema({
  87. _id: { type: String }, // UUID
  88. playerId: { type: String }, // 玩家标识
  89. /* dType:类型 1为注册2为充值3坐下4退分5礼物6活动7后台 8同步转出 9同步转入10签到11每日奖励12分享赠送,
  90. 13活动期间累充送钻石,14活动期间组局领钻,15活动期间回归用户每日领钻,
  91. 16活动期间回归用户每日充值奖励钻石,17绑定手机,18邀新人按消耗比例返钻,
  92. 19比赛4~10名送钻,20水果游戏,21水果任务,22水果排行榜, 只有11没有统计
  93. */
  94. dType: { type: Number },
  95. dSource: { type: Number, default: 0 }, // 原钻石
  96. dSwap: { type: Number, default: 0 }, // 变化钻石 游戏
  97. dNow: { type: Number, default: 0 }, // 新钻石
  98. tableId: { type: String, default: '' }, // 房间标识
  99. registerTime: { type: Number, default: Date.now } // 记录时间
  100. }, { collection: 'diamondRecord' });
  101. mdbgoose.model('DiamondRecord', DiamondRecordSchema);
  102. // taskquan记录
  103. var TaskQuanRecordSchema = new mdbgoose.Schema({
  104. _id: { type: String }, // UUID
  105. playerId: { type: String }, // 玩家标识
  106. /* dType:类型 1为注册2为充值3坐下4退分5礼物6活动7后台 8同步转出 9同步转入10签到11每日奖励12分享赠送,
  107. 13活动期间累充送钻石,14活动期间组局领钻,15活动期间回归用户每日领钻,
  108. 16活动期间回归用户每日充值奖励钻石,17绑定手机,18邀新人按消耗比例返钻,
  109. 19比赛4~10名送钻,20水果游戏,21水果任务,22水果排行榜, 只有11没有统计
  110. */
  111. dType: { type: Number },
  112. dSource: { type: Number, default: 0 }, // 原钻石
  113. dSwap: { type: Number, default: 0 }, // 变化钻石 游戏
  114. dNow: { type: Number, default: 0 }, // 新钻石
  115. tableId: { type: String, default: '' }, // 房间标识
  116. registerTime: { type: Number, default: Date.now } // 记录时间
  117. }, { collection: 'taskQuanRecord' });
  118. mdbgoose.model('TaskQuanRecord', TaskQuanRecordSchema);
  119. // 代理 基础属性
  120. var AgenterSchema = new mdbgoose.Schema({
  121. _id: { type: String }, // 标识
  122. agentNo: { type: Number }, // 代理编号
  123. agentName: { type: String, default: '' }, // 代理名称
  124. playerId: { type: String, default: '' }, // 玩家标识
  125. // playerIdXL: { type: String, default: '' }, // 玩家标识闲聊
  126. // openId: { type: String, default: '' }, // openid提现用
  127. mpId: { type: String, default: '' }, // 公众号ID
  128. contact: { type: String, default: '' }, // 联系人
  129. tel: { type: String, default: '' }, // 手机号码
  130. pwd: { type: String, default: '' }, // 密码
  131. rewardRate: { type: Number, default: 70}, //奖励比例(0~100)占比业绩
  132. myUrl: { type: String,default: '' },
  133. levelFlag: { type: Number, default: 0}, // 推广等级0:实习,1:普通推广,2:金牌推广,3:比赛推广,4:传单推广
  134. enabled: { type: Number, default: 1}, // 是否可用,0:不可用,1:可用,
  135. parentAgenterId: { type: String, default: '' }, // 上级推广ID,没有上级的此值为""
  136. parentRate: { type: Number, default: 0 }, // 上级推广的比例,无上级时此值为0,有上级此值才可能不为0
  137. rebateAll2: { type: Number, default: 0 }, // 自己小组可提现总返利(包括审核中的) 单位是钻石且乘过比例的 在每局结束后增加
  138. rebateNow2: { type: Number, default: 0 }, // 自己小组(下级推广)的可提现返利
  139. verifyRebate2: { type: Number, default: 0 }, // 自己小组(下级推广)的审核的返利
  140. verifyDate2: { type: Number, default: 0 }, // 自己小组(下级推广) 审核日期
  141. rebateOut2: { type: Number, default: 0 }, // 自己小组(下级推广)的已提现返利
  142. agentRate: { type: Number, default: 0}, // 额外返利的比例
  143. rebateOther: { type: Number, default: 0 }, // 其他 额外返利
  144. rebateCount: { type: Number, default: 0 }, // 返利合计 = 基础 + 额外 单位是钻石且乘过比例的
  145. rebateAll: { type: Number, default: 0 }, // 可提现总返利(不包含额外)单位是钻石且乘过比例的
  146. rebateNow: { type: Number, default: 0 }, // 可提现返利(已审核的自己基础的+额外的),
  147. rebateOut: { type: Number, default: 0 }, // 已提现返利
  148. verifyDate: { type: Number, default: 0 }, // 审核日期
  149. verifyRebate: { type: Number, default: 0 }, // 审核的返利
  150. //以下字段是用来展示和计算额外返利使用的,目前没有额外比例所以去掉以下字段
  151. // dateGameTimes02: { type: Number, default: 0 }, // 冲刺游戏次数
  152. // dateGameTimes03: { type: Number, default: 0 }, // 冲刺游戏次数
  153. // dateGameTimes0: { type: Number, default: 0 }, // 冲刺游戏次数
  154. // dateGameTimes42: { type: Number, default: 0 }, // 4局游戏游戏次数
  155. // dateGameTimes43: { type: Number, default: 0 }, // 4局游戏游戏次数
  156. // dateGameTimes4: { type: Number, default: 0 }, // 4局游戏游戏次数
  157. // dateGameTimes82: { type: Number, default: 0 }, // 8局游戏次数
  158. // dateGameTimes83: { type: Number, default: 0 }, // 8局游戏次数
  159. // dateGameTimes8: { type: Number, default: 0 }, // 8局游戏次数
  160. // dateGameTimes162: { type: Number, default: 0 }, // 16局游戏次数
  161. // dateGameTimes163: { type: Number, default: 0 }, // 16局游戏次数
  162. // dateGameTimes164: { type: Number, default: 0 }, // 16局游戏次数
  163. // dateGameCost0: { type: Number, default: 0 }, // 冲刺游戏消耗
  164. // dateGameCost4: { type: Number, default: 0 }, // 4局游戏消耗
  165. // dateGameCost8: { type: Number, default: 0 }, // 8局游戏消耗
  166. // dateGameCost16: { type: Number, default: 0 }, // 16局游戏消耗
  167. registerTime: { type: Number, default: Date.now } // 注册时间
  168. }, { collection: 'agenter' });
  169. mdbgoose.model('Agenter', AgenterSchema);
  170. // 白名单人员信息
  171. var AgreeInfoSchema = new mdbgoose.Schema({
  172. _id: { type: String, default: '' }, // 标识 数据库中player(用户)数据表的主键(_id)
  173. playerId: { type: String, default: '' }, // 标识 数据库中player(用户)数据表的主键(_id)
  174. agreeState: { type: String, default: '' }, // 对该玩家的同意情况0:申请中,1:已同意,2:已拒绝,
  175. userId: { type: Number }, // 用户编号
  176. name: { type: String, default: '' }, // 代理名称
  177. headurl: { type: String, default: '' } // 玩家头像
  178. });
  179. // // 代理白名单信息
  180. var AgenterAgreeSchema = new mdbgoose.Schema({
  181. _id: { type: String }, // 标识 数据库中agenter(推广员)数据表的主键(_id)
  182. isOpenAgree: { type: String, default: '0' }, //推广员是否开启白名单验证0:未开启,1:已开启,
  183. infoList: [AgreeInfoSchema] // 实时战绩
  184. }, { collection: 'agenterAgree' });
  185. mdbgoose.model('AgenterAgree', AgenterAgreeSchema);
  186. // 返利记录
  187. var RebateRecordSchema = new mdbgoose.Schema({
  188. _id: { type: String }, // UUID
  189. agentId: { type: String, default: '' }, // 代理标识
  190. tableId: { type: String, default: '' }, // 房间标识
  191. rType: { type: Number, default: 0 }, // 类型 1为锁定返利增加 2为提现 3为前日结算 4为小组锁定返利增加 5为小组前日结算 6为小组提现
  192. rCount: { type: Number, default: 0 }, // 合计
  193. rOther: { type: Number, default: 0 }, // 总奖励
  194. rAll: { type: Number, default: 0 }, // 总返利
  195. rNow: { type: Number, default: 0 }, // 可提取返利
  196. rOut: { type: Number, default: 0 }, // 已经提取返利
  197. rSwap: { type: Number, default: 0 }, // 返利金额
  198. rKouZuan: { type: Number, default: 0 }, // 扣业绩钻石数量
  199. rDateSwap: { type: Number, default: 0 }, // 日奖励
  200. rVerifyDate: { type: Number, default: 0 }, // 审核返利日期
  201. rVerifyRebate: { type: Number, default: 0 }, // 审核返利金额
  202. registerTime: { type: Number, default: Date.now } // 记录时间
  203. }, { collection: 'rebateRecord' });
  204. mdbgoose.model('RebateRecord', RebateRecordSchema);
  205. // 日期返利记录
  206. var DateRebateRecordSchema = new mdbgoose.Schema({
  207. _id: { type: String }, // UUID
  208. agentId: { type: String, default: '' }, // 代理标识
  209. verifyDate: { type: Number, default: 0 }, // 数据的日期
  210. verifyRebate: { type: Number, default: 0 }, // 返利金额(该日期自己的返利,单位是钻石,已乘过自己比例)
  211. dateAgentRate: { type: Number, default: 0 }, // 该日期当日额外返利的比例
  212. dateRebate: { type: Number, default: 0 }, // 该日期 额外返利金额
  213. dateRewardRate: { type: Number, default: 0 }, // 进行日结当日该推广自己的返利的比例
  214. parentaId: { type: String, default: '' }, // 代理上级的标识
  215. dateParentRate: { type: Number, default: 0 }, // 进行日结当日该推广上级的返利的比例
  216. parentRebate: { type: Number, default: 0 }, // 该日期 该推广上级的返利金额
  217. allGameCost: { type: Number, default: 0 }, // 该日期该推广产生的总游戏消耗
  218. allGiftCost: { type: Number, default: 0 }, // 该日期该推广产生的总礼物消耗
  219. allGameTimes1: { type: Number, default: 0 }, // 该日期该推广产生的总游戏1次数
  220. allGameTimes2: { type: Number, default: 0 }, // 该日期该推广产生的总游戏2次数
  221. allGameTimes3: { type: Number, default: 0 }, // 该日期该推广产生的总游戏3次数
  222. allGameTimes4: { type: Number, default: 0 }, // 该日期该推广产生的总游戏4次数
  223. allPlayeCount: { type: Number, default: 0 }, // 该日期该推广活跃玩家个数
  224. // dateGameTimes02: { type: Number, default: 0 }, // 冲刺游戏次数
  225. // dateGameTimes03: { type: Number, default: 0 }, // 冲刺游戏次数
  226. // dateGameTimes0: { type: Number, default: 0 }, // 冲刺游戏次数
  227. // dateGameTimes42: { type: Number, default: 0 }, // 4局游戏游戏次数
  228. // dateGameTimes43: { type: Number, default: 0 }, // 4局游戏游戏次数
  229. // dateGameTimes4: { type: Number, default: 0 }, // 4局游戏游戏次数
  230. // dateGameTimes82: { type: Number, default: 0 }, // 8局游戏次数
  231. // dateGameTimes83: { type: Number, default: 0 }, // 8局游戏次数
  232. // dateGameTimes8: { type: Number, default: 0 }, // 8局游戏次数
  233. // dateGameTimes162: { type: Number, default: 0 }, // 16局游戏次数
  234. // dateGameTimes163: { type: Number, default: 0 }, // 16局游戏次数
  235. // dateGameTimes16: { type: Number, default: 0 }, // 16局游戏次数
  236. // dateGameCost0: { type: Number, default: 0 }, // 冲刺游戏消耗
  237. // dateGameCost4: { type: Number, default: 0 }, // 4局游戏消耗
  238. // dateGameCost8: { type: Number, default: 0 }, // 8局游戏消耗
  239. // dateGameCost16: { type: Number, default: 0 }, // 16局游戏消耗
  240. registerTime: { type: Number, default: Date.now } // 记录时间
  241. }, { collection: 'daterebateRecord' });
  242. mdbgoose.model('DateRebateRecord', DateRebateRecordSchema);
  243. // 玩家局数统计
  244. var PlayerCountSchema = new mdbgoose.Schema({
  245. _id: { type: String }, // UUID
  246. agentId: { type: String, default: '' }, // 代理标识
  247. playerId: { type: String, default: '' }, // 玩家标识
  248. userId: { type: Number, default: 0 }, // 玩家号码
  249. name: { type: String, default: '' }, // 昵称
  250. date: { type: Number, default: 0 }, // 日期
  251. gameCount: { type: Number, default: 0}, // 局数统计
  252. gameCost: { type: Number, default: 0 }, // 游戏消耗
  253. agentRebate: { type: Number, default: 0 }, // 代理返利
  254. time: { type: Number, default: 0 } // 记录时间
  255. }, { collection: 'playercount' });
  256. mdbgoose.model('PlayerCount', PlayerCountSchema);
  257. // // 日期推广信息记录
  258. // var DateAgentInfoSchema = new mdbgoose.Schema({
  259. // _id: { type: String }, // UUID
  260. // agentId: { type: String, default: '' }, // 代理标识
  261. // dataDate: { type: Number, default: 0 }, // 数据产生的日期
  262. // allCost: { type: Number, default: 0 }, // 该日该推广总消耗 单位是钻石 在每局结束之后修改,增量=该局消耗
  263. // zjjcRebate: { type: Number, default: 0 }, // 该日该推广自己的基础返利 单位是钻石 在每局结束之后修改,增量=该局消耗*rewardRate
  264. // otherRebate: { type: Number, default: 0 }, // 该日该推广自己的额外返利 单位是钻石 在每局结束之后修改,增量=该局消耗*agentRate
  265. // parentRebate: { type: Number, default: 0 }, // 该日该推广贡献给自己上级的返利 单位是钻石 在每局结束之后修改,增量=该局消耗*parentRate
  266. // pCount: { type: Number, default: 0 }, // 该日该推广活跃人数
  267. // gameCount: { type: Number, default: 0}, //该日该推广局数统计 在每局结束之后修改,增量=1
  268. // registerTime: { type: Number, default: Date.now }// 记录时间
  269. // }, { collection: 'dateAgentInfo' });
  270. // mdbgoose.model('DateAgentInfo', DateAgentInfoSchema);
  271. // 提现申请
  272. var OutRebateSchema = new mdbgoose.Schema({
  273. _id: { type: String }, // UUID
  274. agentId: { type: String, default: '' }, // 代理标识
  275. outType: { type: Number, default: 1 }, // 提现类型:1为提取自己的,2为提取自己下级的
  276. outSwap: { type: Number, default: 0 }, // 提现金额
  277. kouZuan: { type: Number, default: 0 }, // 扣业绩钻石数量
  278. totalFee: { type: Number, default: 0 }, // 发放金额
  279. payState: { type: Number, default: 1 }, // 支付状态 1为未支付 2人工支付 3支付成功
  280. registerTime: { type: Number, default: Date.now } // 记录时间
  281. }, { collection: 'outRebate' });
  282. mdbgoose.model('OutRebate', OutRebateSchema);
  283. // 申请推广员TL++10月16日
  284. var applyTGchema = new mdbgoose.Schema({
  285. _id: { type: String }, // 标识
  286. // userId: { type: Number, default: 0 }, // 玩家号码
  287. applyType: { type: Number, default: 1 }, // 申请推广的类型,1:普通,通过大厅自主申请,2:金牌推广员邀请小组新成员申请
  288. parenteId:{ type: String, default: '' }, // 申请推广的上级id,目前只有applyType=2时此值为操作邀请的推广id
  289. tgName: { type: String, default: '' }, // 申请推广的姓名
  290. tgPhone: { type: String, default: '' }, // 申请推广的手机号码
  291. tgWXNumber: { type: String, default: '' },// 申请推广的微信号
  292. tgState: { type: Number, default: 1 }, // 未申请=1;正在审核=2;审核成功=3,审核失败=4
  293. registerTime: { type: Number, default: Date.now } // 日期
  294. }, { collection: 'applyTG' });
  295. mdbgoose.model('tgApply', applyTGchema);
  296. // 某一单款或玩法后台可配置维护中
  297. var WHZGameSchema = new mdbgoose.Schema({
  298. _id: { type: String, default: '' }, // 记录标识
  299. gameId: { type: Number, default: 0}, // 维护中的游戏id
  300. whAll: { type: Number, default: 0}, // 1:表示整个游戏的所有玩法均维护,0:部分玩法维护
  301. round: { type: Number, default: 0}, // 维护中的游戏局数
  302. playerCount: { type: Number, default: 0}, // 维护中的游戏人数
  303. other: { type: Number, default: 0}, // 维护中的游戏规则
  304. type: { type: Number, default: 0}, // 维护中的游戏type
  305. gameKind: { type: Number, default: 0} // 维护中的游戏gameKind
  306. });
  307. // 活动的达成条件和奖励信息列表
  308. // var ActiveReachAndRewardInfoSchema = new mdbgoose.Schema({
  309. // _id: { type: String, default: '' }, // 记录标识
  310. // reachType: { type: Number, default: 0}, // 达成条件类型1:邀新,2:完成游戏局数,3:充值,4:回归
  311. // reachCount: { type: Number, default: 0}, // 达成条件所需数量
  312. // reachType: { type: Number, default: 0}, // 奖励类型1:钻石,
  313. // reachType: { type: Number, default: 0} // 达成之后奖励的数量
  314. // });
  315. // // 活动配置信息
  316. // var ActiveSchema = new mdbgoose.Schema({
  317. // _id: { type: String, default: '' }, // 记录标识
  318. // type: { type: Number, default: 0}, // 1:邀新送钻,2:累充送钻,3:组局领钻,4回归福利
  319. // des: { type: String, default: '' }, // 活动描述
  320. // open: { type: Number, default: 0}, // 0关闭,1:开启
  321. // startTime: { type: Number, default: Date.now }, // 开始日期
  322. // endTime: { type: Number, default: Date.now }, // 结束日期
  323. // reachAndRewardInfo: [ActiveReachAndRewardInfoSchema]// 该活动的达成条件和奖励信息列表
  324. // });
  325. // 是否维护
  326. var WHstatechema = new mdbgoose.Schema({
  327. _id: { type: String, default: 'wh'}, // UUID
  328. stateWH: {type: Number, default: 0}, // 维护状态0为正常1为维护中
  329. whTip: { type: String, default: '游戏正在维护,请稍后创建房间' }, // 维护提示
  330. rebaterate: { type: Number, default: 60}, // 返利比例
  331. shareGive: { type: Number, default: 50}, // 分享赠钻
  332. yxndlbTime: {type: Number, default: 0}, // 游戏内大喇叭(跑马灯)通知间隔时间
  333. yxndlbTip: { type: String, default: '' }, // 游戏内大喇叭(跑马灯)通知内容
  334. whzGame: [WHZGameSchema] // 某一单款或玩法后台可配置维护中
  335. }, { collection: 'whstate' });
  336. mdbgoose.model('WHstate', WHstatechema);
  337. // 不能在一起(同一桌)游戏的玩家信息 TL++
  338. var NotGameTogtherSchema = new mdbgoose.Schema({
  339. _id: { type: String }, // UUID
  340. uidList: [Number], //不能在同一桌的玩家userid列表
  341. pidList: [String], //不能在同一桌的玩家_id列表
  342. }, { collection: 'notGameTogther' });
  343. mdbgoose.model('NotGameTogther', NotGameTogtherSchema);
  344. // 每日峰值统计 TL++
  345. var EverytopSchema = new mdbgoose.Schema({
  346. _id: { type: String }, // UUID
  347. daytime: { type: Number, default: Date.now }, // 写入时间
  348. onlineList: [Number], // 整点在线人数列表
  349. onlineTop: { type: Number , default: 0}, // 今日在线峰值
  350. onlineTop_t: { type: Number, default: Date.now }, // 今日在线峰值出现时间
  351. registCount: { type: Number , default: 0}, // 今日注册的用户数量
  352. loginCount: { type: Number , default: 0}, // 今日登录过的用户数量
  353. payCount: { type: Number , default: 0}, // 今日充值总额
  354. outRebateCount: { type: Number , default: 0} // 今日提现总额
  355. }, { collection: 'everytop' });
  356. mdbgoose.model('EveryTop', EverytopSchema);
  357. // 记牌器购买信息
  358. var JiPaiQiSchema = new mdbgoose.Schema({
  359. _id: { type: String }, // 标识
  360. userId: { type: Number }, // 用户编号
  361. times0: { type: Number, default: 0 }, // 免费试用次数
  362. times1: { type: Number, default: 0 }, // 7天卡购买次数
  363. times2: { type: Number, default: 0 }, // 30天卡购买次数
  364. jpqdqsj: { type: Number, default: 0 }, // 记牌器到期时间
  365. lastBuyTime: { type: Number, default: 0 }, // 最近试用或购买时间
  366. registerTime: { type: Number, default: Date.now } // 首次试用或购买时间
  367. }, { collection: 'jipaiqi' });
  368. mdbgoose.model('JiPaiQi', JiPaiQiSchema);
  369. };