hall.js 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251
  1. 'use strict';
  2. module.exports = function (app) {
  3. var mdbgoose = app.memdb.goose;
  4. // 充值订单
  5. var PayRecordSchema = new mdbgoose.Schema({
  6. _id: { type: String }, // 订单号
  7. playerId: { type: String }, // 玩家ID
  8. payplayerId: { type: String, default: '' }, // 支付玩家ID
  9. total_fee: { type: Number }, // 总金额
  10. payment: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 支付方式 0为微信 1为支付宝
  11. paystate: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 支付状态 0未支付 1成功
  12. paydiamond: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 充值钻石
  13. payreward: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 充值奖励
  14. time: { type: Number, default: Date.now } // 时间戳
  15. }, { collection: 'pay_records' });
  16. mdbgoose.model('PayRecord', PayRecordSchema);
  17. var ConfigSchema = new mdbgoose.Schema({
  18. _id: { type: String }, // 订单号
  19. playerId: { type: String }, // 玩家ID
  20. payplayerId: { type: String, default: '' }, // 支付玩家ID
  21. total_fee: { type: Number }, // 总金额
  22. payment: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 支付方式 0为微信 1为支付宝
  23. paystate: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 支付状态 0未支付 1成功
  24. paydiamond: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 充值钻石
  25. payreward: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 充值奖励
  26. time: { type: Number, default: Date.now } // 时间戳
  27. }, { collection: 'config' });
  28. mdbgoose.model('Config', ConfigSchema);
  29. //chongzhi
  30. var UsdtPayRecordSchema = new mdbgoose.Schema({
  31. _id: { type: String }, // 订单号
  32. chainCode: { type: String, default: '' }, // 玩家ID
  33. clientId: { type: String, default: '' }, // 支付玩家ID
  34. code: {type: String, default: '' }, // 总金额
  35. amount: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 支付方式 0为微信 1为支付宝
  36. hash: { type: String, default: '' }, // 支付状态 0未支付 1成功
  37. status : { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} },
  38. fees: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} },
  39. feesU: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} },
  40. sourceAddress: { type: String, default: '' }, // 充值钻石
  41. targetAddress: { type: String, default: '' }, // 充值奖励
  42. risk: { type: Boolean, default: true }, // 充值奖励
  43. timestamp: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 充值奖励
  44. sign: { type: String, default: '' }, // 充值奖励
  45. time: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 时间戳
  46. beforeusdt : { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} },
  47. afterusdt : { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }
  48. }, { collection: 'usdtPayRecord' });
  49. mdbgoose.model('UsdtPayRecord', UsdtPayRecordSchema);
  50. var ThirdUSDTRecordSchema = new mdbgoose.Schema({
  51. _id: { type: String }, // 订单号
  52. userId: {type: Number},
  53. trade_no: { type: String },
  54. is_refund: { type: Number , default: 0},
  55. gameType:{type: String , default: ''},
  56. dSource: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 原钻石
  57. dSwap: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 变化钻石 游戏
  58. dNow: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 新钻石
  59. timestamp: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 充值奖励
  60. }, { collection: 'thirdUSDTRecord' });
  61. mdbgoose.model('ThirdUSDTRecord', ThirdUSDTRecordSchema);
  62. var ThirdRefundUSDTRecordSchema = new mdbgoose.Schema({
  63. _id: { type: String }, // 订单号
  64. userId: {type: Number},
  65. trade_no: { type: String },
  66. gameType:{type: String , default: ''},
  67. is_refund: { type: Number , default: 0},
  68. dSource: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 原钻石
  69. dSwap: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 变化钻石 游戏
  70. dNow: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 新钻石
  71. timestamp: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 充值奖励
  72. }, { collection: 'thirdRefundUSDTRecord' });
  73. mdbgoose.model('ThirdRefundUSDTRecord', ThirdRefundUSDTRecordSchema);
  74. var UsdtWithdrawRecordSchema = new mdbgoose.Schema({
  75. _id: { type: String }, // 订单号
  76. chainCode: { type: String, default: '' }, // 玩家ID
  77. userId: { type: String, default: '' }, // 支付玩家ID
  78. amount: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 支付方式 0为微信 1为支付宝
  79. tokenCode: { type: String, default: '' }, // 支付状态 0未支付 1成功
  80. refOrderId: { type: String, default: '' }, // 充值钻石
  81. msg: { type: String, default: '' }, // 充值钻石
  82. targetAddress: { type: String, default: '' }, // 充值奖励
  83. additionalAudit: { type: Boolean, default: true }, // 充值奖励
  84. submitfee: { type: Number, default: 0 },
  85. submitTime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} },
  86. callBackTime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 充值奖励
  87. sign: { type: String, default: '' }, // 充值奖励
  88. time: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 时间戳
  89. status: { type: Number, default: 100 },
  90. beforeusdt : { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} },
  91. afterusdt : { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} },
  92. resultbeforeusdt : { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} },
  93. resultafterusdt : { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} },
  94. }, { collection: 'usdtWithdrawRecord' });
  95. mdbgoose.model('UsdtWithdrawRecord', UsdtWithdrawRecordSchema);
  96. // 每个玩家每日充值上限,没有设置上限的玩家每日充值上限为quanjutop这条记录里的上限为准
  97. var PayLimitSchema = new mdbgoose.Schema({
  98. _id: { type: String }, // 标识
  99. userId: { type: Number }, // 号码
  100. name: { type: String, default: '' }, // 昵称
  101. paytop: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 充值上限,-1表示没有设置上限
  102. paytotal: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 充值总额
  103. dataTime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 充值总额对应的日期时间
  104. registerTime: { type: Number, default: Date.now }, // 记录/更新时间
  105. }, { collection: 'paylimit' });
  106. mdbgoose.model('PayLimit', PayLimitSchema);
  107. // 签到相关
  108. var SignInfoSchema = new mdbgoose.Schema({
  109. _id: { type: String }, // 玩家ID
  110. keep: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 连续天数
  111. lastTime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 最后签到
  112. shareTime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} } // 分享时间
  113. }, { collection: 'sign_infos' });
  114. var SignRecordSchema = new mdbgoose.Schema({
  115. _id: { type: String }, // UUID
  116. uid: { type: String }, // 玩家ID
  117. time: { type: Number, default: Date.now }, // 签到时间
  118. diamond: { type: Number } // 领取钻石
  119. }, { collection: 'sign_records' });
  120. mdbgoose.model('SignInfo', SignInfoSchema);
  121. mdbgoose.model('SignRecord', SignRecordSchema);
  122. // 红包相关
  123. var RedpackSchema = new mdbgoose.Schema({
  124. _id: { type: String }, // UUID
  125. recvd: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 是否已领取
  126. diamond: { type: Number }, // 钻石数量
  127. sid: { type: String }, // 发放玩家
  128. rid: { type: String, default: '' }, // 领取玩家
  129. stime: { type: Number, default: Date.now }, // 发放时间
  130. rtime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 领取时间
  131. }, { collection: 'redpacks' });
  132. mdbgoose.model('RedPack', RedpackSchema);
  133. //bug记录
  134. var BugRecordSchema = new mdbgoose.Schema({
  135. _id: { type: String }, // UUID
  136. playerId: { type: String }, // 玩家ID
  137. bugContent: { type: String }, // bug内容
  138. bugFileName1: { type: String }, // bug图片文件1
  139. bugFileName2: { type: String }, // bug图片文件2
  140. bugFileName3: { type: String }, // bug图片文件3
  141. answerStr: { type: String , default: "感谢您的反馈,我们正在积极处理。"}, // bug图片文件3
  142. bugState: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));}}, // bug状态
  143. registerTime: { type: Number, default: Date.now } // 注册时间
  144. }, { collection: 'bugRecords' });
  145. mdbgoose.model('BugRecords', BugRecordSchema);
  146. // 活动推广奖励产生记录
  147. var ActiveRewardRecordSchema = new mdbgoose.Schema({
  148. _id: { type: String }, // UUID
  149. rewardtype: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 奖励类型,0红包
  150. totalfee: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 产生金额,红包为分
  151. type:{ type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //活动类型:1国庆签到2国庆邀请
  152. sid: { type: String, default: '' }, // 产生奖励的玩家id
  153. sname: { type: String, default: '' }, // 产生奖励的玩家name
  154. suid: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 产生奖励的玩家userId
  155. rid: { type: String, default: '' }, // 此条奖励的受益玩家userId
  156. gameCount: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 游戏局数
  157. stime: { type: Number, default: Date.now }, // 记录产生时间
  158. succtime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 任务完成时间,任务未完成的时候这里是0
  159. succState: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 任务是否完成的状态,0:未完成1:已达成
  160. }, { collection: 'activerewardrecord' });
  161. mdbgoose.model('ActiveRewardRecord', ActiveRewardRecordSchema);
  162. // 活动推广奖励领取记录
  163. var ActiveReceiveRecordSchema = new mdbgoose.Schema({
  164. _id: { type: String }, // UUID
  165. rewardtype: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 奖励类型,0红包
  166. type:{ type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //活动类型:1国庆签到2国庆邀请
  167. rid: { type: String, default: '' }, // 此条奖励领取的玩家id
  168. ruid: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 此条奖励领取的玩家userId
  169. outSwap: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 领取金额
  170. totalFee: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 发放金额
  171. payState: { type: Number, default: 1 }, // 支付状态 1为未支付 2人工支付 3支付成功
  172. registerTime: { type: Number, default: Date.now } // 记录时间
  173. }, { collection: 'activereceiverecord' });
  174. mdbgoose.model('ActiveReceiveRecord', ActiveReceiveRecordSchema);
  175. // // 邮件相关
  176. var MailInfoSchema = new mdbgoose.Schema({
  177. _id: { type: String, default: '' }, //没啥用但是没有不行
  178. index: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 邮件下标
  179. tittleT: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 邮件标题类型 0:未定义 1:普通通知 2:有奖励通知 3:补偿通知 4:版本更新通知
  180. descT: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 邮件内容类型 0:未定义 1:普通通知 2:有奖励通知 3:补偿通知 4:版本更新通知
  181. reward: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 有无奖励 0:无奖励 1:有奖励
  182. rewardT: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 奖励类型 0:未定义 1:钻石,
  183. rewardC: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 奖励数量
  184. receive: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 是否领取 0:未领取 1:已领取
  185. read: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 是否已读 0:未读 1:已读
  186. form: { type: String, default: '' }, // 邮件来源
  187. sendTime: { type: Number, default: Date.now } // 发送日期
  188. });
  189. var MailsSchema = new mdbgoose.Schema({
  190. _id: { type: String, default: '' }, // 用户id(player表的主键)
  191. userId: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 用户的userId
  192. mailInfos: [MailInfoSchema]// 该活动的达成条件和奖励信息列表
  193. }, { collection: 'mails' });
  194. mdbgoose.model('Mails', MailsSchema);
  195. //// 比赛的开始和结束时间
  196. var RaceTimeInfosSchema = new mdbgoose.Schema({
  197. _id: { type: String }, // UUID 标识
  198. aid: { type: String }, // 比赛代理的标识
  199. agentNo: { type: Number }, // 比赛代理编号
  200. stime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 该次比赛的开始时间
  201. etime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 该次比赛的结束时间
  202. bigRound: { type: Number, default: 3 },// 该次比赛的大局数量,统计战绩时使用
  203. gameId: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 该次比赛的游戏id 10006为长沙麻将,10007为红中麻将,10008为跑得快
  204. round: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 该次比赛的游戏局数
  205. playerCount: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 该次比赛的游戏人数
  206. other: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 该次比赛的游戏规则
  207. outTime:{ type: Number, default: 1 }, // 过期时间(须大于结束时间40分钟之后)
  208. yljList: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});},get: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 该次比赛已领奖人员id数组
  209. staticFlag: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} },//是否统计过战绩,用于java定时器
  210. registerTime: { type: Number, default: Date.now } // 记录时间
  211. }, { collection: 'racetimeinfo' });
  212. mdbgoose.model('RaceTimeInfos', RaceTimeInfosSchema);
  213. var JinSaiInfoSchema = new mdbgoose.Schema({
  214. _id: { type: String, default: '' }, // 用户id(player表的主键)
  215. userId: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 用户的userId
  216. }, { collection: 'jinsaiinfo' });
  217. mdbgoose.model('JinSaiInfo', JinSaiInfoSchema);
  218. };