合并stash修改:优化用户认证和API接口配置
Change-Id: Ied7da456956b0c9e5d8db43aa22e0adba690ea65
diff --git a/Merge/front/src/components/HomeFeed.jsx b/Merge/front/src/components/HomeFeed.jsx
index e32a2eb..cc37642 100644
--- a/Merge/front/src/components/HomeFeed.jsx
+++ b/Merge/front/src/components/HomeFeed.jsx
@@ -5,6 +5,7 @@
import { ThumbsUp } from 'lucide-react'
import { fetchPosts, fetchPost } from '../api/posts_wzy'
import { searchAPI } from '../api/search_jwlll'
+import { getUserInfo } from '../utils/auth'
import '../style/HomeFeed.css'
const categories = [
@@ -17,11 +18,17 @@
{ label: '协同过滤推荐', value: 'cf' }
]
-const DEFAULT_USER_ID = '3' // 确保数据库有此用户
+const DEFAULT_USER_ID = '3' // 确保数据库有此用户(作为回退值)
const DEFAULT_TAGS = ['美食','影视','穿搭'] // 可根据实际数据库调整
export default function HomeFeed() {
const navigate = useNavigate()
+
+ // 获取当前用户ID,如果未登录则使用默认值
+ const getCurrentUserId = () => {
+ const userInfo = getUserInfo()
+ return userInfo?.id ? String(userInfo.id) : DEFAULT_USER_ID
+ }
const [activeCat, setActiveCat] = useState('推荐')
const [items, setItems] = useState([])
const [loading, setLoading] = useState(true)
@@ -55,13 +62,13 @@
}
setLoading(false)
}, [activeCat])
-
// 标签推荐
const fetchTagRecommend = useCallback(async (tags) => {
setLoading(true)
setError(null)
try {
- const data = await searchAPI.recommendByTags(DEFAULT_USER_ID, tags)
+ const currentUserId = getCurrentUserId()
+ const data = await searchAPI.recommendByTags(currentUserId, tags)
const formattedItems = (data.recommendations || []).map(item => ({
id: item.id,
title: item.title,
@@ -79,13 +86,13 @@
}
setLoading(false)
}, [])
-
// 协同过滤推荐
const fetchCFRecommend = useCallback(async (topN = recCFNum) => {
setLoading(true)
setError(null)
try {
- const data = await searchAPI.userBasedRecommend(DEFAULT_USER_ID, topN)
+ const currentUserId = getCurrentUserId()
+ const data = await searchAPI.userBasedRecommend(currentUserId, topN)
const formattedItems = (data.recommendations || []).map(item => ({
id: item.id,
title: item.title,
@@ -103,14 +110,14 @@
}
setLoading(false)
}, [recCFNum])
-
// 获取用户兴趣标签后再推荐
const fetchUserTagsAndRecommend = useCallback(async () => {
setLoading(true)
setError(null)
let tags = []
try {
- const data = await searchAPI.getUserTags(DEFAULT_USER_ID)
+ const currentUserId = getCurrentUserId()
+ const data = await searchAPI.getUserTags(currentUserId)
tags = Array.isArray(data.tags) && data.tags.length > 0 ? data.tags : DEFAULT_TAGS
} catch {
tags = DEFAULT_TAGS