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