diff --git a/src/main/java/com/example/g8backend/controller/UserController.java b/src/main/java/com/example/g8backend/controller/UserController.java
index a41e4d7..c4c701a 100644
--- a/src/main/java/com/example/g8backend/controller/UserController.java
+++ b/src/main/java/com/example/g8backend/controller/UserController.java
@@ -4,6 +4,7 @@
 import com.example.g8backend.entity.Message;
 import com.example.g8backend.entity.User;
 import com.example.g8backend.entity.UserSignin;
+import com.example.g8backend.entity.UserStats;
 import com.example.g8backend.service.IUserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -53,11 +54,17 @@
         int followingCount = userService.getFollowingsCount(userId);
         int followersCount = userService.getFollowersCount(userId);
 
+        UserStats userStats = userService.getUserStats(userId);
+        double totalUpload = userStats != null ? userStats.getTotal_upload() : 0.0;
+        double totalDownload = userStats != null ? userStats.getTotal_download() : 0.0;
+
         return ApiResponse.success(Map.of(
                 "userInfo", user,
                 "statistics", Map.of(
                         "followingCount", followingCount,
-                        "followersCount", followersCount
+                        "followersCount", followersCount,
+                        "totalUpload", totalUpload,
+                        "totalDownload", totalDownload
                 )
         ));
     }
diff --git a/src/main/java/com/example/g8backend/service/IUserService.java b/src/main/java/com/example/g8backend/service/IUserService.java
index d980543..c69cba5 100644
--- a/src/main/java/com/example/g8backend/service/IUserService.java
+++ b/src/main/java/com/example/g8backend/service/IUserService.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.example.g8backend.entity.Message;
 import com.example.g8backend.entity.User;
+import com.example.g8backend.entity.UserStats;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -21,6 +22,9 @@
     int getFollowersCount(Long userId);
     boolean isFollowing(Long currentUserId, Long targetUserId);
 
+    // 用户统计
+    UserStats getUserStats(Long userId);
+
     // 私信功能
     Long sendMessage(Long senderId, Long receiverId, String content);
     List<Message> getMessages(Long userId, Long partnerId);
diff --git a/src/main/java/com/example/g8backend/service/impl/UserServiceImpl.java b/src/main/java/com/example/g8backend/service/impl/UserServiceImpl.java
index a5f2f5b..0a22170 100644
--- a/src/main/java/com/example/g8backend/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/example/g8backend/service/impl/UserServiceImpl.java
@@ -4,9 +4,11 @@
 import com.example.g8backend.entity.Follow;
 import com.example.g8backend.entity.Message;
 import com.example.g8backend.entity.User;
+import com.example.g8backend.entity.UserStats;
 import com.example.g8backend.mapper.FollowMapper;
 import com.example.g8backend.mapper.MessageMapper;
 import com.example.g8backend.mapper.UserMapper;
+import com.example.g8backend.mapper.UserStatsMapper;
 import com.example.g8backend.service.IUserService;
 import jakarta.annotation.Resource;
 import org.springframework.stereotype.Service;
@@ -37,6 +39,9 @@
     @Resource
     private MessageMapper messageMapper;
 
+    @Resource
+    private UserStatsMapper userStatsMapper;
+
     @Override
     public int getFollowingsCount(Long userId) {
         // 实现获取关注数的逻辑
@@ -70,6 +75,12 @@
     }
 
     @Override
+    public UserStats getUserStats(Long userId) {
+        // 通过用户ID查询统计信息
+        return userStatsMapper.selectById(userId);
+    }
+
+    @Override
     public boolean unfollowUser(Long followerId, Long followedId) {
         // 删除关注关系
         return followMapper.deleteByPair(followerId, followedId) > 0;
