fix GET /user return the statistics of user
Change-Id: Ic17cd985e45daee3c242b699bfd3bfa11a46298e
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;