From c560f1a14ae1fc468d90e50e6a32d805295875da Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 01 九月 2025 15:35:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0' into 2.0
---
cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java | 188 ++++++++++++++++-------------------------------
1 files changed, 64 insertions(+), 124 deletions(-)
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java
index cf6861a..83c0f5a 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java
@@ -206,14 +206,6 @@
}
Site site = siteService.getById(spaceId);
Store store = storeService.getById(site.getStoreId());
-
- // 是否分账 0否1是
- int isFenZhang= 1;
- String merchantNumber = "";
- if (store.getOperatorId()==null || store.getOperatorId()==0){
- // 平台
- isFenZhang = 0;
- }
//判断当前用户是否是员工
AppUser appUser1 = appUserClient.queryAppUser(uid);
List<User> one = userService.list(new QueryWrapper<User>().eq("phone", appUser1.getPhone()).eq("status", 1));
@@ -252,7 +244,7 @@
return ResultUtil.error("运营商未配置微信商户号,获取支付失败!");
}
return payMoneyUtil.weixinpayV3(smidVx,"游戏支付"
- ,code,"/base/huimin/callBack/wechatPaymentGameCallback1",
+ ,code,"/base/game/wechatPaymentGameCallback1",
config.getCash().toString(),params);
}
@@ -264,9 +256,10 @@
gameRecordService.updateById(tGameRecord);
String smid1="";
String params = uid + "_" + gameId + "_" + spaceId + "_" + sutuId+"_"+code+"_"+ configId + "_" + gameType;
- // 判断这个课包属于哪个门店 属于哪个运营商 根据运营商 id 获取对应的商户号
+ // 判断属于哪个运营商 根据运营商 id 获取对应的商户号
TGame game = gameService.getOne(new QueryWrapper<TGame>().eq("blue", sutuId).or().eq("red", sutuId));
- Integer operationId = game.getOperationId();
+ Store byId = storeService.getById(game.getStoreId());
+ Integer operationId = byId.getOperatorId();
if (operationId==0){
// 是平台的
smid1 = smid;
@@ -277,75 +270,66 @@
ResultUtil alipay = payMoneyUtil.alipay(smid1,"游戏支付", "游戏支付", params, code, config.getCash().toString(),
"/base/game/aliPaymentGameCallback");
-// if (alipay.getCode() == 200) {
-// new Thread(new Runnable() {
-// @Override
-// public void run() {
-// try {
-// int num = 1;
-// int wait = 0;
-// while (num <= 10) {
-// int min = 5000;
-// wait += (min * num);
-// Thread.sleep(wait);
-// List<TGameRecord> list = gameRecordService.list(new QueryWrapper<TGameRecord>().eq("number", code).eq("payType", 2));
-// TGameRecord one = list.get(0);
-// if (one.getStatus() == 1) {
-// break;
-// }
-// AlipayTradeQueryResponse resultUtil = payMoneyUtil.queryALIOrder(code);
-// if (resultUtil.getCode().equals("10000") && one.getStatus() == 0) {
-// /**
-// * WAIT_BUYER_PAY(交易创建,等待买家付款)、
-// * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、
-// * TRADE_SUCCESS(交易支付成功)、
-// * TRADE_FINISHED(交易结束,不可退款)
-// */
-// String tradeNo = resultUtil.getTradeNo();
-// String s = resultUtil.getTradeStatus();
-// if ("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10) {
-// break;
-// }
-// if ("TRADE_SUCCESS".equals(s)) {
-// for (TGameRecord gameRecord : list) {
-// gameRecord.setStatus(1);
-// gameRecord.setOrderNo(tradeNo);
-//
-// CourseCounsum courseCounsum = new CourseCounsum();
-// courseCounsum.setChangeType(3);
-// courseCounsum.setInsertTime(new Date());
-// courseCounsum.setReason("智慧球场;" + config.getCash());
-// courseCounsum.setAppUserId(uid);
-// courseRecordClient.save(courseCounsum);
-//
-// }
-// gameRecordService.updateBatchById(list);
-// Integer integer = startGame(uid, gameType, gameId, spaceId, sutuId);
-// // 判断这个课包属于哪个门店 属于哪个运营商 根据运营商 id 获取对应的商户号
-// TGame game = gameService.getById(gameId);
-// String smid2="";
-// Integer operationId = game.getOperationId();
-// if (operationId==0){
-// // 是平台的
-// smid2 = smid;
-// }else{
-// String smidByOperatorId = siteService.getSMIDByOperatorId(operationId);
-// smid2 = smidByOperatorId;
-// }
-// payMoneyUtil.confirm(smid2,code,tradeNo,config.getCash().toString());
-// break;
-// }
-// if ("WAIT_BUYER_PAY".equals(s)) {
-// num++;
-// }
-// }
-// }
-// } catch (Exception e) {
-// e.printStackTrace();
-// }
-// }
-// }).start();
-// }
+ if (alipay.getCode() == 200) {
+ String finalSmid = smid1;
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ int num = 1;
+ int wait = 0;
+ while (num <= 10) {
+ int min = 5000;
+ wait += (min * num);
+ Thread.sleep(wait);
+ List<TGameRecord> list = gameRecordService.list(new QueryWrapper<TGameRecord>().eq("number", code).eq("payType", 2));
+ TGameRecord one = list.get(0);
+ if (one.getStatus() == 1) {
+ break;
+ }
+ AlipayTradeQueryResponse resultUtil = payMoneyUtil.queryALIOrder(code);
+ if (resultUtil.getCode().equals("10000") && one.getStatus() == 0) {
+ /**
+ * WAIT_BUYER_PAY(交易创建,等待买家付款)、
+ * TRADE_CLOSED(未付款交易超时关闭,或支付完成后全额退款)、
+ * TRADE_SUCCESS(交易支付成功)、
+ * TRADE_FINISHED(交易结束,不可退款)
+ */
+ String tradeNo = resultUtil.getTradeNo();
+ String s = resultUtil.getTradeStatus();
+ if ("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10) {
+ break;
+ }
+ if ("TRADE_SUCCESS".equals(s)) {
+ for (TGameRecord gameRecord : list) {
+ gameRecord.setStatus(1);
+ gameRecord.setOrderNo(tradeNo);
+
+ CourseCounsum courseCounsum = new CourseCounsum();
+ courseCounsum.setChangeType(3);
+ courseCounsum.setInsertTime(new Date());
+ courseCounsum.setReason("智慧球场;" + config.getCash());
+ courseCounsum.setAppUserId(uid);
+ courseRecordClient.save(courseCounsum);
+
+ }
+ gameRecordService.updateBatchById(list);
+ Integer integer = startGame(uid, gameType, gameId, spaceId, sutuId);
+ Thread.sleep(30000);
+ payMoneyUtil.confirm(finalSmid, code, one.getOrderNo(), config.getCash().toString());
+ break;
+ }
+ if ("WAIT_BUYER_PAY".equals(s)) {
+ num++;
+ }
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }).start();
+ }
return alipay;
} else if (type == 3) {
tGameRecord.setMoney(config.getPlayCoin());
@@ -481,50 +465,6 @@
Integer integer = startGame(Integer.valueOf(s[0]), Integer.valueOf(s[6]), Integer.valueOf(s[1]), Integer.valueOf(s[2]), Integer.valueOf(s[3]));
TGameRecord one = gameRecordService.getOne(new QueryWrapper<TGameRecord>().eq("number", out_trade_no).eq("payType", 1));
System.err.println("游戏支付记录"+one);
-// if (one!=null){
-// Integer gameId = one.getGameId();
-// Site byId1 = siteService.getById(one.getSiteId());
-// Store byId = storeService.getById(byId1.getStoreId());
-// if (byId!=null){
-// if (byId.getOperatorId()!=null && byId.getOperatorId()!=0){
-// // 休眠两分钟后再调用分账接口 避免提示订单正在处理中
-// Thread.sleep(120000);
-// // 根据运营商id获取对应运营商分账比例 返回格式: 微信分账比例,支付宝分账比例
-// OperatorUser operatorId = operatorUserService.getOne(
-// new QueryWrapper<OperatorUser>().eq("operatorId",byId.getOperatorId())
-// );
-// if (operatorId.getWechatProportion() == null){
-// operatorId.setWechatProportion("0");
-// }
-// if (operatorId.getAlipayProportion() == null){
-// operatorId.setAlipayProportion("0");
-// }
-// String proportion= operatorId.getWechatProportion()+","+operatorId.getAlipayProportion();
-// String[] split = proportion.split(",");
-// String s1 = split[0];
-// if (!s1.equals("未设置")){
-// BigDecimal bigDecimal = new BigDecimal(s1);
-// // 分账比例
-// BigDecimal bigDecimal1 = bigDecimal.divide(new BigDecimal(100)).setScale(2);
-// // 微信商户号
-// String s2 =siteService.getmerchantNumberByOperatorId(byId.getOperatorId());
-// String nonce_str = UUIDUtil.getRandomCode(16);
-//
-// ResultUtil fenzhang = payMoneyUtil.fenzhang(transaction_id, one.getMoney().multiply(bigDecimal1), s2,nonce_str,"玩游戏分账");
-// if (!fenzhang.getCode().equals(200)){
-// System.err.println("分账失败 原因是:"+fenzhang.getMsg());
-// }else{
-// one.setFenzhangNo(fenzhang.getData().toString());
-// one.setFenzhangOrderNo(nonce_str);
-// one.setFenzhangAmount(one.getMoney().multiply(bigDecimal1));
-// gameRecordService.updateById(one);
-// }
-// }
-// }
-// }
-//
-// }
-
PrintWriter out = null;
try {
out = response.getWriter();
--
Gitblit v1.7.1