From 64f7ccb9ef8b5a0618e65cddc14b981c1f108ba3 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期一, 04 十一月 2024 09:01:59 +0800
Subject: [PATCH] 代码提交

---
 xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationEverydayServiceImpl.java |   60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 57 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..0215cc0 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,9 +1,19 @@
 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.extension.service.impl.ServiceImpl;
+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.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.service.MeditationEverydayService;
+
+import java.util.List;
+import java.util.Optional;
+import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
 /**
@@ -15,6 +25,50 @@
  * @since 2024-08-21
  */
 @Service
+@RequiredArgsConstructor
 public class MeditationEverydayServiceImpl extends ServiceImpl<MeditationEverydayMapper, MeditationEveryday> implements MeditationEverydayService {
 
+    private final MeditationMapper meditationMapper;
+
+    /**
+     * 查询每日冥想
+     *
+     * @return 每日冥想
+     */
+    @Override
+    public ClientMeditationEverydayVO getTodayMeditation() {
+        ClientMeditationEverydayVO vo = null;
+        // 当前时间
+        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();
+            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);
+                vo.setClientMeditationVO(clientMeditationVO);
+            }
+        }
+        return vo;
+    }
 }

--
Gitblit v1.7.1