From a6fa7ee721b028f5008972f38d96dfa4c80708cf Mon Sep 17 00:00:00 2001
From: hejianhao <15708179461@qq.com>
Date: 星期一, 24 八月 2026 16:33:35 +0800
Subject: [PATCH] Merge branch 'dev-0806-wql'

---
 tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/popularization/service/AppHealthPopularizationService.java |   16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/popularization/service/AppHealthPopularizationService.java b/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/popularization/service/AppHealthPopularizationService.java
index f4436bf..ec784cd 100644
--- a/tcm-training-admin-backend/src/main/java/com/tcm/training/admin/app/popularization/service/AppHealthPopularizationService.java
+++ b/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;
     }
 

--
Gitblit v1.7.1