From f9ce347bc1325ec05704b1213cdafdd9db8dd578 Mon Sep 17 00:00:00 2001 From: 44323 <443237572@qq.com> Date: 星期一, 29 一月 2024 11:25:01 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PlayPai --- cloud-server-other/src/main/java/com/dsh/other/controller/GameController.java | 105 ++++++++++++++++++++++++++++++++-------------------- 1 files changed, 64 insertions(+), 41 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 c14da34..3d31715 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 @@ -10,13 +10,13 @@ import com.dsh.other.feignclient.account.AppUserClient; import com.dsh.other.feignclient.account.model.AppUser; import com.dsh.other.model.QueryMySiteVo; +import com.dsh.other.model.User; import com.dsh.other.service.*; import com.dsh.other.util.*; import com.dsh.other.util.httpClinet.HttpResult; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import net.bytebuddy.asm.Advice; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -46,7 +46,7 @@ @Autowired private TokenUtil tokenUtil; - @Autowired + @Resource private AppUserClient appUserClient; @Autowired @@ -54,6 +54,12 @@ @Resource private CourseRecordClient courseRecordClient; + + @Autowired + private IUserService userService; + + @Autowired + private ISiteBookingService siteBookingService; @ResponseBody @@ -108,9 +114,7 @@ List<TGame> list = gameService.list(new LambdaQueryWrapper<TGame>().eq(TGame::getSiteId, siteId).eq(TGame::getStoreId, storeId).eq(TGame::getState, 0)); if (list.size() > 0) { Integer id = list.get(0).getId(); -// tGameConfigs = gameConfigService.list(new LambdaQueryWrapper<TGameConfig>().eq(TGameConfig::getOtherId, id)); tGameConfigs = gameConfigService.listJs(id); - } List<TGameConfig> filteredList = tGameConfigs.stream() .filter(gameConfig -> !gameConfig.getImg().isEmpty()) @@ -121,9 +125,50 @@ return ResultUtil.runErr(); } } - private String smid = "2088330203191220";//平台支付宝商户号 - @Autowired - private ISiteService siteService; + + + @ResponseBody + @PostMapping("/gameStartupCheck") + @ApiOperation(value = "扫码启动游戏前的校验(0=不通过,1=通过)", tags = {"用户—游戏"}) + @ApiImplicitParams({ + @ApiImplicitParam(value = "三方游戏id", name = "gameId", dataType = "int", required = true), + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), + }) + public ResultUtil<Integer> gameStartupCheck(Integer gameId){ + try { + Integer uid = tokenUtil.getUserIdFormRedis(); + if (null == uid) { + return ResultUtil.tokenErr(); + } + //判断当前用户是否是员工 + AppUser appUser1 = appUserClient.queryAppUser(uid); + User one = userService.getOne(new QueryWrapper<User>().eq("phone", appUser1.getPhone()).eq("status", 1)); + if (null != one) { + return ResultUtil.success(1); + } + //普通用户校验当前时间是否在预约时间段内 + TGame game = gameService.getById(gameId); + Integer siteId = game.getSiteId(); + SiteBooking siteBooking = siteBookingService.getOne(new QueryWrapper<SiteBooking>() + .eq("state", 1) + .in("status", Arrays.asList(1, 2)) + .eq("appUserId", uid) + .eq("siteId", siteId) + .last(" and now() between startTime and endTime") + ); + return ResultUtil.success(null == siteBooking ? 0 : 1); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + + + + + @ResponseBody @PostMapping("/payGame") @ApiOperation(value = "支付游戏", tags = {"用户—游戏"}) @@ -141,6 +186,13 @@ if (null == uid) { return ResultUtil.tokenErr(); } + //判断当前用户是否是员工 + AppUser appUser1 = appUserClient.queryAppUser(uid); + User one = userService.getOne(new QueryWrapper<User>().eq("phone", appUser1.getPhone()).eq("status", 1)); + if (null != one) { + Integer integer = startGame(uid, gameId, spaceId, sutuId); + return ResultUtil.success(); + } SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5); TGameConfig config = gameConfigService.getById(configId); @@ -151,6 +203,7 @@ tGameRecord.setNumber(code); tGameRecord.setTime(new Date()); gameRecordService.save(tGameRecord); + if (type == 1) { ResultUtil weixinpay = payMoneyUtil.weixinpay("游戏支付", "", code, config.getCash().toString(), "/base/course/weChatPaymentCourseCallback", "APP", ""); if (weixinpay.getCode() == 200) { @@ -210,22 +263,8 @@ } return weixinpay; } else if (type == 2) { -// Integer gameId, Integer configId,Integer type,Integer sutuId,Integer spaceId; - String smid1=""; - String params = uid + "_" + gameId + "_" + spaceId + "_" + sutuId+"_"+code+"_"+configId; - // 判断这个课包属于哪个门店 属于哪个运营商 根据运营商 id 获取对应的商户号 - TGame game = gameService.getById(gameId); - - Integer operationId = game.getOperationId(); - if (operationId==0){ - // 是平台的 - smid1 = smid; - }else{ - String smidByOperatorId = siteService.getSMIDByOperatorId(operationId); - smid1 = smidByOperatorId; - } - - ResultUtil alipay = payMoneyUtil.alipay(smid1,"游戏支付", "游戏支付", params, code, config.getCash().toString(), "/base/site/gameCallback"); + String params = uid + "_" + gameId + "_" + spaceId + "_" + sutuId + "_" + code + "_" + configId; + ResultUtil alipay = payMoneyUtil.alipay("游戏支付", "游戏支付", params, code, config.getCash().toString(), "/base/site/gameCallback"); if (alipay.getCode() == 200) { new Thread(new Runnable() { @Override @@ -250,9 +289,6 @@ * TRADE_SUCCESS(交易支付成功)、 * TRADE_FINISHED(交易结束,不可退款) */ -// Map<String, String> data1 = resultUtil.getData(); -// String s = data1.get("tradeStatus"); -// String tradeNo = data1.get("tradeNo"); String tradeNo = resultUtil.getTradeNo(); String s = resultUtil.getTradeStatus(); if ("TRADE_CLOSED".equals(s) || "TRADE_FINISHED".equals(s) || num == 10) { @@ -263,28 +299,17 @@ coursePackagePayment.setStatus(1); coursePackagePayment.setMoney(config.getCash()); coursePackagePayment.setOrderNo(tradeNo); + CourseCounsum courseCounsum = new CourseCounsum(); -// courseCounsum.setPaymentId(paymentId); courseCounsum.setChangeType(3); courseCounsum.setInsertTime(new Date()); courseCounsum.setReason("智慧球场;" + config.getCash()); courseCounsum.setAppUserId(uid); courseRecordClient.save(courseCounsum); + } gameRecordService.updateBatchById(list); Integer integer = startGame(uid, 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)) { @@ -336,8 +361,6 @@ e.printStackTrace(); return ResultUtil.runErr(); } - - } -- Gitblit v1.7.1