Sfoglia il codice sorgente

fix(mine): 修复喜欢用户数量获取和不喜欢操作逻辑

- 确保从前端API获取的喜欢用户数量为数字类型
- 修复后端不喜欢操作逻辑,取消喜欢时只从喜欢集合移除不添加到不喜欢集合
- 移除冗余的不喜欢集合添加操作避免数据不一致问题
李思佳 1 settimana fa
parent
commit
a4bea80b42

+ 3 - 1
LiangZhiYUMao/pages/mine/index.vue

@@ -1272,7 +1272,9 @@ export default {
         const userId = this.currentUserId
         if (userId) {
           // 调用后端API获取真实的喜欢用户数量
-          const count = await api.recommend.getLikedUsersCount(userId)
+          const result = await api.recommend.getLikedUsersCount(userId)
+          // 确保获取的是数字值
+          const count = typeof result === 'number' ? result : (result.data || 0)
           // 更新统计数据
           this.stats.myConnection = count || 0
         }

+ 4 - 4
service/Recommend/src/main/java/com/zhentao/controller/RecommendController.java

@@ -101,10 +101,10 @@ public class RecommendController {
                 // 保存到数据库
                 recommendService.saveUserLike(userId, targetUserId);
             } else if ("dislike".equalsIgnoreCase(type)) {
-                stringRedisTemplate.opsForSet().add(dislikeKey, String.valueOf(targetUserId));
-                stringRedisTemplate.opsForSet().remove(likeKey, String.valueOf(targetUserId));
-                // 从数据库删除喜欢记录
-                recommendService.deleteUserLike(userId, targetUserId);
+            // 取消喜欢:只从喜欢集合移除,不添加到不喜欢集合
+            stringRedisTemplate.opsForSet().remove(likeKey, String.valueOf(targetUserId));
+            // 从数据库删除喜欢记录
+            recommendService.deleteUserLike(userId, targetUserId);
             } else {
                 return Result.error(400, "type only supports like|dislike");
             }