Browse Source

fix: ContentRecommendService select() incompatibility, ProductRecommendationService bean injection conflict

Xiaogang Liao 1 month ago
parent
commit
7b7543dc14

+ 5 - 9
cfc-backend/src/main/java/com/etotem/cfc/service/ContentRecommendService.java

@@ -130,8 +130,7 @@ public class ContentRecommendService {
         if (childId != null) {
             List<ArticleReadingRecord> records = articleReadingRecordMapper.selectList(
                     new LambdaQueryWrapper<ArticleReadingRecord>()
-                            .eq(ArticleReadingRecord::getChildId, childId)
-                            .select("DISTINCT article_id"));
+                            .eq(ArticleReadingRecord::getChildId, childId));
             for (ArticleReadingRecord r : records) {
                 if (r.getArticleId() != null) readArticleIds.add(r.getArticleId());
             }
@@ -191,8 +190,7 @@ public class ContentRecommendService {
         List<Task> existingTasks = taskMapper.selectList(
                 new LambdaQueryWrapper<Task>()
                         .eq(Task::getChildId, childId)
-                        .in(Task::getStatus, "pending", "completed")
-                        .select("id", "source_type", "source_id"));
+                        .in(Task::getStatus, "pending", "completed"));
         for (Task t : existingTasks) {
             if ("article".equals(t.getSourceType()) && t.getSourceId() != null) {
                 articleSourceIds.add(t.getSourceId());
@@ -476,7 +474,7 @@ public class ContentRecommendService {
         } else {
             return ids;
         }
-        List<ProductOrder> orders = productOrderMapper.selectList(wrapper.select("distinct product_id"));
+        List<ProductOrder> orders = productOrderMapper.selectList(wrapper);
         for (ProductOrder o : orders) {
             ids.add(o.getProductId());
         }
@@ -496,8 +494,7 @@ public class ContentRecommendService {
             if (!memberUserIds.isEmpty()) {
                 List<ActivityRegistration> regs = activityRegistrationMapper.selectList(
                         new LambdaQueryWrapper<ActivityRegistration>()
-                                .in(ActivityRegistration::getUserId, memberUserIds)
-                                .select("distinct activity_id"));
+                                .in(ActivityRegistration::getUserId, memberUserIds));
                 for (ActivityRegistration r : regs) {
                     ids.add(r.getActivityId());
                 }
@@ -505,8 +502,7 @@ public class ContentRecommendService {
         } else if (userId != null) {
             List<ActivityRegistration> regs = activityRegistrationMapper.selectList(
                     new LambdaQueryWrapper<ActivityRegistration>()
-                            .eq(ActivityRegistration::getUserId, userId)
-                            .select("distinct activity_id"));
+                            .eq(ActivityRegistration::getUserId, userId));
             for (ActivityRegistration r : regs) {
                 ids.add(r.getActivityId());
             }

+ 2 - 2
cfc-backend/src/main/java/com/etotem/cfc/service/ProductRecommendationService.java

@@ -31,7 +31,7 @@ public class ProductRecommendationService {
     private FiveDimensionScoreMapper fiveDimensionScoreMapper;
 
     @Resource
-    private ProductRecommendationLogMapper recommendationLogMapper;
+    private ProductRecommendationLogMapper productRecommendationLogMapper;
 
     /**
      * 维度页推荐
@@ -192,7 +192,7 @@ public class ProductRecommendationService {
             logEntity.setReason(reason);
             logEntity.setMatchScore(matchScore);
             logEntity.setCreatedAt(new Date());
-            recommendationLogMapper.insert(logEntity);
+            productRecommendationLogMapper.insert(logEntity);
         } catch (Exception e) {
             log.warn("记录推荐日志失败: userId={}, productId={}, error={}", userId, productId, e.getMessage());
         }

+ 1 - 1
cfc-web/.last_build_commit

@@ -1 +1 @@
-ddc327c563ee015f5b4f92bdd95c143368dde2ba
+bfe93b5e8a4aae0e0e33e22cbb19522ecab7d25e

+ 0 - 10
cfc-web/public/CHANGELOG-v1.0.md

@@ -6,17 +6,7 @@
 
 ## v1.0.659 (2026-07-30)
 
-### Bug 修复
-- 登录合规整改 - 跳过登录入口、静默授权、协议措辞
-
-### 其他
-- - parent-index.vue: 移除 mounted 中强制跳转登录页的逻辑
-- - agreement.vue: 修改第2.1条「授权登录即视为注册」措辞
-- - 验证商品/活动/文章详情页无需登录可访问(后端公开路径已配置)
-- 
-
 ### 新功能
-- add withdrawal rules display on withdraw page per review guideline
 - add AI disclaimer at bottom of health coach chat page
 
 

+ 0 - 10
cfc-web/public/CHANGELOG.md

@@ -10,17 +10,7 @@
 
 ## v1.0.659 (2026-07-30)
 
-### Bug 修复
-- 登录合规整改 - 跳过登录入口、静默授权、协议措辞
-
-### 其他
-- - parent-index.vue: 移除 mounted 中强制跳转登录页的逻辑
-- - agreement.vue: 修改第2.1条「授权登录即视为注册」措辞
-- - 验证商品/活动/文章详情页无需登录可访问(后端公开路径已配置)
-- 
-
 ### 新功能
-- add withdrawal rules display on withdraw page per review guideline
 - add AI disclaimer at bottom of health coach chat page