mitao
2024-09-09 cf98926793932b132000e237a487ba4343084410
xinquan-modules/xinquan-meditation/src/main/java/com/xinquan/meditation/service/impl/MeditationServiceImpl.java
@@ -5,12 +5,13 @@
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.security.utils.SecurityUtils;
import com.xinquan.meditation.domain.Meditation;
import com.xinquan.meditation.api.domain.Meditation;
import com.xinquan.meditation.domain.MeditationCategory;
import com.xinquan.meditation.domain.MeditationMusic;
import com.xinquan.meditation.domain.MeditationQuestion;
@@ -28,6 +29,8 @@
import com.xinquan.meditation.service.MeditationQuestionLikeService;
import com.xinquan.meditation.service.MeditationService;
import com.xinquan.meditation.service.MeditationUserFavoriteService;
import com.xinquan.order.api.domain.Order;
import com.xinquan.order.api.feign.RemoteOrderService;
import com.xinquan.user.api.domain.AppUser;
import com.xinquan.user.api.domain.dto.AppUserDTO;
import com.xinquan.user.api.feign.RemoteAppUserService;
@@ -61,7 +64,7 @@
    private final MeditationQuestionMapper meditationQuestionMapper;
    private final MeditationQuestionLikeService meditationQuestionLikeService;
    private final MeditationUserFavoriteService meditationUserFavoriteService;
    private final RemoteOrderService remoteOrderService;
    /**
     * 获取私人订制
     *
@@ -79,6 +82,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 +129,7 @@
            // 对象拷贝
            voList = BeanUtils.copyList(list, ClientMeditationVO.class);
        }
        handlePaidMeditation(voList);
        return voList;
    }
@@ -205,6 +233,7 @@
        });*/
        // 将实体类转换为VO
        pageDTO = PageDTO.of(page, ClientMeditationVO.class);
        handlePaidMeditation(pageDTO.getList());
        return pageDTO;
    }
@@ -235,6 +264,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 +289,7 @@
                .last("limit 1").oneOpt();
        if (userOperationOpt.isPresent()) {
            meditationUserFavoriteService.removeById(userOperationOpt.get());
            // 增加收藏数
            // 减少收藏数
            meditation.setFavoriteCount(meditation.getFavoriteCount() - 1);
        } else {
            // 增加收藏记录
@@ -264,7 +297,7 @@
            meditationUserFavorite.setMeditationId(id);
            meditationUserFavorite.setAppUserId(SecurityUtils.getUserId());
            meditationUserFavoriteService.save(meditationUserFavorite);
            // 减少收藏数
            // 增加收藏数
            meditation.setFavoriteCount(meditation.getFavoriteCount() + 1);
        }
        this.updateById(meditation);