作弊&促销

Change-Id: Ibdee947370e11c3a98912569e1a290b5e0968fbe
diff --git a/src/main/java/com/example/myproject/mapper/AuditRecordMapper.java b/src/main/java/com/example/myproject/mapper/AuditRecordMapper.java
new file mode 100644
index 0000000..2aae334
--- /dev/null
+++ b/src/main/java/com/example/myproject/mapper/AuditRecordMapper.java
@@ -0,0 +1,13 @@
+package com.example.myproject.mapper;
+
+import com.example.myproject.entity.AuditRecord;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface AuditRecordMapper {
+
+    @Insert("INSERT INTO audit_record (torrent_id, upload, download, create_time) " +
+            "VALUES (#{torrentId}, #{upload}, #{download}, #{createTime})")
+    void insert(AuditRecord record);
+}
\ No newline at end of file
diff --git a/src/main/java/com/example/myproject/mapper/BannedUserMapper.java b/src/main/java/com/example/myproject/mapper/BannedUserMapper.java
new file mode 100644
index 0000000..9b376e6
--- /dev/null
+++ b/src/main/java/com/example/myproject/mapper/BannedUserMapper.java
@@ -0,0 +1,15 @@
+package com.example.myproject.mapper;
+
+import com.example.myproject.entity.AuditRecord;
+import com.example.myproject.entity.BannedUser;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface BannedUserMapper {
+
+    @Insert("INSERT INTO banned_user (user_id, reason, create_time) " +
+            "VALUES (#{userId}, #{reason}, #{createTime})")
+    void insert(BannedUser bannedUser);
+}
\ No newline at end of file
diff --git a/src/main/java/com/example/myproject/mapper/PromotionMapper.java b/src/main/java/com/example/myproject/mapper/PromotionMapper.java
index a478835..caf96ee 100644
--- a/src/main/java/com/example/myproject/mapper/PromotionMapper.java
+++ b/src/main/java/com/example/myproject/mapper/PromotionMapper.java
@@ -24,7 +24,8 @@
     @Select("SELECT p.* FROM promotion p " +
             "WHERE p.is_deleted = false " +
             "AND p.start_time <= #{now} AND p.end_time >= #{now} " +
-            "AND FIND_IN_SET(#{torrentId}, p.applicable_torrent_ids) > 0")
+//            "AND FIND_IN_SET(#{torrentId}, p.applicable_torrent_ids) > 0"
+             "AND JSON_CONTAINS(p.applicable_torrent_ids, CAST(#{torrentId} AS JSON))")
     List<Promotion> findActivePromotionsForTorrent(
             @Param("torrentId") Long torrentId,
             @Param("now") LocalDateTime now);
diff --git a/src/main/java/com/example/myproject/mapper/SuspiciousUserMapper.java b/src/main/java/com/example/myproject/mapper/SuspiciousUserMapper.java
new file mode 100644
index 0000000..533c597
--- /dev/null
+++ b/src/main/java/com/example/myproject/mapper/SuspiciousUserMapper.java
@@ -0,0 +1,12 @@
+package com.example.myproject.mapper;
+
+import com.example.myproject.entity.SuspiciousUser;
+import org.apache.ibatis.annotations.Insert;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SuspiciousUserMapper {
+    @Insert("INSERT INTO suspicious_user (user_id, reason, speed_kbs, create_time) " +
+            "VALUES (#{userId}, #{reason}, #{speedKBs}, #{createTime})")
+    void insert(SuspiciousUser user);
+}
\ No newline at end of file
diff --git a/src/main/java/com/example/myproject/mapper/TorrentMapper.java b/src/main/java/com/example/myproject/mapper/TorrentMapper.java
index f9cdcdc..5e72bf2 100644
--- a/src/main/java/com/example/myproject/mapper/TorrentMapper.java
+++ b/src/main/java/com/example/myproject/mapper/TorrentMapper.java
@@ -15,18 +15,20 @@
 
     @Select("SELECT * FROM torrents WHERE info_hash = #{infoHash}")
     TorrentEntity selectByInfoHash(String infoHash);
-    
-    @Select("SELECT * FROM torrents WHERE seed_id = #{seedId}")
-    TorrentEntity selectBySeedId(Long seedId);
-    
+
     List<TorrentEntity> search(@Param("param") TorrentParam param);
-    
-    @Update("UPDATE torrent SET downloads = downloads + 1 WHERE id = #{torrentId}")
-    void increaseDownloads(@Param("torrentId") Long torrentId);
-    
+
     boolean checkFavorite(@Param("seedId") Long seedId, @Param("userId") Long userId);
     
     void addFavorite(@Param("seedId") Long seedId, @Param("userId") Long userId);
     
     void removeFavorite(@Param("seedId") Long seedId, @Param("userId") Long userId);
+    List<TorrentEntity> selectMyFavorite(@Param("userId") Long userId);
+    @Select("SELECT * FROM torrent")
+    List<TorrentEntity> findAllTorrents();
+    @Update("UPDATE torrent SET upload_count = upload_count + #{uploaded}, download_count = download_count + #{downloaded} WHERE id = #{torrentId}")
+    void updateTorrentUploadDownload(@Param("torrentId") Long torrentId,
+                                     @Param("uploaded") double uploaded,
+                                     @Param("downloaded") double downloaded);
+
 }
\ No newline at end of file
diff --git a/src/main/java/com/example/myproject/mapper/UserMapper.java b/src/main/java/com/example/myproject/mapper/UserMapper.java
index 1752801..4a10a38 100644
--- a/src/main/java/com/example/myproject/mapper/UserMapper.java
+++ b/src/main/java/com/example/myproject/mapper/UserMapper.java
@@ -1,4 +1,5 @@
 package com.example.myproject.mapper;
+import com.example.myproject.entity.TorrentEntity;
 import com.example.myproject.entity.User;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -30,6 +31,14 @@
 
     @Select("SELECT * FROM user WHERE user_id = #{userId}")
     User selectByUserId(@Param("userId") Long userId);
+    @Update("UPDATE user SET upload_count = upload_count + #{bonusUploaded}, download_count = download_count + #{bonusDownloaded} WHERE user_id = #{userId}")
+    int updateUserUploadDownload(@Param("userId") Long userId,
+                                 @Param("bonusUploaded") double bonusUploaded,
+                                 @Param("bonusDownloaded") double bonusDownloaded);
+
+
+
+
 
 
 }
\ No newline at end of file