game.js 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400
  1. 'use strict';
  2. module.exports = function (app) {
  3. var mdbgoose = app.memdb.goose;
  4. var Types = mdbgoose.Schema.Types;
  5. // // ts++房间创建记录
  6. // var CTableRecordSchema = new mdbgoose.Schema({
  7. // _id: { type: String }, // 房间标识
  8. // playerId: { type: String, default: '' }, // 玩家标识
  9. // registerTime: { type: Number, default: Date.now } // 记录时间
  10. // }, { collection: 'ctableRecord' });
  11. // mdbgoose.model('CTableRecord', CTableRecordSchema);
  12. // 玩家战绩
  13. var UserSchema = new mdbgoose.Schema({
  14. _id: { type: String }, // 玩家标识
  15. chairId: { type: Number, default: 0}, // 椅子号
  16. userId: { type: Number, default: 0}, // 玩家号码
  17. name: { type: String, default: ''}, // 昵称
  18. sex: { type: String, default: ''}, // 性别
  19. headurl: { type: String, default: ''}, // 头像
  20. over: { type: Number, default: 0}, // 游戏局数
  21. score: { type: Number, default: 0} // 分数
  22. //gameCost: { type: Number, default: 0 }, // 游戏消耗
  23. //giftCost: { type: Number, default: 0 }, // 礼物消耗
  24. //diamond: { type: Number, default: 0 } // 最新钻石
  25. //extend: { type: Types.Mixed, default: {} } // 扩展
  26. });
  27. // 实时战绩
  28. var SSZJSchema = new mdbgoose.Schema({
  29. _id: { type: String }, // 子局数
  30. sszjScore: [String], // 本局成绩
  31. sszjAllScore: [String], // 总成绩
  32. banker: { type: Number, default: -1 }, // 庄家
  33. hu: { type: Number, default: -1 }, // 胡
  34. pao: { type: Number, default: -1 } // 放炮
  35. //fName: { type: String, default: '' } // 实时战绩文件
  36. });
  37. // 奉化麻将(10007)
  38. var FHMJTablesSchema = new mdbgoose.Schema({
  39. _id: { type: String }, // ts++标识
  40. gameId: { type: Number , default: 0 }, // 游戏id,10006为长沙麻将,10007为红中麻将,10008为跑得快
  41. tableNo: { type: String , default: ''}, // ts++房间号
  42. ownerId: { type: String, default: '' }, // 房主标识
  43. agentId: { type: String, default: '' }, // 代理ID
  44. type: { type: Number , default: 0 }, // 类型
  45. kind: { type: Number, default: 0 }, // 玩法
  46. other: { type: Number, default: 0 }, // 其他玩法
  47. playerCount: { type: Number, default: 0 }, // 游戏人数
  48. round: { type: Number, default: 0 }, // 总局数
  49. over: { type: Number , default: 0 }, // 游戏局数
  50. ctime: { type: Number, default: 0 }, // 创建时间
  51. stime: { type: Number , default: 0 }, // 开始时间
  52. time: { type: Number, default: 0 }, // 结束时间
  53. endMode: { type: Number, default: 0 }, // 结束模式
  54. gameCost: { type: Number, default: 0 }, // 游戏消耗
  55. giftCost: { type: Number, default: 0 }, // 礼物消耗
  56. agentRebate: { type: Number, default: 0 }, // 代理返利
  57. sszjFile: [String], // 实时战绩文件
  58. sszj: [SSZJSchema], // 实时战绩
  59. users: [UserSchema] // 玩家
  60. }, { collection: 'fhmjtables' });
  61. mdbgoose.model('FHMJTables', FHMJTablesSchema);
  62. //ts++ 游戏记录 仅在创建房间时候添加,仅用于判断近期内某个玩家是否创建过多的房间
  63. var GameTableSchema = new mdbgoose.Schema({
  64. _id: { type: String }, // ts++标识
  65. tableNo: { type: String , default: ''}, // ts++房间号
  66. ownerId: { type: String, default: '' }, // 房主标识
  67. agentId: { type: String, default: '' }, // 代理ID
  68. type: { type: Number , default: 0 }, // 类型
  69. kind: { type: Number, default: 0 }, // 玩法
  70. other: { type: Number, default: 0 }, // 其他玩法
  71. playerCount: { type: Number, default: 0 }, // 游戏人数
  72. round: { type: Number, default: 0 }, // 总局数
  73. over: { type: Number , default: 0 }, // 游戏局数
  74. ctime: { type: Number, default: 0 }, // 创建时间
  75. // stime: { type: Number , default: 0 }, // 开始时间
  76. // time: { type: Number, default: 0 }, // 结束时间
  77. endMode: { type: Number, default: 0 }, // 结束模式
  78. // gameCost: { type: Number, default: 0 }, // 游戏消耗
  79. // agentRebate: { type: Number, default: 0 }, // 代理返利
  80. }, { collection: 'gametable' });
  81. mdbgoose.model('GameTable', GameTableSchema);
  82. var SXGamerSchema = new mdbgoose.Schema({
  83. _id: { type: String }, // 玩家ID+时期[20190707]
  84. playerId: { type: String, default: '' }, // 玩家标识
  85. gameDate: { type: String, default: '' }, // 日期
  86. ttCount: { type: Number, default: 0 }, // 总场数
  87. noCount: { type: Number, default: 0 }, // 平局数
  88. winCount: { type: Number, default: 0 }, // 胜场数
  89. runCount: { type: Number, default: 0 }, // 逃跑数
  90. history: [String] // 历史记录
  91. //pjhffileName: [String] //ts-- 牌局回放记录的文件名
  92. }, { collection: 'sxgamer' });
  93. mdbgoose.model('SXGamer', SXGamerSchema);
  94. // 全局记录
  95. var RecordSchema = new mdbgoose.Schema({
  96. _id: { type: String }, // UUID
  97. gameId: { type: Number }, // 游戏ID
  98. tableId: { type: String }, // 房间号
  99. type: { type: Number }, // 类型
  100. round: { type: Number }, // 局数
  101. ctime: { type: Number }, // 创建时间
  102. stime: { type: Number }, // 开始时间
  103. time: { type: Number }, // 记录时间
  104. users: [UserSchema] // 玩家
  105. }, { collection: 'records' });
  106. mdbgoose.model('Record', RecordSchema);
  107. ////下面是水果机相关的数据
  108. // 水果机奖池
  109. var SGJJCchema = new mdbgoose.Schema({
  110. _id: { type: String, default: ''}, // 主键
  111. pools: [Number], // 奖池列表(单位:1/100钻石)(奖池分为几个等级,数组就有几个元素)
  112. cspools: [Number], // 初始奖池列表(单位:1/100钻石)(奖池分为几个等级,数组就有几个元素)
  113. levels: [Number], // 挡位数组(单位:钻石)(奖池分为几个等级,数组就有几个元素)
  114. kouchus: [Number], // 扣除列表(单位:1/100钻石)(奖池分为几个等级,数组就有几个元素)
  115. topLimits1: [Number], // 各个挡位对应的上限1调控数值(奖池分为几个等级,数组就有几个元素)
  116. topLimits2: [Number], // 各个挡位对应的上限2调控数值(奖池分为几个等级,数组就有几个元素)
  117. topLimits3: [Number], // 各个挡位对应的上限3调控数值(奖池分为几个等级,数组就有几个元素)
  118. lowLimits1: [Number], // 各个挡位对应的下限1调控数值(奖池分为几个等级,数组就有几个元素)
  119. lowLimits2: [Number], // 各个挡位对应的下限2调控数值(奖池分为几个等级,数组就有几个元素)
  120. lowLimits3: [Number], // 各个挡位对应的下限3调控数值(奖池分为几个等级,数组就有几个元素)
  121. paiTopRate1: [Number], // 各个挡位对应的牌上限1调控比例(奖池分为几个等级,数组就有几个元素)
  122. paiTopRate2: [Number], // 各个挡位对应的牌上限2调控比例(奖池分为几个等级,数组就有几个元素)
  123. paiTopRate3: [Number], // 各个挡位对应的牌上限3调控比例(奖池分为几个等级,数组就有几个元素)
  124. paiLowRate1: [Number], // 各个挡位对应的牌下限1调控比例(奖池分为几个等级,数组就有几个元素)
  125. paiLowRate2: [Number], // 各个挡位对应的牌下限2调控比例(奖池分为几个等级,数组就有几个元素)
  126. paiLowRate3: [Number], // 各个挡位对应的牌下限3调控比例(奖池分为几个等级,数组就有几个元素)
  127. bsTopRate1: [Number], // 各个挡位对应的倍数上限1调控比例(奖池分为几个等级,数组就有几个元素)
  128. bsTopRate2: [Number], // 各个挡位对应的倍数上限2调控比例(奖池分为几个等级,数组就有几个元素)
  129. bsTopRate3: [Number], // 各个挡位对应的倍数上限3调控比例(奖池分为几个等级,数组就有几个元素)
  130. bsLowRate1: [Number], // 各个挡位对应的倍数下限1调控比例(奖池分为几个等级,数组就有几个元素)
  131. bsLowRate2: [Number], // 各个挡位对应的倍数下限2调控比例(奖池分为几个等级,数组就有几个元素)
  132. bsLowRate3: [Number], // 各个挡位对应的倍数下限3调控比例(奖池分为几个等级,数组就有几个元素)
  133. ydxpools: [Number], // 押大小奖池列表(单位:1/100钻石)(奖池分为几个等级,数组就有几个元素)
  134. ydxcspools: [Number], // 押大小初始奖池列表(单位:1/100钻石)(奖池分为几个等级,数组就有几个元素)
  135. ydxlevels: [Number], // 押大小挡位数组(单位:钻石)(奖池分为几个等级,数组就有几个元素)
  136. ydxkouchus: [Number], // 押大小扣除列表(单位:1/100钻石)(奖池分为几个等级,数组就有几个元素)
  137. ydxtopLimits1: [Number], // 押大小各个挡位对应的上限1调控数值(奖池分为几个等级,数组就有几个元素)
  138. ydxtopLimits2: [Number], // 押大小各个挡位对应的上限2调控数值(奖池分为几个等级,数组就有几个元素)
  139. ydxtopLimits3: [Number], // 押大小各个挡位对应的上限3调控数值(奖池分为几个等级,数组就有几个元素)
  140. ydxlowLimits1: [Number], // 押大小各个挡位对应的下限1调控数值(奖池分为几个等级,数组就有几个元素)
  141. ydxlowLimits2: [Number], // 押大小各个挡位对应的下限2调控数值(奖池分为几个等级,数组就有几个元素)
  142. ydxlowLimits3: [Number], // 押大小各个挡位对应的下限3调控数值(奖池分为几个等级,数组就有几个元素)
  143. ydxTopRate1: [Number], // 押大小各个挡位对应的牌上限1调控比例(奖池分为几个等级,数组就有几个元素)
  144. ydxTopRate2: [Number], // 押大小各个挡位对应的牌上限2调控比例(奖池分为几个等级,数组就有几个元素)
  145. ydxTopRate3: [Number], // 押大小各个挡位对应的牌上限3调控比例(奖池分为几个等级,数组就有几个元素)
  146. ydxLowRate1: [Number], // 押大小各个挡位对应的牌下限1调控比例(奖池分为几个等级,数组就有几个元素)
  147. ydxLowRate2: [Number], // 押大小各个挡位对应的牌下限2调控比例(奖池分为几个等级,数组就有几个元素)
  148. ydxLowRate3: [Number], // 押大小各个挡位对应的牌下限3调控比例(奖池分为几个等级,数组就有几个元素)
  149. }, { collection: 'sgjjc' });
  150. mdbgoose.model('SGJJC', SGJJCchema);
  151. // 划分战绩
  152. var HUAFENchema = new mdbgoose.Schema({
  153. yddx: { type: Number, default: 0 }, // 本次划分玩家押的大小,1代表押小 = 2代表押大
  154. hfxz: { type: Number, default: 0 }, // 本次划分的下注
  155. hfjg: { type: Number, default: 0 }, // 本次划分的发牌结果:区间[1,12]
  156. bcyd: { type: Number, default: 0 }, // 本次划分赢的
  157. ksfs: { type: Number, default: 0 }, // 本次划分开始时的钻石(下注之前的)
  158. jsfs: { type: Number, default: 0 }, // 本次划分结束时的钻石(jsfs = ksfs-hfxz+bcyd)
  159. time: { type: Number, default: 0 }, // 本条划分记录时间
  160. });
  161. // 水果机战绩
  162. var SGJTablesSchema = new mdbgoose.Schema({
  163. _id: { type: String }, // ts++标识
  164. tableNo: { type: String , default: ''}, // ts++房间号
  165. ownerId: { type: String, default: '' }, // 玩家标识
  166. agentId: { type: String, default: '' }, // 代理ID
  167. over: { type: Number , default: 0 }, // 游戏局数
  168. time: { type: Number, default: 0 }, // 结束时间
  169. gameCost: { type: Number, default: 0 }, // 游戏消耗(本局下注总额)
  170. giftCost: { type: Number, default: 0 }, // 礼物消耗
  171. agentRebate: { type: Number, default: 0 }, // 代理返利
  172. yazhuList: [Number], // 本局押注列表
  173. resultList: [Number], // 本局结果列表
  174. winsList: [Number], // 本局结果赢的列表
  175. win: { type: Number, default: 0 }, // 本局结果赢得分数(不包含下注的即winsList元素总和)
  176. bsIndex: { type: Number, default: 0 }, //本次发牌对应的倍数下标["10/20","15/30","20/40"];
  177. huafenList: [HUAFENchema], // 本局划分数据列表
  178. scoreBefore: { type: Number, default: 0 }, // 本局开始前的分数(钻石)
  179. scoreEnd: { type: Number, default: 0 }, // 本局结束后的分数(=scoreBefore-押注总额+win)
  180. }, { collection: 'sgjtables' });
  181. mdbgoose.model('SGJTables', SGJTablesSchema);
  182. var SGJUserTongjiSchema = new mdbgoose.Schema({
  183. _id: { type: String }, // ts++标识
  184. userId: { type: Number, default: 0 },
  185. usdt: { type: Number, default: 0 }, // 当前身上usdt
  186. sgjwinlose: { type: Number, default: 0 }, //水果机盈亏
  187. taskquanget: { type: Number, default: 0 }, //获得的奖券
  188. taskquanlose: { type: Number, default: 0 }, //奖券消费
  189. nowtaskquan:{ type: Number, default: 0 }, //当前奖券
  190. todaytime: { type: Number, default: 0 }, //统计时间
  191. taskGetU: { type: Number, default: 0 }, //任务获得的U
  192. rechargeusdt: { type: Number, default: 0 }, //充值获得的U
  193. withdrawusdt: { type: Number, default: 0 }, //提现的U
  194. feeconfigusdt: { type: Number, default: 0 }, //提现每次3U的手续费
  195. feeusdt: { type: Number, default: 0 }, //提现第三方扣的手续费
  196. }, { collection: 'sgjusertongji' });
  197. mdbgoose.model('SGJUserTongji', SGJUserTongjiSchema);
  198. //水果机玩家信息
  199. var SGJUserSchema = new mdbgoose.Schema({
  200. _id: { type: String }, // 标识
  201. cost: { type: Number, default: 0 }, // 消费
  202. win: { type: Number, default: 0 }, // 总赢得分
  203. zfbAcc: { type: String , default: ''}, // 支付宝账号
  204. zfbName: { type: String , default: ''}, // 支付宝姓名
  205. zfbBindTime: { type: Number, default: 0 }, // 玩家支付宝信息正确性验证成功时间(0时表示验证未通过)
  206. gameCount: { type: Number, default: 0 }, // 总小局次数
  207. wingames: { type: Number, default: 0 }, // 总赢的小局次数
  208. taskReward: { type: Number, default: 0 }, // 已获得的任务奖励(RMB)在zfb到账之后增加
  209. jxzReward: { type: Number, default: 0 }, // 进行中的任务奖励(RMB)在领取任务时增加,在zfb到账之后减少
  210. ylzsReward: { type: Number, default: 0 }, // 已领取的任务奖励(钻石)
  211. taskQuan: { type: Number, default: 0 }, // 任务券(用于领任务)
  212. yazhuList: [Number], // 上局押注列表
  213. // [大苹果个数,大橙子个数,大芒果个数,大铃铛个数,大西瓜个数,大星星个数,大七七个数,大王王个数,幸运运个数,
  214. // 小苹果个数,小橙子个数,小芒果个数,小铃铛个数,小西瓜个数,小星星个数,小七七个数,小王王个数]
  215. getList: [Number], // 获得的列表(用于计算任务是否完成)
  216. getTime: { type: Number, default: 0 }, // 获得列表更新的时间
  217. // 今日可补充带入数量(例如玩家今天第一次进游戏时身上只有2w钻石,玩一会儿之后今日带入剩了1w了,
  218. // 出去充值之后身上钻石变多之后那今日的可带入应该为上次剩的1w+刚刚充值之后的最多9w)
  219. jrkbcdrs: { type: Number, default: 0 }, // 今日可补充带入数量
  220. drCount: { type: Number, default: 0 }, // 带入数量(钻石)(1分=10钻石,每日上限1w分)
  221. drTime: { type: Number, default: 0 }, // 带入时间
  222. jzjrldzcz: { type: Number, default: 0 }, // 玩家截至今日零点总充值数量(分),用于判断任务
  223. jzjrldzczjlsj: { type: Number, default: 0 }, // 玩家截至今日零点总充值记录对应的时间戳,用于判断jzjrldzcz是否需要更新
  224. registerTime: { type: Number, default: 0 }, // 玩家首次进入水果游戏时间
  225. lastJoinTime: { type: Number, default: 0 }, // 玩家上次进入果游戏时间(留存人数)
  226. lastPlayTime: { type: Number, default: 0 }, // 玩家上次玩水果游戏时间(用于统计游戏人数)
  227. lastYDXTime: { type: Number, default: 0 } // 玩家上次水果押大小时间(用于统计押大小人数)
  228. }, { collection: 'sgjuser' });
  229. mdbgoose.model('SGJUser', SGJUserSchema);
  230. //水果玩家任务信息
  231. var SGJTaskSchema = new mdbgoose.Schema({
  232. _id: { type: String }, // 标识
  233. playerId: { type: String }, // 玩家标识
  234. userId: { type: Number }, // 号码
  235. des: { type: String }, // 玩家标识
  236. cost: { type: Number, default: 0 }, // 消费
  237. reachs: [Number], //达成该条任务所需的条件列表[1(1号牌),2(2号牌)]]
  238. reachC: [Number], //达成该条任务所需的个数列表[reachs[0]出现次数,reachs[1]出现次数]
  239. rewardt: { type: Number, default: 0 }, //该条任务达成之后的奖品类型 0:未定义 1:钻石,2:RMB(分)
  240. rewards: { type: Number, default: 0 }, //该条任务达成之后的奖品数量
  241. state: { type: Number, default: 0 }, //任务状态0:未完成,1:已完成,2:发奖中,3:已发奖,
  242. lqTime: { type: Number, default: 0 }, //领取任务时间
  243. wcTime: { type: Number, default: 0 }, //完成时间
  244. fjTime: { type: Number, default: 0 }, //发奖时间
  245. }, { collection: 'sgjtask' });
  246. mdbgoose.model('SGJTask', SGJTaskSchema);
  247. // 水果机玩家今日任务池信息item
  248. var SGJRWCItemchema = new mdbgoose.Schema({
  249. index: { type: Number, default: -1 }, //该条任务编号
  250. des: { type: String, default: "" }, // 任务描述
  251. times: { type: Number, default: 1 }, //该条任务今日可领总次数
  252. cost: { type: Number, default: 0 }, // 该条任务需要的消耗
  253. reachs: [Number], //达成该条任务所需的条件列表[1(1号牌),2(2号牌)]]
  254. reachC: [Number], //达成该条任务所需的个数列表[reachs[0]出现次数,reachs[1]出现次数]
  255. rewardt: { type: Number, default: 0 }, //该条任务达成之后的奖品类型 0:未定义 1:钻石,2:RMB(分)
  256. rewards: { type: Number, default: 0 }, //该条任务达成之后的奖品数量
  257. });
  258. //水果玩家今日任务池信息(为了实现每个玩家每天的任务随机)
  259. var SGJWJJRRWCSchema = new mdbgoose.Schema({
  260. _id: { type: String }, // 标识,玩家的_id
  261. time: { type: Number, default: 0 }, //任务池对应的时间
  262. rwcList: [SGJRWCItemchema] // 该玩家对应时间的任务池列表
  263. }, { collection: 'sgjwjjrrwc' });
  264. mdbgoose.model('SGJWJJRRWC', SGJWJJRRWCSchema);
  265. //水果总统计信息
  266. var SGJTongjiSchema = new mdbgoose.Schema({
  267. _id: { type: String, default: 'sgztj'}, // 主键
  268. allCost: { type: Number, default: 0 }, //所有玩家总下注
  269. allwin: { type: Number, default: 0 }, //所有玩家总赢得
  270. allxh: { type: Number, default: 0 }, //所有玩家总消耗(总下注-总赢得)
  271. zqqCost: { type: Number, default: 0 }, //所有玩家游戏转圈总下注
  272. zqqwin: { type: Number, default: 0 }, //所有玩家游戏转圈总赢得
  273. zqqxh: { type: Number, default: 0 }, //所有玩家游戏转圈总消耗(总下注-总赢得)
  274. ydxCost: { type: Number, default: 0 }, //所有玩家押大小总下注
  275. ydxwin: { type: Number, default: 0 }, //所有玩家押大小总赢得
  276. ydxxh: { type: Number, default: 0 }, //所有玩家押大小总消耗(总下注-总赢得)
  277. allrwq: { type: Number, default: 0 }, //所有奖券产生总量
  278. rwxhjq1: { type: Number, default: 0 }, //钻石任务消耗奖券总量(领任务时记录)
  279. rwxhjq2: { type: Number, default: 0 }, //RMB任务消耗奖券总量(领任务时记录)
  280. rwxhjq3: { type: Number, default: 0 }, //备用任务1消耗奖券总量(领任务时记录)
  281. rwxhjq4: { type: Number, default: 0 }, //备用任务2消耗奖券总量(领任务时记录)
  282. rwdcze1: { type: Number, default: 0 }, //钻石任务兑出总额(领奖时记录)
  283. rwdcze2: { type: Number, default: 0 }, //RMB(分)任务兑出总额(领奖时记录)
  284. rwdcze3: { type: Number, default: 0 }, //备用任务兑出总额(领奖时记录)
  285. rwdcze4: { type: Number, default: 0 }, //备用任务兑出总额(领奖时记录)
  286. // 下面这两个数据是长度为8的数组,分别代表[苹果,橙子,芒果,铃铛,西瓜,星星,七七,王王]
  287. allyzze: [Number], //总押注总额列表
  288. allydze: [Number], //总赢得总额列表(不包含特殊项)
  289. // 下面这数据是长度为16的数组,分别代表[大苹果,大橙子,大芒果,大铃铛,大西瓜,大星星,大七七,大王王,
  290. //小苹果,小橙子,小芒果,小铃铛,小西瓜,小星星,小七七,小王王]
  291. gxzydze: [Number], //各项总赢得总额列表(不包含特殊项)
  292. // 下面这数据是长度为17的数组,分别代表[大苹果,大橙子,大芒果,大铃铛,大西瓜,大星星,大七七,大王王,
  293. //幸运运,小苹果,小橙子,小芒果,小铃铛,小西瓜,小星星,小七七,小王王]
  294. gxcxzcs: [Number], //各项出现总次数列表(不包含特殊项)
  295. // 下面这两个数据是长度为3的数组,分别代表[小三元,大三元,大四喜]
  296. tsxzydze: [Number], //特殊项总赢得总额列表
  297. tsxcxzcs: [Number], //特殊项出现总次数列表
  298. errstr: { type: String, default: ''}, //错误或者异常记录
  299. }, { collection: 'sgjtongji' });
  300. mdbgoose.model('SGJTongji', SGJTongjiSchema);
  301. //水果每日统计信息
  302. var SGJMRTJSchema = new mdbgoose.Schema({
  303. _id: { type: String }, // 标识
  304. zqqCost: { type: Number, default: 0 }, //所有玩家游戏转圈总下注
  305. zqqwin: { type: Number, default: 0 }, //所有玩家游戏转圈总赢得
  306. zqqxh: { type: Number, default: 0 }, //所有玩家游戏转圈总消耗(总下注-总赢得)
  307. ydxCost: { type: Number, default: 0 }, //所有玩家押大小总下注
  308. ydxwin: { type: Number, default: 0 }, //所有玩家押大小总赢得
  309. ydxxh: { type: Number, default: 0 }, //所有玩家押大小总消耗(总下注-总赢得)
  310. ydxzcs: { type: Number, default: 0 }, //该日押大小总次数
  311. allrwq: { type: Number, default: 0 }, //所有奖券产生总量
  312. rwxhjq1: { type: Number, default: 0 }, //钻石任务消耗奖券总量(领任务时记录)
  313. rwxhjq2: { type: Number, default: 0 }, //RMB任务消耗奖券总量(领任务时记录)
  314. rwdcze1: { type: Number, default: 0 }, //钻石任务兑出总额(领奖时记录)
  315. rwdcze2: { type: Number, default: 0 }, //RMB(分)任务兑出总额(领奖时记录)
  316. // yazhuList: [Number], // 本局押注列表
  317. registerTime: { type: Number, default: 0 }// 记录时间(该日0点时间戳)
  318. }, { collection: 'sgjmrtj' });
  319. mdbgoose.model('SGJMRTJ', SGJMRTJSchema);
  320. //水果每日统计信息
  321. var SGJMRRSSchema = new mdbgoose.Schema({
  322. _id: { type: String }, // 标识(日期)
  323. grzcrs: { type: Number, default: 0 }, //该日注册人数(按照进入时间算)
  324. xzyxrs: { type: Number, default: 0 }, //该日新增有效人数(玩过游戏的算为有效)
  325. grzqrs: { type: Number, default: 0 }, //该日转圈人数
  326. ydxzrs: { type: Number, default: 0 }, //该日押大小总人数
  327. grzqcs: { type: Number, default: 0 }, //该日转圈次数
  328. ydxzcs: { type: Number, default: 0 }, //该日押大小总次数
  329. lcrs1: { type: Number, default: 0 }, //该日的次日留存人数(按照进入算)
  330. lcrs7: { type: Number, default: 0 }, //该日的7日留存人数(按照进入算)
  331. time: { type: Number, default: Date.now },// 精确时间
  332. registerTime: { type: Number, default: 0 }// 记录时间(该日0点时间戳)
  333. }, { collection: 'sgjmrrs' });
  334. mdbgoose.model('SGJMRRS', SGJMRRSSchema);
  335. //水果机排行榜信息
  336. var SGJPaiHangSchema = new mdbgoose.Schema({
  337. _id: { type: String }, // 标识
  338. name: { type: String, default: '' }, // 昵称
  339. headurl: { type: String, default: '' }, // 头像
  340. userId: { type: Number }, // 号码
  341. cost1: { type: Number, default: 0 }, // 最近一天总下注
  342. quan1: { type: Number, default: 0 }, // 最近一天总得奖券
  343. time1: { type: Number, default: 0 }, // 最近游戏那天的0点时间戳
  344. cost2: { type: Number, default: 0 }, // 次近一天总下注
  345. quan2: { type: Number, default: 0 }, // 次近一天总得奖券
  346. time2: { type: Number, default: 0 }, // 次近游戏那天的0点时间戳
  347. registerTime: { type: Number, default: Date.now },// 记录时间
  348. }, { collection: 'sgjpaihang' });
  349. mdbgoose.model('SGJPaiHang', SGJPaiHangSchema);
  350. //水果全局配置信息
  351. var SGJConfigSchema = new mdbgoose.Schema({
  352. _id: { type: String, default: 'sgconfigs'}, // 主键
  353. phbyfjlrq: { type: Number, default: 0 }, //排行榜已发奖励的日期(0点时间戳)
  354. istelegram: { type: Number, default: 1 }, //排行榜已发奖励的日期(0点时间戳)
  355. withdrawfee: { type: Number, default: 3 }, //排行榜已发奖励的日期(0点时间戳)
  356. withdrawlowlimit: { type: Number, default: 10 }, //排行榜已发奖励的日期(0点时间戳)
  357. }, { collection: 'sgjconfig' });
  358. mdbgoose.model('SGJConfig', SGJConfigSchema);
  359. };