upload功能

Change-Id: Iad725ce3e2edd913531bf11705bf51000dde010d
diff --git a/src/main/java/com/pt5/pthouduan/mapper/UserMapper.java b/src/main/java/com/pt5/pthouduan/mapper/UserMapper.java
index 89c37ab..2f96180 100644
--- a/src/main/java/com/pt5/pthouduan/mapper/UserMapper.java
+++ b/src/main/java/com/pt5/pthouduan/mapper/UserMapper.java
@@ -1,11 +1,21 @@
 package com.pt5.pthouduan.mapper;
 
+import com.pt5.pthouduan.entity.PeerInfo;
 import com.pt5.pthouduan.entity.User;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.*;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
 
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author ljx
+ * @since 2025-04-14
+ */
 @Repository
 public interface UserMapper extends BaseMapper<User> {
     @Insert("INSERT INTO user(username, password, email, passkey) VALUES(#{username}, #{password}, #{email}, #{passkey})")
@@ -17,6 +27,15 @@
     @Select("SELECT * FROM User WHERE email = #{email}")
     User selectByEmail(String email);
 
+    @Select("SELECT credit FROM User WHERE username = #{username}")
+    int getcreditByUsername(String username);
+
+    @Update("UPDATE user SET credit = credit - #{price} WHERE username = #{username}")
+    int deductCreditByUsername(@Param("username") String username, @Param("price") int price);
+
+    @Update("UPDATE user SET upload = upload + #{upload} WHERE username = #{username}")
+    int increaseUploadByUsername(@Param("username") String username, @Param("upload") Integer upload);
+
     @Update("UPDATE user SET password = #{password} WHERE username = #{username}")
     int updatePassword(@Param("username") String username, @Param("password") String password);
 
@@ -28,4 +47,14 @@
 
     @Update("UPDATE user SET gradeId = #{gradeId} WHERE username = #{username}")
     int updateGrade(@Param("username") String username, @Param("gradeId") Integer gradeId);
+
+    @Update("UPDATE user SET decoration = CONCAT(IFNULL(decoration, ''), ' ', #{newDecoration}) WHERE username = #{username}")
+    int appendUserDecoration(@Param("username") String username, @Param("newDecoration") String newDecoration);
+
+    boolean existsByPasskey(String passkey);
+    void incrementUserTraffic( @Param("info_hash") String infoHash,@Param("passkey") String passkey, @Param("user_upload") long uploaded, @Param("user_download") long downloaded);
+
+    String getUsernameByPasskey(String passkey);
+
+    List<PeerInfo> findSeedersByInfoHash(@Param("infoHash") String infoHash);
 }