From 03bc927fdb8469c1417f75c2a25a06a0d6b1ae61 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期四, 21 三月 2024 14:44:48 +0800 Subject: [PATCH] 修改bug --- cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java | 139 ++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 120 insertions(+), 19 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 c2abaf0..3d1174c 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 @@ -9,6 +9,7 @@ import com.dsh.other.feignclient.CourseRecordClient; import com.dsh.other.feignclient.account.AppUserClient; import com.dsh.other.feignclient.account.model.AppUser; +import com.dsh.other.model.GetTGameRecord; import com.dsh.other.model.QueryMySiteVo; import com.dsh.other.model.User; import com.dsh.other.service.*; @@ -21,13 +22,17 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @RestController -@RequestMapping("/api/game") +@RequestMapping("") public class GameController { @Autowired @@ -60,7 +65,7 @@ @ResponseBody - @PostMapping("/getIntro") + @PostMapping("/api/game/getIntro") @ApiOperation(value = "获取步骤说明", tags = {"用户—游戏"}) @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @@ -80,7 +85,7 @@ @ResponseBody - @PostMapping("/queryGameList") + @PostMapping("/api/game/queryGameList") @ApiOperation(value = "获取当前场地的游戏列表配置", tags = {"用户—游戏"}) @ApiImplicitParams({ @ApiImplicitParam(value = "siteId", name = "siteId", dataType = "int", required = true), @@ -118,7 +123,7 @@ @ResponseBody - @PostMapping("/gameStartupCheck") + @PostMapping("/api/game/gameStartupCheck") @ApiOperation(value = "扫码启动游戏前的校验(0=不通过,1=通过)", tags = {"用户—游戏"}) @ApiImplicitParams({ @ApiImplicitParam(value = "三方游戏id", name = "gameId", dataType = "int", required = true), @@ -162,7 +167,7 @@ @ResponseBody - @PostMapping("/payGame") + @PostMapping("/api/game/payGame") @ApiOperation(value = "支付游戏", tags = {"用户—游戏"}) @ApiImplicitParams({ @ApiImplicitParam(value = "三方游戏id", name = "gameId", dataType = "int", required = true), @@ -197,7 +202,11 @@ gameRecordService.save(tGameRecord); if (type == 1) { - ResultUtil weixinpay = payMoneyUtil.weixinpay("游戏支付", "", code, config.getCash().toString(), "/base/course/weChatPaymentCourseCallback", "APP", ""); + tGameRecord.setMoney(config.getCash()); + gameRecordService.updateById(tGameRecord); + String params = uid + "_" + gameId + "_" + spaceId + "_" + sutuId+"_"+code+"_"+configId; + ResultUtil weixinpay = payMoneyUtil.weixinpay("游戏支付", params, code, config.getCash().toString(), + "/base/game/wechatPaymentGameCallback", "APP", ""); if (weixinpay.getCode() == 200) { new Thread(new Runnable() { @Override @@ -234,11 +243,9 @@ break; } if ("SUCCESS".equals(s)) { - for (TGameRecord coursePackagePayment : list) { - coursePackagePayment.setStatus(1); - coursePackagePayment.setMoney(config.getCash()); - coursePackagePayment.setOrderNo(transaction_id); - + for (TGameRecord gameRecord : list) { + gameRecord.setStatus(1); + gameRecord.setOrderNo(transaction_id); } gameRecordService.updateBatchById(list); Integer integer = startGame(uid, gameId, spaceId, sutuId); @@ -257,11 +264,12 @@ } return weixinpay; } else if (type == 2) { + tGameRecord.setMoney(config.getCash()); + gameRecordService.updateById(tGameRecord); String smid1=""; String params = uid + "_" + gameId + "_" + spaceId + "_" + sutuId+"_"+code+"_"+configId; // 判断这个课包属于哪个门店 属于哪个运营商 根据运营商 id 获取对应的商户号 - TGame game = gameService.getById(gameId); - + TGame game = gameService.getOne(new QueryWrapper<TGame>().eq("blue", sutuId).or().eq("red", sutuId)); Integer operationId = game.getOperationId(); if (operationId==0){ // 是平台的 @@ -271,7 +279,8 @@ smid1 = smidByOperatorId; } - ResultUtil alipay = payMoneyUtil.alipay(smid1,"游戏支付", "游戏支付", params, code, config.getCash().toString(), "/base/site/gameCallback"); + ResultUtil alipay = payMoneyUtil.alipay(smid1,"游戏支付", "游戏支付", params, code, config.getCash().toString(), + "/base/game/aliPaymentGameCallback"); if (alipay.getCode() == 200) { new Thread(new Runnable() { @Override @@ -302,10 +311,9 @@ break; } if ("TRADE_SUCCESS".equals(s)) { - for (TGameRecord coursePackagePayment : list) { - coursePackagePayment.setStatus(1); - coursePackagePayment.setMoney(config.getCash()); - coursePackagePayment.setOrderNo(tradeNo); + for (TGameRecord gameRecord : list) { + gameRecord.setStatus(1); + gameRecord.setOrderNo(tradeNo); CourseCounsum courseCounsum = new CourseCounsum(); courseCounsum.setChangeType(3); @@ -409,9 +417,102 @@ * @return */ @ResponseBody - @PostMapping("/getTGameBySutuId") + @PostMapping("/api/game/getTGameBySutuId") public TGame getTGameBySutuId(@RequestBody String sutuId){ return gameService.getOne(new QueryWrapper<TGame>().eq("blue", sutuId).or() .eq("red", sutuId).eq("state", 0)); } + + + + @ResponseBody + @PostMapping("/base/game/wechatPaymentGameCallback") + public void wechatPaymentGameCallback(HttpServletRequest request, HttpServletResponse response){ + Map<String, String> map = payMoneyUtil.weixinpayCallback(request); + if(null != map){ + String out_trade_no = map.get("out_trade_no"); + String transaction_id = map.get("transaction_id"); + String result = map.get("result"); + //String params = uid + "_" + gameId + "_" + spaceId + "_" + sutuId+"_"+code+"_"+configId; + String attach = map.get("attach"); + + List<TGameRecord> list = gameRecordService.list(new QueryWrapper<TGameRecord>().eq("number", out_trade_no).eq("payType", 1)); + for (TGameRecord gameRecord : list) { + gameRecord.setStatus(1); + gameRecord.setOrderNo(transaction_id); + + + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setChangeType(3); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("智慧球场;" + gameRecord.getMoney()); + courseCounsum.setAppUserId(gameRecord.getUserId()); + courseRecordClient.save(courseCounsum); + + } + gameRecordService.updateBatchById(list); + String[] s = attach.split("_"); + Integer integer = startGame(Integer.valueOf(s[0]), Integer.valueOf(s[1]), Integer.valueOf(s[2]), Integer.valueOf(s[3])); + + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (IOException e) { + e.printStackTrace(); + } + out.print(result); + out.flush(); + out.close(); + } + } + + @ResponseBody + @PostMapping("/base/game/aliPaymentGameCallback") + public void aliPaymentGameCallback(HttpServletRequest request, HttpServletResponse response){ + Map<String, String> map = payMoneyUtil.alipayCallback(request); + if(null != map){ + String out_trade_no = map.get("out_trade_no"); + String transaction_id = map.get("trade_no"); + //String params = uid + "_" + gameId + "_" + spaceId + "_" + sutuId+"_"+code+"_"+configId; + String attach = map.get("passback_params"); + + List<TGameRecord> list = gameRecordService.list(new QueryWrapper<TGameRecord>().eq("number", out_trade_no).eq("payType", 2)); + for (TGameRecord gameRecord : list) { + gameRecord.setStatus(1); + gameRecord.setOrderNo(transaction_id); + + + CourseCounsum courseCounsum = new CourseCounsum(); + courseCounsum.setChangeType(3); + courseCounsum.setInsertTime(new Date()); + courseCounsum.setReason("智慧球场;" + gameRecord.getMoney()); + courseCounsum.setAppUserId(gameRecord.getUserId()); + courseRecordClient.save(courseCounsum); + + } + gameRecordService.updateBatchById(list); + String[] s = attach.split("_"); + Integer integer = startGame(Integer.valueOf(s[0]), Integer.valueOf(s[1]), Integer.valueOf(s[2]), Integer.valueOf(s[3])); + + PrintWriter out = null; + try { + out = response.getWriter(); + } catch (IOException e) { + e.printStackTrace(); + } + out.print("success"); + out.flush(); + out.close(); + } + } + + + + @ResponseBody + @PostMapping("/base/game/getTGameRecord") + public List<TGameRecord> getTGameRecord(@RequestBody GetTGameRecord getTGameRecord){ + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + return gameRecordService.list(new QueryWrapper<TGameRecord>().eq("userId", getTGameRecord.getAppUserId()).eq("status", 1).in("payType", Arrays.asList(1, 2)) + .last(" and DATE_FORMAT(time, '%Y-%m-%d %H:%i:%s') between '" + sdf.format(getTGameRecord.getStartTiem()) +"' and '" + sdf.format(getTGameRecord.getEndTime()) + "'")); + } } -- Gitblit v1.7.1