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