From b2c5b8c958ba187246302f835811b3739a50f212 Mon Sep 17 00:00:00 2001 From: 44323 <443237572@qq.com> Date: 星期二, 21 五月 2024 14:13:07 +0800 Subject: [PATCH] 代码提交 --- ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java | 83 ++++++++++++++++++++++++++--------------- 1 files changed, 53 insertions(+), 30 deletions(-) diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java index 8fd56b1..9065f53 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java @@ -94,6 +94,7 @@ } vipInfoVO.setTime(datum.getTime()); vipInfoVO.setAmount(datum.getAmount()); + vipInfoVOS.add(vipInfoVO); } return AjaxResult.ok(vipInfoVOS); } @@ -428,31 +429,24 @@ if (StringUtils.hasLength(headImg)){ byId.setHeadImg(headImg); } - userService.updateById(byId); + userService.saveOrUpdate(byId); return AjaxResult.success("修改成功"); } - @PostMapping("/vipBack/{id}") - @ApiOperation(value = "会员退款", tags = {"管理后台-会员退款"}) - public R vipBack(@PathVariable("id") Integer id) throws AlipayApiException { - TVipOrder byId = vipOrderService.getById(id); - // 外部订单号 - String transactionId = byId.getTransactionId(); - // 内部订单号 - String outTradeNo = byId.getOutTradeNo(); - switch (byId.getPayType()){ - case 1: - // 微信退款 - Map<String, String> stringStringMap = payMoneyUtil.wxRefund(transactionId, outTradeNo, byId.getMoney().toString(), byId.getMoney().toString(), "/base/wxRefund"); - if (stringStringMap.get("code").equals("SUCCESS")){ - byId.setPayState(3); - byId.setBackTime(new Date()); - vipOrderService.updateById(byId); - // 用户的vip剩余时间减少 - Calendar calendar = Calendar.getInstance(); - calendar.setTime(new Date()); - calendar.add(Calendar.MONTH, -byId.getCount()); - Date dateAfterOneMonth = calendar.getTime(); - Integer userId = byId.getUserId(); + @ResponseBody + @PostMapping("/base/wxRefund") + public void cancelMySiteCallback(HttpServletRequest request, HttpServletResponse response) { + try { + Map<String, String> map = payMoneyUtil.wxRefundCallback(request); + if (null != map) { + String code = map.get("out_refund_no"); + String refund_id = map.get("refund_id"); + String result = map.get("result"); + TVipOrder one = vipOrderService.getOne(new QueryWrapper<TVipOrder>() + .eq("outTradeNo", code) + .eq("payState", 3)); + one.setBackTime(new Date()); + vipOrderService.updateById(one); + Integer userId = one.getUserId(); TUser byId1 = userService.getById(userId); // 判断用户是不是第一次充值 List<TVipOrder> list = vipOrderService.list(new QueryWrapper<TVipOrder>() @@ -473,14 +467,46 @@ userService.updateById(byId1); } - return R.ok(); - }else{ - return R.fail(stringStringMap.get("msg")); + PrintWriter out = response.getWriter(); + out.write(result); + out.flush(); + out.close(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + @PostMapping("/vipBack/{id}") + @ApiOperation(value = "会员退款", tags = {"管理后台-会员退款"}) + public R vipBack(@PathVariable("id") Integer id) throws AlipayApiException { + TVipOrder byId = vipOrderService.getById(id); + // 外部订单号 + String transactionId = byId.getTransactionId(); + // 内部订单号 + String outTradeNo = byId.getOutTradeNo(); + switch (byId.getPayType()){ + case 1: + // 微信退款 + Map<String, String> stringStringMap = payMoneyUtil.wxRefund(transactionId, outTradeNo, byId.getMoney().toString(), byId.getMoney().toString(), "/base/wxRefund"); + if (null == stringStringMap) { + return R.fail("取消退款异常"); } + String result_code = stringStringMap.get("result_code"); + if (!"SUCCESS".equals(result_code)) { + return R.fail(stringStringMap.get("return_msg")); + } + byId.setPayState(3); + vipOrderService.updateById(byId); case 2: // 支付宝退款 Map<String, String> stringStringMap1 = payMoneyUtil.aliRefund(transactionId,byId.getMoney().toString()); - if (stringStringMap1.get("code").equals("10000")){ + if (null == stringStringMap1) { + return R.fail("取消退款异常"); + } + String code = stringStringMap1.get("code"); + if (!"10000".equals(code)) { + return R.fail(stringStringMap1.get("return_msg")); + } byId.setPayState(3); byId.setBackTime(new Date()); vipOrderService.updateById(byId); @@ -510,9 +536,6 @@ userService.updateById(byId1); } return R.ok(); - }else{ - return R.fail(stringStringMap1.get("msg")); - } } return R.ok(); } -- Gitblit v1.7.1