diff --git a/src/views/forum/index.tsx b/src/views/forum/index.tsx
index 83d791f..13c369f 100644
--- a/src/views/forum/index.tsx
+++ b/src/views/forum/index.tsx
@@ -1,6 +1,7 @@
 import React from "react";
 import { Navigate } from "react-router";
 import SelfStatus from "@/components/selfStatus/selfStatus";
+import Corner from "@/components/corner/corner";
 
 import style from "./index.module.css";
 import Navbar from "@/components/navbar/navbar";
diff --git a/src/views/homepage/homepage.tsx b/src/views/homepage/homepage.tsx
index 58c910f..ec74187 100644
--- a/src/views/homepage/homepage.tsx
+++ b/src/views/homepage/homepage.tsx
@@ -1,14 +1,17 @@
-import React, { useCallback, useEffect } from 'react';
+import React, { useCallback, useEffect,useState,useRef } from 'react';
 import styles from './homepage.module.css';
 import { useApi } from '@/hooks/request';
 import { useSelector } from 'react-redux';
 import { RootState } from '@/store';
 import { useNavigate } from 'react-router';
 import logo from '&/assets/logo.png';
-import { getUserMessage } from '@/api/homepage';
+import { getUserMessage } from '@/api/homepage'
+import { getUserDetail } from '@/api/homepage'
 import request from '@/utils/request'
-import { hotPosts } from '@/api/post';
+// import { hotPosts } from '@/api/post';
 import { postUserLogin } from '@/api/auth';
+import { debounce } from 'lodash';
+import { Q } from 'react-router/dist/development/fog-of-war-CGNKxM4z';
 
 interface WorkItem {  
   postId: number,
@@ -17,54 +20,80 @@
   postContent: string,
   createdAt: number,
   postType: string,
+  isLocked: boolean,
+  lockedReason: string,
+  lockedAt: string,
+  lockedBy: number,
   viewCount: number,
   hotScore: number,
   lastCalculated: number
-
 }
 
 interface UserStats {
+  username: string;
+  uploadAmount: number;
+  level: string;
   likes: number;
   following: number;
   followers: number;
   mutualFollows: number;
 }
 
-interface UserResponse {
-  username: string;
-  inviteCode: string;
-  stats: UserStats;
-  upload: string;
-  level: string;
-  works: WorkItem[];
-  petImage: string;
-  trafficImage: string;
-}
-
 
 const Homepage: React.FC =() => {
+  const [userStats, setUserStats] = useState<UserStats | null>(null);
+
+  const [works, setWorks] = useState<WorkItem[]>([]);
+  const worksRef = useRef<WorkItem[]>([]);
+
+
   const navigate = useNavigate();
   const userInfo = useSelector((state: RootState) => state.user);
-  
-  // 获取用户作品数据
-  // const {data: response, loading, error, refresh} =useApi(()=>request.get(getUserMessage), false);
-  const { data: response, loading, error, refresh } = useApi<UserResponse>(() => request.get(getUserMessage), false);
+  const userId = userInfo.userId; // 从Redux获取当前用户ID
+
+  const { data:userdata, loading:userloading, error:usererror, refresh: getUserDetailRefresh } = useApi(
+    () => request.get(getUserDetail, {params: {userId}}).then(res => res.data.data),
+  );
+
+  const { data:workdata, loading:workloading, error:workerror, refresh: getUserMessageRefresh } = useApi(
+    () => request.get(getUserMessage, { params: { userId } }).then(res => res.data.data),
+    false
+  );
+
+  const getUserDetails = debounce(async () => {
+    try{
+      const res = await  getUserDetailRefresh({userId});
+      console.log("res", res);
+      setUserStats(res);
+    }catch(error){
+      console.error('获取用户信息错误', error);
+    }
+  },1000) as () => void;
+
+
+  const getUserPost = debounce(async () => {
+    try{
+      const res = await getUserMessageRefresh({userId});
+      console.log("res", res);
+      worksRef.current = res;
+      setWorks(res);
+    }catch(error) {
+      console.error('获取帖子列表错误', error);
+    }
+  },1000) as () => void;
+
   useEffect(() => {
-    refresh(); // 页面首次加载时触发请求
-  }, []);
-  // 用户统计数据
-  const userStats = {
-    likes: response?.stats?.likes ?? 0,
-    following: response?.stats?.following ?? 0,
-    followers: response?.stats?.followers ?? 0,
-    mutualFollows: response?.stats?.mutualFollows ?? 0,
-    uploadAmount: response?.upload ?? '--',
-    level: response?.level ?? '--'
-  };
-  
-  const handleLogoClick = () => {
-    navigate('/');
-  };
+    if (!userId) {
+      navigate('/login');
+    }
+    else {
+      getUserDetails();
+      getUserPost();
+    }
+  }, [userId]);
+
+  if (!userId) return null;
+
 
   return (
     <div className={styles.container}>
@@ -84,32 +113,24 @@
               <h2 className={styles.username}>阳菜，放睛！</h2>
               <div className={styles.inviteCode}>邀请码：1314520</div>
               <button className={styles.editButton}>编辑主页</button>
-               <button 
-                className={styles.editButton}
-                onClick={() => navigate('/postDetails', {
-                  state: { isNewPost: true }
-                })}
-              >
-                发布种子
-              </button>
             </div>
           </div>
 
           <div className={styles.userStats}>
             <div className={styles.statItem}>
-              <div className={styles.statNumber}>{userStats.likes}</div>
+              <div className={styles.statNumber}>{userStats?.likes ?? '--'}</div>
               <div className={styles.statLabel}>获赞</div>
             </div>
             <div className={styles.statItem}>
-              <div className={styles.statNumber}>{userStats.following}</div>
+              <div className={styles.statNumber}>{userStats?.following ?? '--'}</div>
               <div className={styles.statLabel}>关注</div>
             </div>
             <div className={styles.statItem}>
-              <div className={styles.statNumber}>{userStats.followers}</div>
+              <div className={styles.statNumber}>{userStats?.followers ?? '--'}</div>
               <div className={styles.statLabel}>粉丝</div>
             </div>
             <div className={styles.statItem}>
-              <div className={styles.statNumber}>{userStats.mutualFollows}</div>
+              <div className={styles.statNumber}>{userStats?.mutualFollows ?? '--'}</div>
               <div className={styles.statLabel}>互关</div>
             </div>
           </div>
@@ -117,20 +138,20 @@
           <div className={styles.userData}>
             <div className={styles.dataItem}>
               <span>您的总上传量为：</span>
-              <strong>{userStats.uploadAmount}</strong>
+              <strong>{userStats?.uploadAmount ?? '--'}</strong>
             </div>
             <div className={styles.dataItem}>
               <span>您的用户等级为：</span>
-              <strong>{userStats.level}</strong>
+              <strong>{userStats?.level ?? '--'}</strong>
             </div>
           </div>
 
           <div className={styles.worksSection}>
             <h3 className={styles.sectionTitle}>我的作品</h3>
-            {loading && <div className={styles.loading}>加载中...</div>}
-            {error && <div className={styles.error}>{error.message}</div>}
+            {workloading && <div className={styles.loading}>加载中...</div>}
+            {workerror && <div className={styles.error}>{workerror.message}</div>}
             
-            {response && response.works.map(work => (
+            {works.map(work => (
               <div key={work.postId} className={styles.workItem}>
                 <h4 className={styles.workTitle}>{work.postTitle}</h4>
                 <div className={styles.workMeta}>
diff --git a/src/views/postList/postList.tsx b/src/views/postList/postList.tsx
index 69388d8..28a660d 100644
--- a/src/views/postList/postList.tsx
+++ b/src/views/postList/postList.tsx
@@ -1,6 +1,7 @@
 import React from "react";
 import style from "./postList.module.css";
 import SelfStatus from "@/components/selfStatus/selfStatus";
+import Corner from "@/components/corner/corner"
 import Navbar from "@/components/navbar/navbar";
 import PostsPanel from "@/components/postsPanel/postsPanel";
 import { getPosts, unknownAPI } from "@/api/post";
@@ -66,7 +67,7 @@
                     <SelfStatus/>
                 </div>
                 <div className={style.filter}>
-                    
+                    <Corner />
                 </div> 
             </div>
         </div>
diff --git a/src/views/search/search.tsx b/src/views/search/search.tsx
index cd9db91..6dba69c 100644
--- a/src/views/search/search.tsx
+++ b/src/views/search/search.tsx
@@ -16,12 +16,36 @@
   tags?: number[];
 }
 
-const tagMap: Record<number, string> = {
-  1: "搞笑",
-  2: "悬疑",
-  3: "教育",
-  4: "动作",
-  5: "剧情"
+const tagMap: Record<string, Record<number, string>> = {
+  Game: {
+    0: "android",
+    1: "mac",
+    2: "pc",
+    3: "ios",
+    4: "other",
+    5: "action",
+    6: "adventure",
+    7: "leisure",
+    8: "riddle",
+    9: "sport",
+    10: "strategy",
+    11: "table",
+  },
+  video: {
+    20: "视频标签1",
+    21: "视频标签2",
+    22: "视频标签3",
+  },
+  music: {
+    40: "音乐标签1",
+    41: "音乐标签2",
+    42: "音乐标签3",
+  },
+  software: {
+    60: "软件标签1",
+    61: "软件标签2",
+    62: "软件标签3",
+  },
 };
 
 const SearchPage: React.FC = () => {
@@ -35,6 +59,10 @@
   const params = new URLSearchParams(location.search);
   const keyword = params.get("keyword");
 
+  const getTagsForPostType = (postType: string) => {
+    return tagMap[postType] || {};
+  };
+
   useEffect(() => {
     fetch('/api/posts')
       .then((res) => res.json())
@@ -62,6 +90,7 @@
     }
 
     setFilteredPosts(filtered);
+
   };
 
   return (
@@ -73,10 +102,10 @@
         className={styles.selectBox}
         >
         <option value="all">所有分区</option>
-        <option value="影视">影视</option>
-        <option value="音乐">音乐</option>
-        <option value="游戏">游戏</option>
-        <option value="软件">软件</option>
+        <option value="video">影视</option>
+        <option value="music">音乐</option>
+        <option value="Game">游戏</option>
+        <option value="software">软件</option>
         </select>
 
         <select
@@ -97,7 +126,7 @@
 
     <div className={styles.centerSection}>
         <div className={styles.tagFilters}>
-        {Object.entries(tagMap).map(([tagId, tagName]) => (
+        {Object.entries(getTagsForPostType(selectedPostType)).map(([tagId, tagName]) => (
             <label key={tagId}>
             <input
                 type="checkbox"
