wubing 1 månad sedan
förälder
incheckning
e23dfed850

+ 2 - 1
app/models/game.js

@@ -28,6 +28,7 @@ module.exports = function (app) {
         //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 },								// 子局数
@@ -388,7 +389,7 @@ module.exports = function (app) {
 
     mdbgoose.model('SGJPaiHang', SGJPaiHangSchema);
 
-    //水果全局配置信息
+    //水果全局配置信息SGJUserTongji
     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点时间戳)

+ 1 - 1
app/models/hall.js

@@ -66,7 +66,7 @@ module.exports = function (app) {
         msg: { type: String, default: '' },                   // 充值钻石
         targetAddress: { type: String, default: '' },                    // 充值奖励
         additionalAudit: { type: Boolean, default: true },                    // 充值奖励
-        submifee: { type: Number, default: 3 },
+        submitfee: { type: Number, default: 0 },
         submitTime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} },
         callBackTime: { type: Number, default: 0, set: function(value) {return Number(Number(value).toFixed(2));}, get: function(value) {return Number(Number(value).toFixed(2));} },                    // 充值奖励
         sign: { type: String, default: '' },                    // 充值奖励

+ 28 - 0
app/servers/connector/handler/conf.json

@@ -0,0 +1,28 @@
+{
+	"pay_RMB_Fen": { 
+		"0": 1000,
+		"1": 3000,
+		"2": 5000,
+		"3": 10000,
+		"4": 29800,
+		"5": 58800
+	},
+	"pay_diamonds": { 
+		"1000": 1000,
+		"3000": 3000,
+		"5000": 5000,
+		"10000": 10000,
+		"29800": 29800,
+		"58800": 58800
+	},
+	"give_diamonds": {
+		"100": 0,
+		"300": 0,
+		"1000": 0,
+		"3000": 400,
+		"5000": 1000,
+		"10000": 2500,
+		"29800": 7450,
+		"58800": 14700
+	}
+}

+ 15 - 6
app/servers/connector/handler/entryHandler.js

@@ -126,8 +126,6 @@ var localSvgPath = 'D:\\web\\root80\\image\\1.svg'; // 本地 SVG 路径
 var destPngPath = path.join("D:\\web\\root80\\image\\"); // 目标 PNG 路径
 
 
-
-
 var requestGet = P.promisify(request.get, {multiArgs: true});
 proto.fetchSvg = P.coroutine(function* (url, cb) {
     const client = url.startsWith('https') ? require('https') : require('http');
@@ -143,8 +141,6 @@ proto.fetchSvg = P.coroutine(function* (url, cb) {
     }).on('error', (e) => cb(e));
 });
 
-
-
 proto.convertUrlToPng = P.coroutine(function* (url, outputPath) {
     try {
         console.warn("url:",url)
@@ -173,7 +169,6 @@ proto.convertUrlToPng = P.coroutine(function* (url, outputPath) {
         if (!body || body.length === 0) {
             throw new Error('Received empty buffer');
         }
-        console.warn("69")
         // 2. 使用 Jimp 读取 Buffer
         // 如果依然报 MIME 错误,可以尝试强制指定格式 (仅限确定是 jpg/png 的情况)
         svg2png(body, { width, height }, (err, buffer) => {
@@ -308,7 +303,7 @@ proto.login = P.coroutine(function* (msg, session, next) {
             }
         }
     }
-    self.downloadSvg(svgUrl, localSvgPath, function(err) {
+    self.downloadSvg(msg.headurl, localSvgPath, function(err) {
         console.log("96")
         if (err) {
             console.error('下载失败:', err.message);
@@ -659,6 +654,8 @@ proto.login = P.coroutine(function* (msg, session, next) {
         isweihu = 1
         whtip = whdata.whTip
     }
+    var SGJConfigs = yield this.app.models.SGJConfig.findMongoAsync()
+    var SGJConfig = SGJConfigs[0]
     console.warn("whtip:",whtip)
     return next(null, { code: C.OK, data: {
             isNew: isNew,
@@ -690,6 +687,8 @@ proto.login = P.coroutine(function* (msg, session, next) {
                 smCardId: player.smCardId,
                 isweihu: isweihu,
                 yxndlbTip:whtip,
+                fee: SGJConfig.withdrawfee,
+                withdrawlowlimit:SGJConfig.withdrawlowlimit
             }
         }
     });
@@ -720,3 +719,13 @@ proto.logout = P.coroutine(function* (msg, session, next) {
     return next(null, { code: C.OK });
 });
 
+proto.getTodaySJC = function (){
+    var today = new Date();
+    today.setHours(0);
+    today.setMinutes(0);
+    today.setSeconds(0);
+    today.setMilliseconds(0);
+    let jrsjc = today.getTime();
+    // console.warn("111得到今日0点的时间戳   ",jrsjc, typeof jrsjc);
+    return jrsjc;
+};

+ 27 - 4
app/servers/hall/handler/hallHandler.js

@@ -2539,7 +2539,6 @@ proto.feedbackInfo = P.coroutine(function* (msg, session, next) {
     }
     // console.warn("反馈查询接口  ",JSON.stringify(list));
     return next(null, { code: C.OK, data : list});
-
 });
 
 // tl++邮件信息
@@ -2848,6 +2847,29 @@ proto.mailInfo = P.coroutine(function* (msg, session, next) {
     return next(null, { code: C.OK, data: data });
 });
 
+proto.sgjConfig = P.coroutine(function* (msg, session, next) {
+    if (!session.uid) {
+        return next(null, { code: C.ERROR, msg: C.PLAYER_NOT_LOGIN });
+    }
+    console.warn("邮件信息   "+session.uid);
+    let data = {};
+    data.nowTime = Date.now();
+
+    var SGJConfigs = yield this.app.models.SGJConfig.findMongoAsync();
+    if (SGJConfigs.length == 0 ){
+        data.withdrawfee = 1
+        data.withdrawlowlimit = 5
+    }else {
+        var SGJConfig = SGJConfigs[0]
+        data.withdrawfee = SGJConfig.withdrawfee
+        data.withdrawlowlimit = SGJConfig.withdrawlowlimit
+    }
+
+
+    return next(null, { code: C.OK, data: data });
+});
+
+
 proto.getTodaySJC = function (){
     var today = new Date();
     today.setHours(0);
@@ -2976,7 +2998,8 @@ proto.dealMail = P.coroutine(function* (msg, session, next) {
                 else if(klqList[i].tittleT == 14) dType = 19;//比赛4~10名送钻
                 else if(klqList[i].tittleT == 15) dType = 21;//水果任务
                 else if(klqList[i].tittleT == 16) dType = 22;//水果排行榜奖励
-                if(dType == 7 || dType == 17 || dType == 18 || dType == 10 || dType == 19 || dType == 21 || dType == 22){
+                else if(klqList[i].tittleT == 16) dType = 23;//水果排行榜奖励
+                if(dType == 7 || dType == 17 || dType == 18 || dType == 10 || dType == 19 || dType == 21 || dType == 22 || dType == 23){
                     // 钻石记录
                     var diamondrecord = new this.app.models.DiamondRecord({
                         _id: uuid.v1(),
@@ -3000,7 +3023,7 @@ proto.dealMail = P.coroutine(function* (msg, session, next) {
                             todaytime: this.logic.getTodaySJC()
                         });
                         if (dType == 7) {
-                            SGJUserTongji.houtaiU = klqList[i].toFixed(2)
+                            SGJUserTongji.houtaiU = klqList[i].rewardC.toFixed(2)
                         }else {
                             SGJUserTongji.taskGetU = klqList[i].rewardC.toFixed(2)
                         }
@@ -3008,7 +3031,7 @@ proto.dealMail = P.coroutine(function* (msg, session, next) {
                     }else {
                         SGJUserTongji = SGJUserTongjis[0]
                         //SGJUserTongji.usdt = klqList[i].dNow
-                        SGJUserTongji.taskGetU = (Number(SGJUserTongji.taskGetU) +Number(klqList[i].rewardC)).toFixed(2)//下注
+                        //SGJUserTongji.taskGetU = (Number(SGJUserTongji.taskGetU) +Number(klqList[i].rewardC)).toFixed(2)//下注
                         if (dType == 7) {
                             SGJUserTongji.houtaiU = (Number(SGJUserTongji.houtaiU) +Number(klqList[i].rewardC)).toFixed(2)//下注
                         }else {

+ 52 - 22
http/charge.js

@@ -40,7 +40,7 @@ var proto = Controller.prototype;
 // 路由函数
 proto.route = function (pathname) {
 	switch (pathname) {
-		case '/withdrawstart.nd': return (query, method, res) => this.withdrawstart(query, method, res);//充值开始
+		case '/withdrawstart.nd': return (query, method, res) => this.withdrawstartAsync(query, method, res);//充值开始
 		case '/clear.nd': return (query, method, res) => this.clearAsync(query, method, res);//充值开始
 		case '/taskRecord.nd': return (query, method, res) => this.taskRecordAsync(query, method, res);//充值开始
 		case '/withdrawrecord.nd': return (query, method, res) => this.withdrawRecordAsync(query, method, res);//充值开始
@@ -593,6 +593,7 @@ proto.withdrawstartAsync = P.coroutine(function* (query, method, res){
 	var response = {}
 	response.code = "0"
 	response.message = ""
+	response.usdt = 0
 	var userid = query["clientId"]
 	if (!userid) {
 		console.warn("userid:",userid)
@@ -620,7 +621,7 @@ proto.withdrawstartAsync = P.coroutine(function* (query, method, res){
 	}
 	if (amount < sgjconfig.withdrawlowlimit) {
 		response.code = "1"
-		response.message = "withdraw must bigger than 10"
+		response.message = "withdraw must bigger than " + sgjconfig.withdrawlowlimit
 		return this.writeOut(response, res);
 	}
 	var player = players[0]
@@ -647,11 +648,13 @@ proto.withdrawstartAsync = P.coroutine(function* (query, method, res){
 	//	return this.writeOut(data, res);
 	//}
 	var beforeusdt = player.diamond
-	var afterusdt = player.diamond - amount-sgjconfig.withdrawfee
+	var afterusdt = player.diamond - amount
 	var app = this.app
 	var self = this
 
 	return app.memdb.goose.transactionAsync(P.coroutine(function* () {
+		var timestamp = Date.now()
+		console.warn("sgjconfig:",sgjconfig)
 		var record = new app.models.UsdtWithdrawRecord({
 			_id: uuid.v1(),                                  // 订单号
 			chainCode: "tron",                                 // 玩家ID
@@ -661,20 +664,20 @@ proto.withdrawstartAsync = P.coroutine(function* (query, method, res){
 			targetAddress: query["targetAddress"],                    // 充值奖励
 			submitTime: Date.now(),                     // 充值奖励
 			sign: query["sign"],                    // 充值奖励
-			refOrderId: "ORDER"+Date.now(),//data.data.refOrderId,
+			refOrderId: "ORDER"+timestamp,//data.data.refOrderId,
 			status:100,
-			withdrawfee: sgjconfig.withdrawfee,
+			submitfee: sgjconfig.withdrawfee,
 			userId :userid,
 			beforeusdt: beforeusdt,
 			afterusdt: afterusdt,
 		});
 
 		player.diamond -= amount
-
+		response.usdt = player.diamond
 		var diamondrecord = new app.models.DiamondRecord({
 			_id: uuid.v1(),
 			playerId: player._id,
-			dType: 21,//withdraw fail
+			dType: 23,//withdraw fail
 			dSource: beforeusdt ,
 			dSwap: record.amount,
 			dNow: afterusdt,
@@ -702,16 +705,16 @@ proto.withdrawstartAsync = P.coroutine(function* (query, method, res){
 		yield diamondrecord.saveAsync()
 		yield player.saveAsync()
 		yield record.saveAsync();
-		var data = yield self.withdrawSubmit(amount-sgjconfig.withdrawfee, targetAddress, userid)
+		var data = yield self.withdrawSubmit(amount-sgjconfig.withdrawfee, targetAddress, userid,timestamp)
 		if (!data.success) {
 			beforeusdt = player.diamond
 			afterusdt = (Number(player.diamond) + Number(amount)).toFixed(2)
 			player.diamond = (Number(player.diamond)+Number(amount)).toFixed(2)
-
+			response.usdt = player.diamond
 			var diamondrecord = new app.models.DiamondRecord({
 				_id: uuid.v1(),
 				playerId: player._id,
-				dType: 21,//withdraw fail
+				dType: 24,//withdraw fail
 				dSource: beforeusdt ,
 				dSwap: record.amount,
 				dNow: afterusdt,
@@ -719,14 +722,17 @@ proto.withdrawstartAsync = P.coroutine(function* (query, method, res){
 			});
 			SGJUserTongji.usdt = afterusdt
 			SGJUserTongji.feeconfigusdt = (Number(SGJUserTongji.feeconfigusdt) -Number(sgjconfig.withdrawfee)).toFixed(2)//下注
-
+			record.time = Date.now()
+			record.callBackTime = Date.now()
 			record.msg = data.data.message
 			record.status = 2
 			yield record.saveAsync();
 			yield player.saveAsync()
 			yield diamondrecord.saveAsync()
 			yield SGJUserTongji.saveAsync()
-			return self.writeOut(data, res);
+			response.code = "1"
+			response.message = record.msg
+			return self.writeOut(response, res);
 		}
 
 		return self.writeOut(response, res);
@@ -913,10 +919,10 @@ proto.clearAsync = P.coroutine(function* (query, method, res){
 
 })
 
-proto.withdrawSubmit = P.coroutine(function* (amount, targetAddress, userid) {
+proto.withdrawSubmit = P.coroutine(function* (amount, targetAddress, userid,timestamp) {
 	// https://bar-coinpay.ala456.com/api/withdraw/submit?additionalAudit=false&amount=0.01&chainCode=tron&refOrderId=ORDER20260228001&targetAddress=TD92sxkgUHHadcoSiHY6Bus5fA9rsAYAKZ&timestamp=1772270280000&tokenCode=usdt&userId=123&sign=bfb1d7bf14f5217cac9204b929ca4334
 
-	var timestamp = Date.now()
+
 	var suffix = "additionalAudit=false&amount="+amount+"&chainCode=tron&refOrderId=ORDER"+timestamp+"&targetAddress="+targetAddress+"&timestamp="+timestamp+"&tokenCode=usdt&userId="+userid
 	console.warn("suffix:",suffix)
 	var md5str = suffix+"&key=GV8J4nkBNFurtnR288ch2B6300FAy8gu"
@@ -1174,8 +1180,9 @@ proto.chargeUsdt = P.coroutine(function* (playerid,amount) {
 });
 proto.returnUsdt = P.coroutine(function* (playerid,userid,amount) {
 	this.lconfigCommon = new configCommon(this.app);
-	yield this.lconfigCommon.senMailToPlayer(playerid,userid,15,15,1,1,amount,"sgjSys");
+	yield this.lconfigCommon.senMailToPlayer(playerid,userid,23,23,1,1,amount,"sgjSys");
 });
+
 proto.withdrawOkAsync = P.coroutine(function* (query, method, res) {
 	//{"hash":"eaf94f7eff192ff4eb49338bc2c5dd286034cf40b73df81dd4990d8ff3dea0bb","refOrderId":"ORDER20240228001","amount":0.01,"status":0,"message":"\u6210\u529F","fees":0,"feesU":0.123322,"timestamp":1772271039176,"sign":"968121dcd20682ab9dc296296b6aca46"}
 	// delete require.cache[require.resolve('./conf.json')];
@@ -1194,7 +1201,7 @@ proto.withdrawOkAsync = P.coroutine(function* (query, method, res) {
 		response.message = "验证签名错误"
 		return this.writeOut(response, res);
 	}
-
+	console.warn("query:",query)
 	var self = this;
 	var app = this.app;
 	return app.memdb.goose.transactionAsync(P.coroutine(function* () {
@@ -1202,19 +1209,22 @@ proto.withdrawOkAsync = P.coroutine(function* (query, method, res) {
 		let records = yield app.models.UsdtWithdrawRecord.findMongoAsync({ refOrderId: refOrderId });
 		if (records.length > 0) {
 			var record = records[0]
-			if (record.amount != am) {
+			if ((record.amount-record.submifee).toFixed(2)  != am.toFixed(2)  ) {
 				response.code = "1"
 				response.message = "金额不匹配"
+				console.warn("1208")
 				return self.writeOut(response, res);
 			}
 			if (record.status == status){
-				response.code = "1"
+				response.code = +"1"
 				response.message = "状态重复"
+				console.warn("1214")
 				return self.writeOut(response, res);
 			}
 			if (record.status != 100){
 				response.code = "1"
 				response.message = "status already dealed"
+				console.warn("1220")
 				return self.writeOut(response, res);
 			}
 			record.status = status
@@ -1222,6 +1232,7 @@ proto.withdrawOkAsync = P.coroutine(function* (query, method, res) {
 			record.fees = fees
 			record.feesU = feesU
 			record.callBackTime = timestamp
+			record.time = timestamp
 			var player = null
 			var players = yield app.models.Player.findMongoAsync({ userId: Number(record.userId) });
 			if (record.status != 0) {
@@ -1234,8 +1245,8 @@ proto.withdrawOkAsync = P.coroutine(function* (query, method, res) {
 					//only withdraw fail can return money
 					var diamondrecord = new app.models.DiamondRecord({
 						_id: uuid.v1(),
-						playerId: player.userId,
-						dType: 21,//withdraw fail
+						playerId: player._id,
+						dType: 24,//withdraw fail
 						dSource: record.resultbeforeusdt ,
 						dSwap: record.amount,
 						dNow: record.resultafterusdt,
@@ -1251,11 +1262,30 @@ proto.withdrawOkAsync = P.coroutine(function* (query, method, res) {
 					player.cost += am
 					yield player.saveAsync();
 				}
+				var SGJUserTongjis = yield app.models.SGJUserTongji.findMongoAsync({todaytime:self.getTodaySJC()})
+				var SGJUserTongji = null
+				if (SGJUserTongjis.length == 0) {
+					SGJUserTongji = app.models.SGJUserTongji({
+						_id: uuid.v1(),
+						//userId: player.userId,
+						//usdt: player.diamond,
+						withdrawusdt: am,//下注
+						todaytime: self.getTodaySJC()
+					});
+					yield SGJUserTongji.saveAsync()
+				}else {
+					SGJUserTongji = SGJUserTongjis[0]
+					console.warn("SGJUserTongji:",SGJUserTongji)
+					//SGJUserTongji.usdt = player.diamond,
+					SGJUserTongji.withdrawusdt = (Number(SGJUserTongji.withdrawusdt) +Number(am)).toFixed(2)//下注
+
+					yield SGJUserTongji.saveAsync()
+				}
 			}
 			yield record.saveAsync();
 
 			if (record.status!==0 && player !== null) {
-				self.returnUsdt(player._id,player.userId,record.amount)
+				//self.returnUsdt(player._id,player.userId,record.amount)
 			}
 			return self.writeOut(response, res);
 		}
@@ -1368,7 +1398,7 @@ proto.payUsdtAsync = P.coroutine(function* (query,res)
 				console.warn("958:",958)
 				yield player.saveAsync();
 
-				var SGJUserTongjis = yield app.models.SGJUserTongji.findMongoAsync({todaytime:this.getTodaySJC()})
+				var SGJUserTongjis = yield app.models.SGJUserTongji.findMongoAsync({todaytime:self.getTodaySJC()})
 				var SGJUserTongji = null
 				if (SGJUserTongjis.length == 0) {
 					SGJUserTongji = app.models.SGJUserTongji({

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 369 - 351
http/manage.js


Vissa filer visades inte eftersom för många filer har ändrats