hejianhao
2026-08-24 a6fa7ee721b028f5008972f38d96dfa4c80708cf
tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/popularization/service/AppHealthPopularizationService.java
@@ -6,6 +6,7 @@
import com.tcm.training.admin.live.entity.HealthPopularization;
import com.tcm.training.admin.live.mapper.HealthPopularizationMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Collections;
@@ -30,12 +31,15 @@
    /**
     * 获取 APP 健康科普列表页数据。
     *
     * @param contentType 内容类型:1 健康知识、2 养生科普;为空则返回全部。
     */
    public List<AppHealthPopularizationListItemVO> list() {
    public List<AppHealthPopularizationListItemVO> list(Integer contentType) {
        List<HealthPopularization> items = healthPopularizationMapper.selectList(new LambdaQueryWrapper<HealthPopularization>()
                .eq(HealthPopularization::getDeleted, 0)
                .eq(HealthPopularization::getStatus, STATUS_ENABLED)
                .orderByAsc(HealthPopularization::getSort)
                .eq(contentType != null, HealthPopularization::getContentType, contentType)
                .orderByDesc(HealthPopularization::getSort)
                .orderByDesc(HealthPopularization::getId));
        if (items == null || items.isEmpty()) {
            return Collections.emptyList();
@@ -55,10 +59,14 @@
    }
    /**
     * 获取 APP 健康科普详情页数据。
     * 获取 APP 健康科普详情页数据,并在每次访问时累加点击量。
     */
    @Transactional
    public AppHealthPopularizationDetailVO detail(Long popularizationId) {
        HealthPopularization item = requireEnabledItem(popularizationId);
        // 参考项目介绍,APP 进入详情后累加点击量并回写。
        item.setClickCount(defaultNumber(item.getClickCount()) + 1);
        healthPopularizationMapper.updateById(item);
        AppHealthPopularizationDetailVO detailVO = new AppHealthPopularizationDetailVO();
        detailVO.setId(item.getId());
        detailVO.setTitle(trimToEmpty(item.getTitle()));
@@ -68,6 +76,8 @@
        detailVO.setContent(trimToEmpty(item.getContent()));
        detailVO.setVideoUrl(trimToEmpty(item.getVideoUrl()));
        detailVO.setVideoFileName(trimToEmpty(item.getVideoFileName()));
        detailVO.setVideoDescription(trimToEmpty(item.getVideoDescription()));
        detailVO.setClickCount(defaultNumber(item.getClickCount()));
        return detailVO;
    }