post_rating

Change-Id: Ia1a6fb3f87b793a6307046e36951c1fb36b213c8
diff --git a/src/main/java/com/example/g8backend/mapper/PostMapper.java b/src/main/java/com/example/g8backend/mapper/PostMapper.java
index baebb17..ff13000 100644
--- a/src/main/java/com/example/g8backend/mapper/PostMapper.java
+++ b/src/main/java/com/example/g8backend/mapper/PostMapper.java
@@ -64,4 +64,11 @@
             "</script>"
     })
     int batchUpdateHotScore(@Param("posts") List<Post> posts);
+
+    @Update("UPDATE posts SET average_rating = #{averageRating}, rating_count = #{ratingCount} WHERE post_id = #{postId}")
+    void updateRatingStats(
+            @Param("postId") Long postId,
+            @Param("averageRating") Double averageRating,
+            @Param("ratingCount") Integer ratingCount
+    );
 }
\ No newline at end of file
diff --git a/src/main/java/com/example/g8backend/mapper/PostRatingMapper.java b/src/main/java/com/example/g8backend/mapper/PostRatingMapper.java
new file mode 100644
index 0000000..edf2d26
--- /dev/null
+++ b/src/main/java/com/example/g8backend/mapper/PostRatingMapper.java
@@ -0,0 +1,18 @@
+package com.example.g8backend.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.example.g8backend.entity.PostRating;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+public interface PostRatingMapper extends BaseMapper<PostRating> {
+    // 自定义查询平均分
+    @Select("SELECT AVG(rating) FROM post_ratings WHERE post_id = #{postId}")
+    Double calculateAverageRating(@Param("postId") Long postId);
+
+    @Select("SELECT COUNT(*) FROM post_ratings WHERE post_id = #{postId}")
+    Integer getRatingCount(@Param("postId") Long postId);
+
+    @Select("SELECT COUNT(DISTINCT user_id) FROM post_ratings WHERE post_id = #{postId}")
+    Long selectRatingUserCount(@Param("postId") Long postId);
+}
\ No newline at end of file
diff --git a/src/main/java/com/example/g8backend/mapper/TorrentMapper.java b/src/main/java/com/example/g8backend/mapper/TorrentMapper.java
index f78a68b..6c3d215 100644
--- a/src/main/java/com/example/g8backend/mapper/TorrentMapper.java
+++ b/src/main/java/com/example/g8backend/mapper/TorrentMapper.java
@@ -7,8 +7,9 @@
 
 @Mapper
 public interface TorrentMapper extends BaseMapper<Torrent> {
-    int insertTorrent (@Param("userId") Long userId,
+    void insertTorrent (@Param("userId") Long userId,
                        @Param("torrentName") String torrentName,
+                       @Param("filePath") String filePath,
                        @Param("infoHash") String infoHash,
                        @Param("fileSize") Double fileSize);
     Torrent getTorrentByInfoHash (@Param("infoHash") String infoHash);
diff --git a/src/main/java/com/example/g8backend/mapper/UserStatsMapper.java b/src/main/java/com/example/g8backend/mapper/UserStatsMapper.java
new file mode 100644
index 0000000..1e23c69
--- /dev/null
+++ b/src/main/java/com/example/g8backend/mapper/UserStatsMapper.java
@@ -0,0 +1,13 @@
+package com.example.g8backend.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.example.g8backend.entity.UserStats;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface UserStatsMapper extends BaseMapper<UserStats> {
+    void incrementTraffic(@Param("passkey") String passkey,
+                          @Param("deltaUploaded") double deltaUploaded,
+                          @Param("deltaDownloaded") double deltaDownloaded);
+}