From 5d02cf6ba780f088b24f62cf8db94bf63707db57 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期二, 10 九月 2024 10:14:46 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/XinQuanHealing

---
 xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationServiceImpl.java |   41 +++++++++++++++++++++++++++++++++++++----
 1 files changed, 37 insertions(+), 4 deletions(-)

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 0142788..d003d07 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
@@ -5,12 +5,13 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xinquan.common.core.constant.SecurityConstants;
 import com.xinquan.common.core.enums.DisabledEnum;
+import com.xinquan.common.core.enums.OrderFromEnum;
 import com.xinquan.common.core.exception.ServiceException;
 import com.xinquan.common.core.utils.page.BeanUtils;
 import com.xinquan.common.core.utils.page.CollUtils;
 import com.xinquan.common.core.utils.page.PageDTO;
 import com.xinquan.common.security.utils.SecurityUtils;
-import com.xinquan.meditation.domain.Meditation;
+import com.xinquan.meditation.api.domain.Meditation;
 import com.xinquan.meditation.domain.MeditationCategory;
 import com.xinquan.meditation.domain.MeditationMusic;
 import com.xinquan.meditation.domain.MeditationQuestion;
@@ -28,6 +29,8 @@
 import com.xinquan.meditation.service.MeditationQuestionLikeService;
 import com.xinquan.meditation.service.MeditationService;
 import com.xinquan.meditation.service.MeditationUserFavoriteService;
+import com.xinquan.order.api.domain.Order;
+import com.xinquan.order.api.feign.RemoteOrderService;
 import com.xinquan.user.api.domain.AppUser;
 import com.xinquan.user.api.domain.dto.AppUserDTO;
 import com.xinquan.user.api.feign.RemoteAppUserService;
@@ -61,7 +64,7 @@
     private final MeditationQuestionMapper meditationQuestionMapper;
     private final MeditationQuestionLikeService meditationQuestionLikeService;
     private final MeditationUserFavoriteService meditationUserFavoriteService;
-
+    private final RemoteOrderService remoteOrderService;
     /**
      * 获取私人订制
      *
@@ -79,6 +82,30 @@
                     .collect(Collectors.toSet());
             // 查询冥想列表
             voList = baseMapper.getMeditationListByTagId(tagIdSet, sanskritFlag);
+        }
+        voList = handlePaidMeditation(voList);
+        return voList;
+    }
+
+    /**
+     * 处理已付费冥想音频
+     *
+     * @param voList
+     * @return
+     */
+    private List<ClientMeditationVO> handlePaidMeditation(List<ClientMeditationVO> voList) {
+        // 远程调用订单服务,查询用户已付费冥想
+        Long userId = SecurityUtils.getUserId();
+        List<Order> orderList = remoteOrderService.getOrderListByType(userId,
+                OrderFromEnum.MEDITATION.getCode(),
+                SecurityConstants.INNER).getData();
+        List<Long> meditationIdList = orderList.stream().map(Order::getBusinessId)
+                .collect(Collectors.toList());
+        if (CollUtils.isNotEmpty(meditationIdList)) {
+            voList = voList.stream()
+                    .filter(meditationVO -> meditationIdList.contains(meditationVO.getId()))
+                    .peek(meditationVO -> meditationVO.setPaidStatus(1))
+                    .collect(Collectors.toList());
         }
         return voList;
     }
@@ -102,6 +129,7 @@
             // 对象拷贝
             voList = BeanUtils.copyList(list, ClientMeditationVO.class);
         }
+        handlePaidMeditation(voList);
         return voList;
     }
 
@@ -205,6 +233,7 @@
         });*/
         // 将实体类转换为VO
         pageDTO = PageDTO.of(page, ClientMeditationVO.class);
+        handlePaidMeditation(pageDTO.getList());
         return pageDTO;
     }
 
@@ -235,6 +264,10 @@
                 .eq(MeditationUserFavorite::getMeditationId, id)
                 .eq(MeditationUserFavorite::getAppUserId, SecurityUtils.getUserId())
                 .count() > 0 ? 1 : 2);
+        // 获取提问数
+        vo.setQuestionCount(meditationQuestionMapper.selectCount(
+                Wrappers.lambdaQuery(MeditationQuestion.class)
+                        .eq(MeditationQuestion::getMeditationId, id)));
         return vo;
     }
 
@@ -256,7 +289,7 @@
                 .last("limit 1").oneOpt();
         if (userOperationOpt.isPresent()) {
             meditationUserFavoriteService.removeById(userOperationOpt.get());
-            // 增加收藏数
+            // 减少收藏数
             meditation.setFavoriteCount(meditation.getFavoriteCount() - 1);
         } else {
             // 增加收藏记录
@@ -264,7 +297,7 @@
             meditationUserFavorite.setMeditationId(id);
             meditationUserFavorite.setAppUserId(SecurityUtils.getUserId());
             meditationUserFavoriteService.save(meditationUserFavorite);
-            // 减少收藏数
+            // 增加收藏数
             meditation.setFavoriteCount(meditation.getFavoriteCount() + 1);
         }
         this.updateById(meditation);

--
Gitblit v1.7.1