From b01f752252eaadd1fa31eda6a9ad43146660b721 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 03 四月 2025 23:42:57 +0800
Subject: [PATCH] bug修改

---
 xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationEverydayServiceImpl.java |  103 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 100 insertions(+), 3 deletions(-)

diff --git a/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationEverydayServiceImpl.java b/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationEverydayServiceImpl.java
index 22d5929..7dc0320 100644
--- a/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationEverydayServiceImpl.java
+++ b/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationEverydayServiceImpl.java
@@ -1,10 +1,30 @@
 package com.xinquan.meditation.service.impl;
 
-import com.xinquan.meditation.domain.MeditationEveryday;
-import com.xinquan.meditation.mapper.MeditationEverydayMapper;
-import com.xinquan.meditation.service.MeditationEverydayService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xinquan.common.core.domain.R;
+import com.xinquan.common.core.utils.DateUtils;
+import com.xinquan.common.core.utils.page.BeanUtils;
+import com.xinquan.meditation.api.domain.Meditation;
+import com.xinquan.meditation.domain.MeditationEveryday;
+import com.xinquan.meditation.domain.MeditationMusic;
+import com.xinquan.meditation.domain.MeditationVideo;
+import com.xinquan.meditation.domain.vo.ClientMeditationEverydayVO;
+import com.xinquan.meditation.domain.vo.ClientMeditationVO;
+import com.xinquan.meditation.mapper.MeditationEverydayMapper;
+import com.xinquan.meditation.mapper.MeditationMapper;
+import com.xinquan.meditation.mapper.MeditationMusicMapper;
+import com.xinquan.meditation.mapper.MeditationVideoMapper;
+import com.xinquan.meditation.service.MeditationEverydayService;
+
+import java.util.List;
+import java.util.Optional;
+
+import com.xinquan.user.api.feign.RemoteAppUserService;
+import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
 
 /**
  * <p>
@@ -15,6 +35,83 @@
  * @since 2024-08-21
  */
 @Service
+@RequiredArgsConstructor
 public class MeditationEverydayServiceImpl extends ServiceImpl<MeditationEverydayMapper, MeditationEveryday> implements MeditationEverydayService {
 
+    private final MeditationMapper meditationMapper;
+    private final MeditationMusicMapper meditationMusicMapper;
+    @Resource
+    private RemoteAppUserService remoteAppUserService;
+
+    @Resource
+    private MeditationVideoMapper meditationVideoMapper;
+
+    /**
+     * 查询每日冥想
+     *
+     * @return 每日冥想
+     */
+    @Override
+    public ClientMeditationEverydayVO getTodayMeditation() {
+        ClientMeditationEverydayVO vo = new ClientMeditationEverydayVO();
+
+
+        // 当前时间
+        String now = DateUtils.dateTimeNow("HH:mm:ss");
+        // 查询播放时间段在当前时间的每日冥想
+        Optional<MeditationEveryday> meditationEverydayOpt = this.lambdaQuery()
+                .le(MeditationEveryday::getStartPlayTime, now)
+                .ge(MeditationEveryday::getEndPlayTime, now)
+                .orderByDesc(MeditationEveryday::getUpdateTime)
+                .last("limit 1").oneOpt();
+        if (!meditationEverydayOpt.isPresent()) {
+            // 查询结束时间离当前时间最近的一个每日冥想
+            meditationEverydayOpt = this.lambdaQuery()
+                    .le(MeditationEveryday::getStartPlayTime, now)
+                    .orderByDesc(MeditationEveryday::getEndPlayTime)
+                    .last("limit 1").oneOpt();
+        }
+        // 判断是否存在
+        if (meditationEverydayOpt.isPresent()) {
+            // 查询冥想详情
+            MeditationEveryday meditationEveryday = meditationEverydayOpt.get();
+
+            Long meditationId = meditationEveryday.getMeditationId();
+            Meditation meditation = meditationMapper.selectById(meditationId);
+            Optional<Meditation> meditationOpt = Optional.ofNullable(
+                    meditationMapper.selectById(
+                            meditationEveryday.getMeditationId()));
+            if (meditationOpt.isPresent()) {
+                // 封装返回值
+                ClientMeditationVO clientMeditationVO = BeanUtils.copyBean(meditationOpt.get(),
+                        ClientMeditationVO.class);
+                vo = BeanUtils.copyBean(meditationEveryday,
+                        ClientMeditationEverydayVO.class);
+                clientMeditationVO.setBackgroundUrl(meditationOpt.get().getBackgroundUrl());
+                // 查询冥想实际学习人数
+                Long data = remoteAppUserService.getMeditationHistoryCount(meditationId).getData();
+                clientMeditationVO.setRealLearnedNum(Integer.valueOf(data+""));
+                vo.setClientMeditationVO(clientMeditationVO);
+                if (meditation!=null){
+                    List<MeditationMusic> meditationId1 = meditationMusicMapper.selectList(new QueryWrapper<MeditationMusic>()
+                            .eq("meditation_id", meditationId));
+                    int a= 0;
+                    for (MeditationMusic meditationMusic : meditationId1) {
+                        a += meditationMusic.getMusicSecond();
+                    }
+                    vo.setTime(a);
+                }
+            }
+            vo.setImageUrl(meditationEveryday.getImageUrl());
+
+        }
+        MeditationVideo meditationVideo = meditationVideoMapper.selectOne(null);
+        if (meditationVideo==null){
+            vo.setIsShow(0);
+        }else{
+            vo.setIsShow(meditationVideo.getIsShow());
+            vo.setMeditationVideo(meditationVideo);
+        }
+        return vo;
+    }
 }

--
Gitblit v1.7.1