From dd556df997e268153bf1a74616f49b25db11ed3f Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期五, 08 八月 2025 15:37:35 +0800 Subject: [PATCH] 赛事模块 --- cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java | 92 ++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 89 insertions(+), 3 deletions(-) diff --git a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java index 0ade7ca..9024d65 100644 --- a/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java +++ b/cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java @@ -106,7 +106,6 @@ /** * 查询社区世界杯收入--管理后台 - * @param storeId * @return */ @ResponseBody @@ -276,6 +275,16 @@ if(0 == isStudent){ isStudent = 2; } + WorldCup worldCup = worldCupService.getById(worldCupPeople.getWorldCupId()); + if(null == worldCup){ + return ResultUtil.error("当前比赛不存在"); + } + if(worldCup.getStartTime().getTime()>System.currentTimeMillis() || worldCup.getEndTime().getTime()<System.currentTimeMillis()){ + return ResultUtil.error("二维码仅支持在赛事有效期使用"); + } + + + WorldCupPaymentParticipant worldCupPaymentParticipant = worldCupPaymentParticipantService.getOne(new QueryWrapper<WorldCupPaymentParticipant>() .eq("worldCupId", worldCupPeople.getWorldCupId()).eq("participantId", id).eq("participantType", isStudent) .orderByDesc("createTime").last(" limit 0, 1")); @@ -352,6 +361,15 @@ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil startWorldCup(StartWorldCup startWorldCup){ + return worldCupService.startWorldCup(startWorldCup); + } + @ResponseBody + @PostMapping("/api/worldCup/endWorldCup") + @ApiOperation(value = "裁判结束比赛【3.1】", tags = {"APP-个人中心"}) + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil endWorldCup(StartWorldCup startWorldCup){ return worldCupService.startWorldCup(startWorldCup); } @@ -654,7 +672,7 @@ @ApiImplicitParam(name = "id", value = "列表中的id", required = true, dataType = "Long"), @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public ResultUtil cancelMyWorldCup(Long id){ + public ResultUtil cancelMyWorldCup(Long id) throws Exception { return worldCupPaymentService.cancelMyWorldCup(id); } @@ -688,6 +706,26 @@ } worldCupRank.setAppUserId(uid); List<WorldCupRankVo> worldCupRank1 = worldCupCompetitorService.getWorldCupRank(worldCupRank); + return ResultUtil.success(worldCupRank1); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + @ResponseBody + @PostMapping("/api/worldCup/getWorldCupListFromRank") + @ApiOperation(value = "获取报名的赛事 排名使用【3.1】", tags = {"APP-个人中心"}) + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") + }) + public ResultUtil<List<WorldCupListVo>> getWorldCupListFromRank(){ + try { + Integer uid = tokenUtil.getUserIdFormRedis(); + if(null == uid){ + return ResultUtil.tokenErr(); + } + List<WorldCupListVo> worldCupRank1 = worldCupCompetitorService.getWorldCupListFromRank(uid); return ResultUtil.success(worldCupRank1); }catch (Exception e){ e.printStackTrace(); @@ -942,7 +980,7 @@ */ @ResponseBody @PostMapping("/worldCup/cancelWorldCupRefund") - public void cancelWorldCupRefund(@RequestBody Integer id){ + public void cancelWorldCupRefund(@RequestBody Integer id) throws Exception { worldCupService.cancelWorldCupRefund(id); } @@ -988,6 +1026,54 @@ out.close(); } } + /** + * 取消赛事后微信退款回调微信V3回调 + * @param request + * @param response + */ + @ResponseBody + @PostMapping("/base/worldCup/wxRefundWorldCupCallback1") + public void wxRefundWorldCupCallback1(HttpServletRequest request, HttpServletResponse response){ + try { + System.err.println("微信回调"); + System.err.println("请求" + request); + BufferedReader reader = request.getReader(); + String string1 = reader.toString(); + System.err.println("请求reader" + string1); + StringBuilder requestBody = new StringBuilder(); + String line; + while ((line = reader.readLine()) != null) { + requestBody.append(line); + } + System.err.println("全部请求体" + requestBody); + JSONObject jsonObject = JSONObject.parseObject(requestBody.toString()); + JSONObject resource = jsonObject.getJSONObject("resource"); + + AesUtil aesUtil = new AesUtil(WxV3PayConfig.apiV3Key.getBytes(StandardCharsets.UTF_8)); + String decryptedData = aesUtil.decryptToString(resource.getString("associated_data").getBytes(StandardCharsets.UTF_8), resource.getString("nonce").getBytes(StandardCharsets.UTF_8), + resource.getString("ciphertext")); + System.err.println("微信解密的字符串信息" + decryptedData); + JSONObject jsonInfo = (JSONObject) JSONObject.parse(decryptedData); + String code = jsonInfo.getString("out_trade_no"); + String transaction_id = jsonInfo.getString("transaction_id"); + String refund_status = jsonInfo.getString("refund_status"); + String out_refund_no = jsonInfo.getString("out_refund_no"); + if (refund_status.equals("SUCCESS")) { + WorldCupPayment worldCupPayment = worldCupPaymentService.getOne(new QueryWrapper<WorldCupPayment>().eq("code", out_refund_no)); + worldCupPayment.setRefundOrderNo(code); + worldCupPayment.setRefundTime(new Date()); + worldCupPayment.setPayStatus(3); + worldCupPayment.setWorldCupId(null); + worldCupPaymentService.updateById(worldCupPayment); + PrintWriter out = response.getWriter(); + out.write("SUCCESS"); + out.flush(); + out.close(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } /** -- Gitblit v1.7.1