From b96705d1597c3ec1df4322b68e8b97b465c22ef8 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 10 十二月 2025 10:07:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/CourseController.java |   60 +++++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 37 insertions(+), 23 deletions(-)

diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/CourseController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/CourseController.java
index 6f3c94b..594fa68 100644
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/CourseController.java
+++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/api/CourseController.java
@@ -3,7 +3,6 @@
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.google.common.collect.ImmutableMap;
-import com.ruoyi.common.core.domain.BasePage;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.OrderNos;
@@ -11,18 +10,16 @@
 import com.ruoyi.system.model.TAppUser;
 import com.ruoyi.system.model.TCourse;
 import com.ruoyi.system.model.TCourseOrder;
-import com.ruoyi.system.model.TEmploymentInfo;
 import com.ruoyi.system.query.CourseOrderListQuery;
 import com.ruoyi.system.query.GetCourseListQuery;
 import com.ruoyi.system.service.TAppUserService;
 import com.ruoyi.system.service.TCourseOrderService;
 import com.ruoyi.system.service.TCourseService;
-import com.ruoyi.system.service.TEmploymentInfoService;
 import com.ruoyi.system.task.base.QuartzManager;
 import com.ruoyi.system.task.base.TimeJobType;
 import com.ruoyi.system.task.jobs.OrderJob;
 import com.ruoyi.system.wxPay.model.WeixinPayProperties;
-import com.ruoyi.system.wxPay.model.WxPaymentRefundModel;
+import com.ruoyi.system.wxPay.utils.WxRefundUtil;
 import com.ruoyi.system.wxPay.utils.WxV3Pay;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -87,6 +84,7 @@
         Page<TCourseOrder> page = new Page<>(query.getPageNum(), query.getPageSize());
         Page<TCourseOrder> courseOrderPage = courseOrderService.page(page, Wrappers.<TCourseOrder>lambdaQuery()
                 .eq(TCourseOrder::getAppUserId, userId)
+                .ne(TCourseOrder::getPayStatus, 4)
                 .eq(Objects.nonNull(query.getPayStatus()),TCourseOrder::getPayStatus, query.getPayStatus())
                 .orderByDesc(TCourseOrder::getCreateTime));
         List<TCourseOrder> records = courseOrderPage.getRecords();
@@ -149,6 +147,7 @@
             );
             Map<String, Object> result = wxV3Pay.jsApi(courseOrder.getOrderNumber(), course.getCourseCost().multiply(BigDecimal.valueOf(100)).longValue(), appUser.getOpenId(),"购买课程","");
             return R.ok(result);
+//            return R.ok();
         }
         return R.fail("报名失败");
     }
@@ -156,15 +155,19 @@
     @PostMapping("/payOrder")
     @ApiOperation(value = "课程模块--支付订单")
     public R<Map<String, Object>> payOrder(@RequestBody TCourseOrder courseOrder) {
-        String userId = tokenService.getLoginUserApplet().getUserId();
-        TAppUser appUser = appUserService.getById(userId);
+//        String userId = tokenService.getLoginUserApplet().getUserId();
+//        TAppUser appUser = appUserService.getById(userId);
         TCourseOrder courseOrder1 = courseOrderService.getById(courseOrder.getId());
-        if(!userId.equals(courseOrder1.getAppUserId())){
-            return R.fail("无权限操作");
-        }
+//        if(!userId.equals(courseOrder1.getAppUserId())){
+//            return R.fail("无权限操作");
+//        }
         courseOrder1.setOrderNumber(OrderNos.getDid());
+        courseOrder1.setRealName(courseOrder.getRealName());
+        courseOrder1.setUserPhone(courseOrder.getUserPhone());
+        courseOrder1.setIdCard(courseOrder.getIdCard());
+
         courseOrderService.updateById(courseOrder1);
-        Map<String, Object> result = wxV3Pay.jsApi(courseOrder1.getOrderNumber(), courseOrder1.getPayMoney().multiply(BigDecimal.valueOf(100)).longValue(), appUser.getOpenId(),"购买课程","");
+        Map<String, Object> result = wxV3Pay.jsApi(courseOrder1.getOrderNumber(), courseOrder1.getPayMoney().multiply(BigDecimal.valueOf(100)).longValue(), "oz71-1_OevadwmESB_IFAW7PucWY","购买课程","");
         return R.ok(result);
     }
 
@@ -176,7 +179,7 @@
         TCourseOrder courseOrder1 = courseOrderService.getById(courseOrder.getId());
         courseOrder1.setRefundReason(courseOrder.getRefundReason());
         courseOrder1.setRefundReasonPictures(courseOrder.getRefundReasonPictures());
-        courseOrder1.setPayStatus(6);
+
         courseOrder1.setRequestRefundTime(LocalDateTime.now());
         courseOrder1.setRefundMoney(courseOrder1.getPayMoney());
 
@@ -186,6 +189,7 @@
         if(courseOrder1.getPayStatus()!=2){
             return R.fail("状态不允许退款");
         }
+        courseOrder1.setPayStatus(6);
         LocalDateTime payTime = courseOrder1.getPayTime();
         if(payTime==null){
             return R.fail("状态不允许退款");
@@ -197,19 +201,29 @@
             courseOrder1.setRefundStatus(1);
             courseOrderService.updateById(courseOrder1);
         }else {
-            WxPaymentRefundModel refundModel = new WxPaymentRefundModel();
-            refundModel.setSub_mchid(weixinPayProperties.getMchId());
-            refundModel.setSp_appid(weixinPayProperties.getAppId());
-            refundModel.setTransaction_id(courseOrder1.getTransactionId());
-            refundModel.setOut_trade_no(courseOrder1.getOrderNumber());
-            refundModel.setOut_refund_no(OrderNos.getDid());
-            refundModel.setReason(courseOrder1.getRefundReason());
-            refundModel.setNotify_url("");
-            refundModel.setFunds_account("AVAILABLE");
-            refundModel.setAmount(new WxPaymentRefundModel.RefundAmount(courseOrder1.getPayMoney().multiply(BigDecimal.valueOf(100)).intValue(), "CNY", courseOrder1.getPayMoney().multiply(BigDecimal.valueOf(100)).intValue()));
-            Map<String, Object> refund = wxV3Pay.refund(refundModel);
-
+            String outRefundNo = OrderNos.getDid();
+            courseOrder1.setRefundNumber(outRefundNo);
+            courseOrderService.updateById(courseOrder1);
+//            WxPaymentRefundModel refundModel = new WxPaymentRefundModel();
+////            refundModel.setSub_mchid(weixinPayProperties.getMchId());
+////            refundModel.setSp_appid(weixinPayProperties.getAppId());
+////            refundModel.setTransaction_id(courseOrder1.getTransactionId());
+//            refundModel.setOut_trade_no(courseOrder1.getOrderNumber());
+//            refundModel.setOut_refund_no(OrderNos.getDid());
+//            refundModel.setReason(courseOrder1.getRefundReason());
+//            refundModel.setGoods_detail(new ArrayList<>());
+//            refundModel.setAmount(new WxPaymentRefundModel.RefundAmount(courseOrder1.getPayMoney().multiply(BigDecimal.valueOf(100)).intValue(), "CNY", courseOrder1.getPayMoney().multiply(BigDecimal.valueOf(100)).intValue()));
+//            Map<String, Object> refund = wxV3Pay.refund(refundModel);
+//            System.out.println(refund);
+            String result = wxRefundUtil.refund(courseOrder1.getPayMoney().multiply(BigDecimal.valueOf(100)).intValue(), courseOrder1.getOrderNumber(),outRefundNo);
+            if(result!=null){
+                return R.fail(result);
+            }
         }
         return R.ok();
     }
+
+    @Autowired
+    private WxRefundUtil wxRefundUtil;
+
 }

--
Gitblit v1.7.1