'use strict'; module.exports = function (app) { var mdbgoose = app.memdb.goose; var Types = mdbgoose.Schema.Types; // // ts++房间创建记录 // var CTableRecordSchema = new mdbgoose.Schema({ // _id: { type: String }, // 房间标识 // playerId: { type: String, default: '' }, // 玩家标识 // registerTime: { type: Number, default: Date.now } // 记录时间 // }, { collection: 'ctableRecord' }); // mdbgoose.model('CTableRecord', CTableRecordSchema); // 玩家战绩 var UserSchema = new mdbgoose.Schema({ _id: { type: String }, // 玩家标识 chairId: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));}}, // 椅子号 userId: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));}}, // 玩家号码 name: { type: String, default: ''}, // 昵称 sex: { type: String, default: ''}, // 性别 headurl: { type: String, default: ''}, // 头像 over: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));}}, // 游戏局数 score: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));}} // 分数 //gameCost: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 游戏消耗 //giftCost: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 礼物消耗 //diamond: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} } // 最新钻石 //extend: { type: Types.Mixed, default: {} } // 扩展 }); // 实时战绩 var SSZJSchema = new mdbgoose.Schema({ _id: { type: String }, // 子局数 sszjScore: [String], // 本局成绩 sszjAllScore: [String], // 总成绩 banker: { type: Number, default: -1 }, // 庄家 hu: { type: Number, default: -1 }, // 胡 pao: { type: Number, default: -1 } // 放炮 //fName: { type: String, default: '' } // 实时战绩文件 }); // 奉化麻将(10007) var FHMJTablesSchema = new mdbgoose.Schema({ _id: { type: String }, // ts++标识 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为跑得快 tableNo: { type: String , default: ''}, // ts++房间号 ownerId: { type: String, default: '' }, // 房主标识 agentId: { type: String, default: '' }, // 代理ID type: { type: Number , default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 类型 kind: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 玩法 other: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 其他玩法 playerCount: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 游戏人数 round: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 总局数 over: { type: Number , default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 游戏局数 ctime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 创建时间 stime: { type: Number , default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 开始时间 time: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 结束时间 endMode: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 结束模式 gameCost: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 游戏消耗 giftCost: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 礼物消耗 agentRebate: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 代理返利 sszjFile: [String], // 实时战绩文件 sszj: [SSZJSchema], // 实时战绩 users: [UserSchema] // 玩家 }, { collection: 'fhmjtables' }); mdbgoose.model('FHMJTables', FHMJTablesSchema); //ts++ 游戏记录 仅在创建房间时候添加,仅用于判断近期内某个玩家是否创建过多的房间 var GameTableSchema = new mdbgoose.Schema({ _id: { type: String }, // ts++标识 tableNo: { type: String , default: ''}, // ts++房间号 ownerId: { type: String, default: '' }, // 房主标识 agentId: { type: String, default: '' }, // 代理ID type: { type: Number , default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 类型 kind: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 玩法 other: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 其他玩法 playerCount: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 游戏人数 round: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 总局数 over: { type: Number , default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 游戏局数 ctime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 创建时间 // stime: { type: Number , default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 开始时间 // time: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 结束时间 endMode: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 结束模式 // gameCost: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 游戏消耗 // agentRebate: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 代理返利 }, { collection: 'gametable' }); mdbgoose.model('GameTable', GameTableSchema); var SXGamerSchema = new mdbgoose.Schema({ _id: { type: String }, // 玩家ID+时期[20190707] playerId: { type: String, default: '' }, // 玩家标识 gameDate: { type: String, default: '' }, // 日期 ttCount: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 总场数 noCount: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 平局数 winCount: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 胜场数 runCount: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 逃跑数 history: [String] // 历史记录 //pjhffileName: [String] //ts-- 牌局回放记录的文件名 }, { collection: 'sxgamer' }); mdbgoose.model('SXGamer', SXGamerSchema); // 全局记录 var RecordSchema = new mdbgoose.Schema({ _id: { type: String }, // UUID gameId: { type: Number }, // 游戏ID tableId: { type: String }, // 房间号 type: { type: Number }, // 类型 round: { type: Number }, // 局数 ctime: { type: Number }, // 创建时间 stime: { type: Number }, // 开始时间 time: { type: Number }, // 记录时间 users: [UserSchema] // 玩家 }, { collection: 'records' }); mdbgoose.model('Record', RecordSchema); ////下面是水果机相关的数据 // 水果机奖池 var SGJJCchema = new mdbgoose.Schema({ _id: { type: String, default: ''}, // 主键 pools: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 奖池列表(单位:1/100钻石)(奖池分为几个等级,数组就有几个元素) cspools: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 初始奖池列表(单位:1/100钻石)(奖池分为几个等级,数组就有几个元素) levels: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 挡位数组(单位:钻石)(奖池分为几个等级,数组就有几个元素) kouchus: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 扣除列表(单位:1/100钻石)(奖池分为几个等级,数组就有几个元素) topLimits1: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 各个挡位对应的上限1调控数值(奖池分为几个等级,数组就有几个元素) topLimits2: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 各个挡位对应的上限2调控数值(奖池分为几个等级,数组就有几个元素) topLimits3: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 各个挡位对应的上限3调控数值(奖池分为几个等级,数组就有几个元素) lowLimits1: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 各个挡位对应的下限1调控数值(奖池分为几个等级,数组就有几个元素) lowLimits2: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 各个挡位对应的下限2调控数值(奖池分为几个等级,数组就有几个元素) lowLimits3: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 各个挡位对应的下限3调控数值(奖池分为几个等级,数组就有几个元素) paiTopRate1: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 各个挡位对应的牌上限1调控比例(奖池分为几个等级,数组就有几个元素) paiTopRate2: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 各个挡位对应的牌上限2调控比例(奖池分为几个等级,数组就有几个元素) paiTopRate3: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 各个挡位对应的牌上限3调控比例(奖池分为几个等级,数组就有几个元素) paiLowRate1: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 各个挡位对应的牌下限1调控比例(奖池分为几个等级,数组就有几个元素) paiLowRate2: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 各个挡位对应的牌下限2调控比例(奖池分为几个等级,数组就有几个元素) paiLowRate3: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 各个挡位对应的牌下限3调控比例(奖池分为几个等级,数组就有几个元素) bsTopRate1: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 各个挡位对应的倍数上限1调控比例(奖池分为几个等级,数组就有几个元素) bsTopRate2: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 各个挡位对应的倍数上限2调控比例(奖池分为几个等级,数组就有几个元素) bsTopRate3: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 各个挡位对应的倍数上限3调控比例(奖池分为几个等级,数组就有几个元素) bsLowRate1: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 各个挡位对应的倍数下限1调控比例(奖池分为几个等级,数组就有几个元素) bsLowRate2: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 各个挡位对应的倍数下限2调控比例(奖池分为几个等级,数组就有几个元素) bsLowRate3: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 各个挡位对应的倍数下限3调控比例(奖池分为几个等级,数组就有几个元素) ydxpools: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 押大小奖池列表(单位:1/100钻石)(奖池分为几个等级,数组就有几个元素) ydxcspools: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 押大小初始奖池列表(单位:1/100钻石)(奖池分为几个等级,数组就有几个元素) ydxlevels: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 押大小挡位数组(单位:钻石)(奖池分为几个等级,数组就有几个元素) ydxkouchus: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 押大小扣除列表(单位:1/100钻石)(奖池分为几个等级,数组就有几个元素) ydxtopLimits1: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 押大小各个挡位对应的上限1调控数值(奖池分为几个等级,数组就有几个元素) ydxtopLimits2: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 押大小各个挡位对应的上限2调控数值(奖池分为几个等级,数组就有几个元素) ydxtopLimits3: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 押大小各个挡位对应的上限3调控数值(奖池分为几个等级,数组就有几个元素) ydxlowLimits1: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 押大小各个挡位对应的下限1调控数值(奖池分为几个等级,数组就有几个元素) ydxlowLimits2: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 押大小各个挡位对应的下限2调控数值(奖池分为几个等级,数组就有几个元素) ydxlowLimits3: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 押大小各个挡位对应的下限3调控数值(奖池分为几个等级,数组就有几个元素) ydxTopRate1: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 押大小各个挡位对应的牌上限1调控比例(奖池分为几个等级,数组就有几个元素) ydxTopRate2: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 押大小各个挡位对应的牌上限2调控比例(奖池分为几个等级,数组就有几个元素) ydxTopRate3: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 押大小各个挡位对应的牌上限3调控比例(奖池分为几个等级,数组就有几个元素) ydxLowRate1: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 押大小各个挡位对应的牌下限1调控比例(奖池分为几个等级,数组就有几个元素) ydxLowRate2: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 押大小各个挡位对应的牌下限2调控比例(奖池分为几个等级,数组就有几个元素) ydxLowRate3: {type: [Number],set: function(arr) {if (!Array.isArray(arr)) return arr;return arr.map(num => {return Number(Number(num).toFixed(2));});}}, // 押大小各个挡位对应的牌下限3调控比例(奖池分为几个等级,数组就有几个元素) }, { collection: 'sgjjc' }); mdbgoose.model('SGJJC', SGJJCchema); // 划分战绩 var HUAFENchema = new mdbgoose.Schema({ yddx: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 本次划分玩家押的大小,1代表押小 = 2代表押大 hfxz: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 本次划分的下注 hfjg: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 本次划分的发牌结果:区间[1,12] bcyd: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 本次划分赢的 ksfs: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 本次划分开始时的钻石(下注之前的) jsfs: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 本次划分结束时的钻石(jsfs = ksfs-hfxz+bcyd) time: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 本条划分记录时间 }); // 水果机战绩 var SGJTablesSchema = new mdbgoose.Schema({ _id: { type: String }, // ts++标识 tableNo: { type: String , default: ''}, // ts++房间号 ownerId: { type: String, default: '' }, // 玩家标识 agentId: { type: String, default: '' }, // 代理ID over: { type: Number , default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 游戏局数 time: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 结束时间 gameCost: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 游戏消耗(本局下注总额) giftCost: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 礼物消耗 agentRebate: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 代理返利 yazhuList: {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));});}}, // 本局押注列表 resultList: {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));});}}, // 本局结果列表 winsList: {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));});}}, // 本局结果赢的列表 win: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 本局结果赢得分数(不包含下注的即winsList元素总和) bsIndex: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //本次发牌对应的倍数下标["10/20","15/30","20/40"]; huafenList: [HUAFENchema], // 本局划分数据列表 scoreBefore: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 本局开始前的分数(钻石) scoreEnd: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 本局结束后的分数(=scoreBefore-押注总额+win) }, { collection: 'sgjtables' }); mdbgoose.model('SGJTables', SGJTablesSchema); var SGJUserTongjiSchema = new mdbgoose.Schema({ _id: { type: String }, // ts++标识 userId: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, usdt: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 当前身上usdt sgjwinlose: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //水果机盈亏 taskquanget: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //获得的奖券 taskquanlose: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //奖券消费 nowtaskquan:{ type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //当前奖券 todaytime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //统计时间 taskGetU: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //任务获得的U rechargeusdt: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //充值获得的U withdrawusdt: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //提现的U feeconfigusdt: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //提现每次3U的手续费 feeusdt: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //提现第三方扣的手续费 }, { collection: 'sgjusertongji' }); mdbgoose.model('SGJUserTongji', SGJUserTongjiSchema); //水果机玩家信息 var SGJUserSchema = new mdbgoose.Schema({ _id: { type: String }, // 标识 userId: { type: Number }, // 号码 cost: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 消费 win: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 总赢得分 zfbAcc: { type: String , default: ''}, // 支付宝账号 zfbName: { type: String , default: ''}, // 支付宝姓名 zfbBindTime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 玩家支付宝信息正确性验证成功时间(0时表示验证未通过) gameCount: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 总小局次数 wingames: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 总赢的小局次数 taskReward: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 已获得的任务奖励(RMB)在zfb到账之后增加 jxzReward: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 进行中的任务奖励(RMB)在领取任务时增加,在zfb到账之后减少 ylzsReward: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 已领取的任务奖励(钻石) taskQuan: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 任务券(用于领任务) yazhuList: {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));});}}, // 上局押注列表 // [大苹果个数,大橙子个数,大芒果个数,大铃铛个数,大西瓜个数,大星星个数,大七七个数,大王王个数,幸运运个数, // 小苹果个数,小橙子个数,小芒果个数,小铃铛个数,小西瓜个数,小星星个数,小七七个数,小王王个数] getList: {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));});}}, // 获得的列表(用于计算任务是否完成) getTime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 获得列表更新的时间 // 今日可补充带入数量(例如玩家今天第一次进游戏时身上只有2w钻石,玩一会儿之后今日带入剩了1w了, // 出去充值之后身上钻石变多之后那今日的可带入应该为上次剩的1w+刚刚充值之后的最多9w) jrkbcdrs: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 今日可补充带入数量 drCount: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 带入数量(钻石)(1分=10钻石,每日上限1w分) drTime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 带入时间 jzjrldzcz: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 玩家截至今日零点总充值数量(分),用于判断任务 jzjrldzczjlsj: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 玩家截至今日零点总充值记录对应的时间戳,用于判断jzjrldzcz是否需要更新 registerTime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 玩家首次进入水果游戏时间 lastJoinTime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 玩家上次进入果游戏时间(留存人数) lastPlayTime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 玩家上次玩水果游戏时间(用于统计游戏人数) lastYDXTime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} } // 玩家上次水果押大小时间(用于统计押大小人数) }, { collection: 'sgjuser' }); mdbgoose.model('SGJUser', SGJUserSchema); //水果玩家任务信息 var SGJTaskSchema = new mdbgoose.Schema({ _id: { type: String }, // 标识 playerId: { type: String }, // 玩家标识 userId: { type: Number }, // 号码 des: { type: String }, // 玩家标识 cost: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 消费 reachs: {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));});}}, //达成该条任务所需的条件列表[1(1号牌),2(2号牌)]] reachC: {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));});}}, //达成该条任务所需的个数列表[reachs[0]出现次数,reachs[1]出现次数] 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:钻石,2:RMB(分) rewards: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //该条任务达成之后的奖品数量 state: { 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:已发奖, lqTime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //领取任务时间 wcTime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //完成时间 fjTime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //发奖时间 }, { collection: 'sgjtask' }); mdbgoose.model('SGJTask', SGJTaskSchema); // 水果机玩家今日任务池信息item var SGJRWCItemchema = new mdbgoose.Schema({ index: { type: Number, default: -1 }, //该条任务编号 des: { type: String, default: "" }, // 任务描述 times: { type: Number, default: 1 }, //该条任务今日可领总次数 cost: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 该条任务需要的消耗 reachs: {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));});}}, //达成该条任务所需的条件列表[1(1号牌),2(2号牌)]] reachC: {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));});}}, //达成该条任务所需的个数列表[reachs[0]出现次数,reachs[1]出现次数] 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:钻石,2:RMB(分) rewards: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //该条任务达成之后的奖品数量 }); //水果玩家今日任务池信息(为了实现每个玩家每天的任务随机) var SGJWJJRRWCSchema = new mdbgoose.Schema({ _id: { type: String }, // 标识,玩家的_id time: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //任务池对应的时间 rwcList: [SGJRWCItemchema] // 该玩家对应时间的任务池列表 }, { collection: 'sgjwjjrrwc' }); mdbgoose.model('SGJWJJRRWC', SGJWJJRRWCSchema); //水果总统计信息 var SGJTongjiSchema = new mdbgoose.Schema({ _id: { type: String, default: 'sgztj'}, // 主键 allCost: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //所有玩家总下注 allwin: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //所有玩家总赢得 allxh: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //所有玩家总消耗(总下注-总赢得) zqqCost: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //所有玩家游戏转圈总下注 zqqwin: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //所有玩家游戏转圈总赢得 zqqxh: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //所有玩家游戏转圈总消耗(总下注-总赢得) ydxCost: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //所有玩家押大小总下注 ydxwin: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //所有玩家押大小总赢得 ydxxh: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //所有玩家押大小总消耗(总下注-总赢得) allrwq: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //所有奖券产生总量 rwxhjq1: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //钻石任务消耗奖券总量(领任务时记录) rwxhjq2: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //RMB任务消耗奖券总量(领任务时记录) rwxhjq3: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //备用任务1消耗奖券总量(领任务时记录) rwxhjq4: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //备用任务2消耗奖券总量(领任务时记录) rwdcze1: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //钻石任务兑出总额(领奖时记录) rwdcze2: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //RMB(分)任务兑出总额(领奖时记录) rwdcze3: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //备用任务兑出总额(领奖时记录) rwdcze4: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //备用任务兑出总额(领奖时记录) // 下面这两个数据是长度为8的数组,分别代表[苹果,橙子,芒果,铃铛,西瓜,星星,七七,王王] allyzze: {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));});}}, //总押注总额列表 allydze: {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));});}}, //总赢得总额列表(不包含特殊项) // 下面这数据是长度为16的数组,分别代表[大苹果,大橙子,大芒果,大铃铛,大西瓜,大星星,大七七,大王王, //小苹果,小橙子,小芒果,小铃铛,小西瓜,小星星,小七七,小王王] gxzydze: {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));});}}, //各项总赢得总额列表(不包含特殊项) // 下面这数据是长度为17的数组,分别代表[大苹果,大橙子,大芒果,大铃铛,大西瓜,大星星,大七七,大王王, //幸运运,小苹果,小橙子,小芒果,小铃铛,小西瓜,小星星,小七七,小王王] gxcxzcs: {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));});}}, //各项出现总次数列表(不包含特殊项) // 下面这两个数据是长度为3的数组,分别代表[小三元,大三元,大四喜] tsxzydze: {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));});}}, //特殊项总赢得总额列表 tsxcxzcs: {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));});}}, //特殊项出现总次数列表 errstr: { type: String, default: ''}, //错误或者异常记录 }, { collection: 'sgjtongji' }); mdbgoose.model('SGJTongji', SGJTongjiSchema); //水果每日统计信息 var SGJMRTJSchema = new mdbgoose.Schema({ _id: { type: String }, // 标识 zqqCost: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //所有玩家游戏转圈总下注 zqqwin: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //所有玩家游戏转圈总赢得 zqqxh: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //所有玩家游戏转圈总消耗(总下注-总赢得) ydxCost: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //所有玩家押大小总下注 ydxwin: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //所有玩家押大小总赢得 ydxxh: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //所有玩家押大小总消耗(总下注-总赢得) ydxzcs: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //该日押大小总次数 allrwq: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //所有奖券产生总量 rwxhjq1: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //钻石任务消耗奖券总量(领任务时记录) rwxhjq2: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //RMB任务消耗奖券总量(领任务时记录) rwdcze1: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //钻石任务兑出总额(领奖时记录) rwdcze2: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //RMB(分)任务兑出总额(领奖时记录) // yazhuList: {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));});}}, // 本局押注列表 registerTime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }// 记录时间(该日0点时间戳) }, { collection: 'sgjmrtj' }); mdbgoose.model('SGJMRTJ', SGJMRTJSchema); //水果每日统计信息 var SGJMRRSSchema = new mdbgoose.Schema({ _id: { type: String }, // 标识(日期) grzcrs: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //该日注册人数(按照进入时间算) xzyxrs: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //该日新增有效人数(玩过游戏的算为有效) grzqrs: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //该日转圈人数 ydxzrs: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //该日押大小总人数 grzqcs: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //该日转圈次数 ydxzcs: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //该日押大小总次数 lcrs1: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //该日的次日留存人数(按照进入算) lcrs7: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //该日的7日留存人数(按照进入算) time: { type: Number, default: Date.now },// 精确时间 registerTime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }// 记录时间(该日0点时间戳) }, { collection: 'sgjmrrs' }); mdbgoose.model('SGJMRRS', SGJMRRSSchema); //水果机排行榜信息 var SGJPaiHangSchema = new mdbgoose.Schema({ _id: { type: String }, // 标识 name: { type: String, default: '' }, // 昵称 headurl: { type: String, default: '' }, // 头像 userId: { type: Number }, // 号码 cost1: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 最近一天总下注 quan1: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 最近一天总得奖券 time1: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 最近游戏那天的0点时间戳 cost2: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 次近一天总下注 quan2: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 次近一天总得奖券 time2: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, // 次近游戏那天的0点时间戳 registerTime: { type: Number, default: Date.now },// 记录时间 }, { collection: 'sgjpaihang' }); mdbgoose.model('SGJPaiHang', SGJPaiHangSchema); //水果全局配置信息 var SGJConfigSchema = new mdbgoose.Schema({ _id: { type: String, default: 'sgconfigs'}, // 主键 phbyfjlrq: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} }, //排行榜已发奖励的日期(0点时间戳) istelegram: { type: Number, default: 1 }, //排行榜已发奖励的日期(0点时间戳) withdrawfee: { type: Number, default: 3 }, //排行榜已发奖励的日期(0点时间戳) withdrawlowlimit: { type: Number, default: 10 }, //排行榜已发奖励的日期(0点时间戳) }, { collection: 'sgjconfig' }); mdbgoose.model('SGJConfig', SGJConfigSchema); };