From c5857a50d688d0c42b3893854e6f30dc45e61ca9 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 11 十一月 2024 22:32:12 +0800
Subject: [PATCH] 代码提交

---
 xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/service/OrderService.java                       |    2 
 xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java |    6 +++
 xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/client/ClientOrderController.java    |    4 +
 xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/service/impl/OrderServiceImpl.java              |   79 ++++++++++++++++++++++-----------------
 4 files changed, 54 insertions(+), 37 deletions(-)

diff --git a/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java b/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java
index 3fb34cf..8be74de 100644
--- a/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java
+++ b/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java
@@ -646,6 +646,12 @@
             }else{
                 clientCourseVO.setIsVip(0);
             }
+            List<Long> collect9 = data.stream().map(AppUser::getId).collect(Collectors.toList());
+            if (!collect9.isEmpty()){
+                if (collect9.contains(userId)){
+                    clientCourseVO.setIsBuy(1);
+                }
+            }
             if(byId.getChargeType() != 1){
                 List<CourseChapter> list = courseChapterService.lambdaQuery().eq(CourseChapter::getCourseId, byId.getId())
                         .list();
diff --git a/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/client/ClientOrderController.java b/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/client/ClientOrderController.java
index a8bb03f..ecfabb9 100644
--- a/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/client/ClientOrderController.java
+++ b/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/client/ClientOrderController.java
@@ -306,6 +306,7 @@
     @ApiOperation(value = "创建支付订单", notes = "微信|支付宝")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "targetId", value = "目标id 订单类型为会员和充值时不传", dataType = "Long", required = false),
+            @ApiImplicitParam(name = "orderId", value = "订单id 待支付时传", dataType = "Long", required = false),
             @ApiImplicitParam(name = "orderFrom", value = "订单来源 1=冥想音频 2=课程 3=购买会员 4充值", dataType = "Integer", required = true),
             @ApiImplicitParam(name = "receiverId", value = "被赠送课程APP用户id", dataType = "Long", required = false),
             @ApiImplicitParam(name = "balanceFlag", value = "是否使用余额抵扣 1=是 2=否", dataType = "Integer", required = false),
@@ -315,6 +316,7 @@
     })
     public R<ClientPlaceOrderVO> placeOrder(
             @RequestParam(value = "targetId", required = false) Long targetId,
+            @RequestParam(value = "orderId", required = false) Long orderId,
             @RequestParam(value = "orderFrom") Integer orderFrom,
             @RequestParam(value = "receiverId", required = false) Long receiverId,
             @RequestParam(value = "balanceFlag", required = false) Integer balanceFlag,
@@ -325,7 +327,7 @@
         try {
 
             return R.ok(
-                    orderService.placeOrder(targetId, orderFrom, receiverId,
+                    orderService.placeOrder(targetId, orderFrom, receiverId,orderId,
                             balanceFlag, payType,amount,vipType));
         } catch (Exception e) {
             throw new RuntimeException(e);
diff --git a/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/service/OrderService.java b/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/service/OrderService.java
index 75d803e..724763c 100644
--- a/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/service/OrderService.java
+++ b/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/service/OrderService.java
@@ -28,7 +28,7 @@
      * @return 下单返回数据视图对象
      * @see com.xinquan.order.domain.vo.ClientPlaceOrderVO
      */
-    ClientPlaceOrderVO placeOrder(Long targetId, Integer orderFrom, Long receiverId,
+    ClientPlaceOrderVO placeOrder(Long targetId, Integer orderFrom, Long receiverId,Long orderId,
             Integer balanceFlag, Integer payType,BigDecimal amount,Integer vipType) throws Exception;
 
     /**
diff --git a/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/service/impl/OrderServiceImpl.java b/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/service/impl/OrderServiceImpl.java
index 55b0678..d016a81 100644
--- a/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/service/impl/OrderServiceImpl.java
+++ b/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/service/impl/OrderServiceImpl.java
@@ -76,7 +76,7 @@
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public ClientPlaceOrderVO placeOrder(Long targetId, Integer orderFrom, Long receiverId,
+    public ClientPlaceOrderVO placeOrder(Long targetId, Integer orderFrom, Long receiverId, Long orderId,
             Integer balanceFlag, Integer payType,BigDecimal amount,Integer vipType) throws Exception {
         // 获取当前登录用户id
         LoginUser loginUser = tokenService.getLoginUser();
@@ -91,7 +91,6 @@
         AppUser appUser = getAppUserById(userId);
         ClientPlaceOrderVO clientPlaceOrderVO = new ClientPlaceOrderVO();
         Order order = new Order();
-        order.setPayType(payType);
         // 购买冥想音频
         if (orderFrom == 1) {
             Meditation meditation = remoteMeditationService.getMeditationById(targetId,
@@ -101,23 +100,29 @@
             String wxOpenId = appUser.getWxOpenId();
             // 创建订单
             String orderNo = OrderUtil.getOrderNoForPrefix("MX");
-            order.setOrderFrom(orderFrom);
-            order.setBizOrderNo(orderNo);
-            order.setBusinessId(meditation.getId());
-            order.setAppUserId(userId);
-            order.setRealPayAmount(meditation.getGeneralPrice());
-            order.setPayType(payType);
-            order.setTotalAmount(meditation.getGeneralPrice());
-            order.setGiveUserId(receiverId);
-            this.save(order);
-            Long orderId = order.getId();
+            if (orderId==null){
+                order.setPayType(payType);
+                order.setOrderFrom(orderFrom);
+                order.setBizOrderNo(orderNo);
+                order.setBusinessId(meditation.getId());
+                order.setAppUserId(userId);
+                order.setRealPayAmount(meditation.getGeneralPrice());
+                order.setPayType(payType);
+                order.setTotalAmount(meditation.getGeneralPrice());
+                order.setGiveUserId(receiverId);
+                this.save(order);
+            }else{
+                 order = this.getById(orderId);
+            }
+
+            Long orderId9 = order.getId();
             clientPlaceOrderVO.setOrderNo(orderNo);
-            clientPlaceOrderVO.setId(orderId);
+            clientPlaceOrderVO.setId(orderId9);
             // 如果冥想音频价格设定为单独收费,且需要使用余额抵扣
             if (balanceFlag.equals(1) && meditation.getChargeType().equals(ChargeTypeEnum.SEPARATE_CHARGE.getCode())) {
                 BigDecimal needPayAmount = handleBalancePayment(appUser,
                         meditation.getGeneralPrice(),
-                        orderId);
+                        orderId9);
                 if (needPayAmount.compareTo(BigDecimal.ZERO) <= 0) {
                     clientPlaceOrderVO.setZeroFlag(DisabledEnum.YES.getCode());
                     // 抵扣后金额为0 为余额支付
@@ -136,11 +141,11 @@
                 this.updateById(order);
                 // 创建支付订单
                 createPayment(payType, orderNo, needPayAmount, meditationTitle, detailDescription,
-                        wxOpenId, orderId, clientPlaceOrderVO);
+                        wxOpenId, orderId9, clientPlaceOrderVO);
             } else {
                 // 创建支付订单
                 createPayment(payType, orderNo, meditation.getGeneralPrice(), meditationTitle,
-                        detailDescription, wxOpenId, orderId, clientPlaceOrderVO);
+                        detailDescription, wxOpenId, orderId9, clientPlaceOrderVO);
             }
         }
         else if (orderFrom == 2){
@@ -152,22 +157,26 @@
 
             // 创建订单
             String orderNo = OrderUtil.getOrderNoForPrefix("KC");
-            order.setOrderFrom(orderFrom);
-            order.setBizOrderNo(orderNo);
-            order.setGiveUserId(receiverId);
-            order.setBusinessId(course.getId());
-            order.setAppUserId(userId);
-            order.setRealPayAmount(course.getGeneralPrice());
-            order.setTotalAmount(course.getGeneralPrice());
-            this.save(order);
-            Long orderId = order.getId();
+            if (orderId==null){
+                order.setOrderFrom(orderFrom);
+                order.setBizOrderNo(orderNo);
+                order.setGiveUserId(receiverId);
+                order.setBusinessId(course.getId());
+                order.setAppUserId(userId);
+                order.setRealPayAmount(course.getGeneralPrice());
+                order.setTotalAmount(course.getGeneralPrice());
+                this.save(order);
+            }else{
+                order = this.getById(orderId);
+            }
+            Long orderId8 = order.getId();
             clientPlaceOrderVO.setOrderNo(orderNo);
-            clientPlaceOrderVO.setId(orderId);
+            clientPlaceOrderVO.setId(orderId8);
 
             if (balanceFlag.equals(1) && course.getChargeType()
                     .equals(ChargeTypeEnum.SEPARATE_CHARGE.getCode())) {
                 BigDecimal needPayAmount = handleBalancePayment(appUser, course.getGeneralPrice(),
-                        orderId);
+                        orderId8);
 
                 if (needPayAmount.compareTo(BigDecimal.ZERO) <= 0) {
                     clientPlaceOrderVO.setZeroFlag(DisabledEnum.YES.getCode());
@@ -186,11 +195,11 @@
                 }
                 // 创建支付订单
                 createPayment(payType, orderNo, needPayAmount, courseTitle, description,
-                        wxOpenId, orderId, clientPlaceOrderVO);
+                        wxOpenId, orderId8, clientPlaceOrderVO);
             } else {
                 // 创建支付订单
                 createPayment(payType, orderNo, course.getGeneralPrice(), courseTitle,
-                        description, wxOpenId, orderId, clientPlaceOrderVO);
+                        description, wxOpenId, orderId8, clientPlaceOrderVO);
             }
         }
         else if (orderFrom == 3){
@@ -217,12 +226,12 @@
             }
             order.setBuyContent(vipType1);
             this.save(order);
-            Long orderId = order.getId();
+            Long orderId7 = order.getId();
             clientPlaceOrderVO.setOrderNo(orderNo);
-            clientPlaceOrderVO.setId(orderId);
+            clientPlaceOrderVO.setId(orderId7);
             // 创建支付订单
             createPayment(payType, orderNo, amount, "购买会员",
-                    vipType1, wxOpenId, orderId, clientPlaceOrderVO);
+                    vipType1, wxOpenId, orderId7, clientPlaceOrderVO);
 
         }else {
             // 充值
@@ -237,12 +246,12 @@
             order.setPayType(payType);
             order.setBuyContent("充值");
             this.save(order);
-            Long orderId = order.getId();
+            Long orderId6 = order.getId();
             clientPlaceOrderVO.setOrderNo(orderNo);
-            clientPlaceOrderVO.setId(orderId);
+            clientPlaceOrderVO.setId(orderId6);
             // 创建支付订单
             createPayment(payType, orderNo, amount, "充值余额",
-                    "充值余额", wxOpenId, orderId, clientPlaceOrderVO);
+                    "充值余额", wxOpenId, orderId6, clientPlaceOrderVO);
         }
         return clientPlaceOrderVO;
     }

--
Gitblit v1.7.1