From 40965cea50fc7f50ab06f7472cf3aa3d32985a25 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期日, 23 三月 2025 15:06:46 +0800
Subject: [PATCH] 冥想

---
 xinquan-api/xinquan-api-order/src/main/java/com/xinquan/order/api/factory/RemoteOrderFallbackFactory.java       |    5 +++++
 xinquan-api/xinquan-api-order/src/main/java/com/xinquan/order/api/feign/RemoteOrderService.java                 |    2 ++
 xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationServiceImpl.java |   33 +++++++++++++++++++++++++--------
 xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/client/ClientOrderController.java      |   10 ++++++++++
 4 files changed, 42 insertions(+), 8 deletions(-)

diff --git a/xinquan-api/xinquan-api-order/src/main/java/com/xinquan/order/api/factory/RemoteOrderFallbackFactory.java b/xinquan-api/xinquan-api-order/src/main/java/com/xinquan/order/api/factory/RemoteOrderFallbackFactory.java
index e4a9ba7..1950dd3 100644
--- a/xinquan-api/xinquan-api-order/src/main/java/com/xinquan/order/api/factory/RemoteOrderFallbackFactory.java
+++ b/xinquan-api/xinquan-api-order/src/main/java/com/xinquan/order/api/factory/RemoteOrderFallbackFactory.java
@@ -21,6 +21,11 @@
             }
 
             @Override
+            public R<List<Order>> getMeditationIsBuyAll(Long id) {
+                return null;
+            }
+
+            @Override
             public R<List<Order>> getOrderList(Integer status, Integer timeType, String time) {
                 return R.fail("远程调用获取订单列表"+cause.getMessage());
             }
diff --git a/xinquan-api/xinquan-api-order/src/main/java/com/xinquan/order/api/feign/RemoteOrderService.java b/xinquan-api/xinquan-api-order/src/main/java/com/xinquan/order/api/feign/RemoteOrderService.java
index 23d61e9..42f384e 100644
--- a/xinquan-api/xinquan-api-order/src/main/java/com/xinquan/order/api/feign/RemoteOrderService.java
+++ b/xinquan-api/xinquan-api-order/src/main/java/com/xinquan/order/api/feign/RemoteOrderService.java
@@ -17,6 +17,8 @@
 public interface RemoteOrderService {
     @GetMapping("/client/order/order/getMeditationIsBuy/{id}/{meditationId}")
     public R<Integer> getMeditationIsBuy(@PathVariable("id")Long id,@PathVariable("meditationId")Long meditationId);
+    @GetMapping("/client/order/order/getMeditationIsBuyAll/{id}")
+    public R<List<Order>> getMeditationIsBuyAll(@PathVariable("id")Long id);
     @PostMapping("/mgt/order/order/getOrderList")
     public R<List<Order>> getOrderList(@RequestParam("status") Integer status,
                                        @RequestParam("timeType") Integer timeType,
diff --git a/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationServiceImpl.java b/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationServiceImpl.java
index b5ae1aa..41b5801 100644
--- a/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationServiceImpl.java
+++ b/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationServiceImpl.java
@@ -211,19 +211,28 @@
                 LoginUser loginUser = tokenService.getLoginUser();
                 List<ClientMeditationVO> meditationListByCateId = getMeditationListByCateId(cate.getId());
                 if (loginUser!=null){
+                    List<Order> data1 = remoteOrderService.getMeditationIsBuyAll(loginUser.getUserid()).getData();
                     for (ClientMeditationVO clientMeditationVO : meditationListByCateId) {
-                        Integer data = remoteOrderService.getMeditationIsBuy(loginUser.getUserid(),clientMeditationVO.getId() ).getData();
-                        clientMeditationVO.setIsBuy(data);
+                        Order order = data1.stream().filter(e -> e.getBusinessId().equals(clientMeditationVO.getId())).findFirst().orElse(null);
+                        if (order==null){
+                            clientMeditationVO.setIsBuy(2);
+                        }else{
+                            clientMeditationVO.setIsBuy(1);
+                        }
                         clientMeditationVO.setRealLearnedNum(clientMeditationVO.getVirtualLearnedNum()+clientMeditationVO.getRealLearnedNum());
                     }
                 }else{
+                    List<Order> data1 = remoteOrderService.getMeditationIsBuyAll(loginUser.getUserid()).getData();
                     for (ClientMeditationVO clientMeditationVO : meditationListByCateId) {
                         clientMeditationVO.setIsBuy(2);
                         clientMeditationVO.setRealLearnedNum(clientMeditationVO.getVirtualLearnedNum()+clientMeditationVO.getRealLearnedNum());
                         if (tokenService.getLoginUser()!=null){
-                            Integer data2 = remoteOrderService.getMeditationIsBuy(tokenService.getLoginUser().getUserid()
-                                    ,clientMeditationVO.getId() ).getData();
-                            clientMeditationVO.setIsBuy(data2);
+                            Order order = data1.stream().filter(e -> e.getBusinessId().equals(clientMeditationVO.getId())).findFirst().orElse(null);
+                            if (order==null){
+                                clientMeditationVO.setIsBuy(2);
+                            }else{
+                                clientMeditationVO.setIsBuy(1);
+                            }
                         }else{
                             clientMeditationVO.setIsBuy(2);
                         }
@@ -303,14 +312,22 @@
         if (page.getRecords().isEmpty()) {
             return pageDTO;
         }
+        List<Order> data1 = new ArrayList<Order>();
+
+        if (tokenService.getLoginUser()!=null){
+            data1 = remoteOrderService.getMeditationIsBuyAll(tokenService.getLoginUser().getUserid()).getData();
+        }
         for (Meditation record : page.getRecords()) {
             Long data = remoteAppUserService.getMeditationHistoryCount(record.getId()).getData();
             record.setRealLearnedNum(Integer.valueOf(data+""));
             record.setRealLearnedNum(record.getVirtualLearnedNum()+record.getRealLearnedNum());
             if (tokenService.getLoginUser()!=null){
-                Integer data2 = remoteOrderService.getMeditationIsBuy(tokenService.getLoginUser().getUserid()
-                        ,record.getId() ).getData();
-                record.setIsBuy(data2);
+                Order order = data1.stream().filter(e -> e.getBusinessId().equals(record.getId())).findFirst().orElse(null);
+                if (order==null){
+                    record.setIsBuy(2);
+                }else{
+                    record.setIsBuy(1);
+                }
             }else{
                 record.setIsBuy(2);
             }
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 8dfb209..adacb14 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
@@ -110,6 +110,15 @@
         JSONObject jsonObject = JuHeFuUtil.queryPayment(orderId);
         return R.ok(jsonObject.getString("status"));
     }
+    @GetMapping("/getMeditationIsBuyAll/{id}")
+    public R<List<Order>> getMeditationIsBuyAll(@PathVariable("id")Long id) {
+        List<Order> list = orderService.lambdaQuery()
+                .eq(Order::getAppUserId, id)
+                .eq(Order::getOrderFrom, 1)
+                .eq(Order::getPaymentStatus, 2)
+                .ne(Order::getRefundStatus, 3).list();
+        return R.ok(list);
+    }
     @GetMapping("/getMeditationIsBuy/{id}/{meditationId}")
     public R<Integer> getMeditationIsBuy(@PathVariable("id")Long id,@PathVariable("meditationId")Long meditationId) {
         List<Order> list = orderService.lambdaQuery().eq(Order::getBusinessId, meditationId)
@@ -123,6 +132,7 @@
             return R.ok(1);
         }
     }
+
     @PostMapping("/payOrder")
     @ApiOperation(value = "已购详情-待支付状态-页面数据",tags = "我的已购")
     @ApiImplicitParams({

--
Gitblit v1.7.1