From 2862c3e4da3adbb4bea43151514f0c43b86476d6 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期六, 07 九月 2024 17:49:17 +0800
Subject: [PATCH] APP端冥想首页相关接口

---
 xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationEverydayServiceImpl.java |   58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 55 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..10608d9 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,17 @@
 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.page.BeanUtils;
+import com.xinquan.meditation.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.time.LocalDateTime;
+import java.util.Optional;
+import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
 /**
@@ -15,6 +23,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;
+        // 当前时间
+        LocalDateTime now = LocalDateTime.now();
+        // 查询播放时间段在当前时间的每日冥想
+        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