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