From 039a33d1bfa6ef041161666bbd120c34086fe7c1 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期一, 14 十月 2024 14:09:25 +0800 Subject: [PATCH] 课程代码 --- xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationServiceImpl.java | 69 ++++++++++++++++++++++++++++------ 1 files changed, 56 insertions(+), 13 deletions(-) diff --git a/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationServiceImpl.java b/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationServiceImpl.java index 0142788..7e74ef5 100644 --- a/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationServiceImpl.java +++ b/xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationServiceImpl.java @@ -5,17 +5,15 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xinquan.common.core.constant.SecurityConstants; import com.xinquan.common.core.enums.DisabledEnum; +import com.xinquan.common.core.enums.OrderFromEnum; import com.xinquan.common.core.exception.ServiceException; import com.xinquan.common.core.utils.page.BeanUtils; import com.xinquan.common.core.utils.page.CollUtils; import com.xinquan.common.core.utils.page.PageDTO; +import com.xinquan.common.core.web.page.PageInfo; import com.xinquan.common.security.utils.SecurityUtils; -import com.xinquan.meditation.domain.Meditation; -import com.xinquan.meditation.domain.MeditationCategory; -import com.xinquan.meditation.domain.MeditationMusic; -import com.xinquan.meditation.domain.MeditationQuestion; -import com.xinquan.meditation.domain.MeditationQuestionLike; -import com.xinquan.meditation.domain.MeditationUserFavorite; +import com.xinquan.meditation.api.domain.Meditation; +import com.xinquan.meditation.domain.*; import com.xinquan.meditation.domain.vo.ClientMeditationAndCateVO; import com.xinquan.meditation.domain.vo.ClientMeditationCategoryVO; import com.xinquan.meditation.domain.vo.ClientMeditationDetailsVO; @@ -28,7 +26,10 @@ import com.xinquan.meditation.service.MeditationQuestionLikeService; import com.xinquan.meditation.service.MeditationService; import com.xinquan.meditation.service.MeditationUserFavoriteService; -import com.xinquan.user.api.domain.AppUser; +import com.xinquan.order.api.domain.Order; +import com.xinquan.order.api.feign.RemoteOrderService; +import com.xinquan.system.api.domain.AppUser; +import com.xinquan.system.api.domain.MeditationQuestion; import com.xinquan.user.api.domain.dto.AppUserDTO; import com.xinquan.user.api.feign.RemoteAppUserService; import java.util.Arrays; @@ -42,6 +43,7 @@ import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; /** * <p> @@ -61,7 +63,7 @@ private final MeditationQuestionMapper meditationQuestionMapper; private final MeditationQuestionLikeService meditationQuestionLikeService; private final MeditationUserFavoriteService meditationUserFavoriteService; - + private final RemoteOrderService remoteOrderService; /** * 获取私人订制 * @@ -79,6 +81,30 @@ .collect(Collectors.toSet()); // 查询冥想列表 voList = baseMapper.getMeditationListByTagId(tagIdSet, sanskritFlag); + } + voList = handlePaidMeditation(voList); + return voList; + } + + /** + * 处理已付费冥想音频 + * + * @param voList + * @return + */ + private List<ClientMeditationVO> handlePaidMeditation(List<ClientMeditationVO> voList) { + // 远程调用订单服务,查询用户已付费冥想 + Long userId = SecurityUtils.getUserId(); + List<Order> orderList = remoteOrderService.getOrderListByType(userId, + OrderFromEnum.MEDITATION.getCode(), + SecurityConstants.INNER).getData(); + List<Long> meditationIdList = orderList.stream().map(Order::getBusinessId) + .collect(Collectors.toList()); + if (CollUtils.isNotEmpty(meditationIdList)) { + voList = voList.stream() + .filter(meditationVO -> meditationIdList.contains(meditationVO.getId())) + .peek(meditationVO -> meditationVO.setPaidStatus(1)) + .collect(Collectors.toList()); } return voList; } @@ -102,6 +128,7 @@ // 对象拷贝 voList = BeanUtils.copyList(list, ClientMeditationVO.class); } + handlePaidMeditation(voList); return voList; } @@ -205,6 +232,7 @@ });*/ // 将实体类转换为VO pageDTO = PageDTO.of(page, ClientMeditationVO.class); + handlePaidMeditation(pageDTO.getList()); return pageDTO; } @@ -235,6 +263,10 @@ .eq(MeditationUserFavorite::getMeditationId, id) .eq(MeditationUserFavorite::getAppUserId, SecurityUtils.getUserId()) .count() > 0 ? 1 : 2); + // 获取提问数 + vo.setQuestionCount(meditationQuestionMapper.selectCount( + Wrappers.lambdaQuery(MeditationQuestion.class) + .eq(MeditationQuestion::getMeditationId, id))); return vo; } @@ -256,7 +288,7 @@ .last("limit 1").oneOpt(); if (userOperationOpt.isPresent()) { meditationUserFavoriteService.removeById(userOperationOpt.get()); - // 增加收藏数 + // 减少收藏数 meditation.setFavoriteCount(meditation.getFavoriteCount() - 1); } else { // 增加收藏记录 @@ -264,10 +296,23 @@ meditationUserFavorite.setMeditationId(id); meditationUserFavorite.setAppUserId(SecurityUtils.getUserId()); meditationUserFavoriteService.save(meditationUserFavorite); - // 减少收藏数 + // 增加收藏数 meditation.setFavoriteCount(meditation.getFavoriteCount() + 1); } this.updateById(meditation); + } + + @Override + public PageDTO<MeditationHall> getMeditationPage(String lon, String lat,String name, Integer pageCurr, Integer pageSize) { + PageInfo<MeditationHall> pageInfo = new PageInfo<>(pageCurr, pageSize); + List<MeditationHall> list = this.baseMapper.getMeditationPage(pageInfo,lon, lat,name); + if (!StringUtils.hasLength(lon) || !StringUtils.hasLength(lat)){ + for (MeditationHall meditationHall : list) { + meditationHall.setDistance(null); + } + } + pageInfo.setRecords(list); + return PageDTO.of(pageInfo, MeditationHall.class); } /** @@ -287,9 +332,7 @@ Wrappers.lambdaQuery(MeditationQuestion.class) .eq(MeditationQuestion::getMeditationId, id) .eq(MeditationQuestion::getShowFlag, DisabledEnum.YES) - .orderByDesc(MeditationQuestion::getPublishTime) - ); - + .orderByDesc(MeditationQuestion::getPublishTime)); if (CollUtils.isEmpty(questionPage.getRecords())) { return PageDTO.empty(questionPage); } -- Gitblit v1.7.1