| | |
| | | package com.xinquan.meditation.service.impl; |
| | | |
| | | 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> |
| | |
| | | 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; |
| | | |
| | | /** |
| | | * 查询每日冥想 |
| | |
| | | */ |
| | | @Override |
| | | public ClientMeditationEverydayVO getTodayMeditation() { |
| | | ClientMeditationEverydayVO vo = null; |
| | | ClientMeditationEverydayVO vo = new ClientMeditationEverydayVO(); |
| | | |
| | | |
| | | // 当前时间 |
| | | String now = DateUtils.dateTimeNow("HH:mm:ss"); |
| | | // 查询播放时间段在当前时间的每日冥想 |
| | | Optional<MeditationEveryday> meditationEverydayOpt = this.lambdaQuery() |
| | | .le(MeditationEveryday::getStartPlayTime, now) |
| | | .gt(MeditationEveryday::getEndPlayTime, now) |
| | | .ge(MeditationEveryday::getEndPlayTime, now) |
| | | .orderByDesc(MeditationEveryday::getUpdateTime) |
| | | .last("limit 1").oneOpt(); |
| | | if (!meditationEverydayOpt.isPresent()) { |
| | |
| | | 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())); |
| | |
| | | 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; |
| | | } |