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);
+}