diff --git a/src/main/java/com/example/g8backend/controller/AuthController.java b/src/main/java/com/example/g8backend/controller/AuthController.java
index 1fdf906..b68eff8 100644
--- a/src/main/java/com/example/g8backend/controller/AuthController.java
+++ b/src/main/java/com/example/g8backend/controller/AuthController.java
@@ -61,9 +61,9 @@
             return ApiResponse.error(400, "用户名已存在");
         }
 
-        if (!redisTemplate.hasKey(registerDTO.getInvitationCode())) {
-            return ApiResponse.error(400, "邀请码错误");
-        }
+//        if (!redisTemplate.hasKey(registerDTO.getInvitationCode())) {
+//            return ApiResponse.error(400, "邀请码错误");
+//        }
 
         Object cachedCode = redisTemplate.opsForValue().get(registerDTO.getEmail());
         if (!registerDTO.getVerificationCode().equals(cachedCode)) {
diff --git a/src/main/java/com/example/g8backend/controller/TrackerController.java b/src/main/java/com/example/g8backend/controller/TrackerController.java
index 4e26abb..8776e36 100644
--- a/src/main/java/com/example/g8backend/controller/TrackerController.java
+++ b/src/main/java/com/example/g8backend/controller/TrackerController.java
@@ -3,6 +3,8 @@
 import com.example.g8backend.dto.AnnounceRequestDTO;
 import com.example.g8backend.dto.AnnounceResponseDTO;
 import jakarta.servlet.http.HttpServletRequest;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
@@ -28,6 +30,8 @@
             @RequestParam(value = "compact", required = false) Integer compact,
             @PathVariable String passkey) {
 
+        Logger logger = LoggerFactory.getLogger(this.getClass());
+
         AnnounceRequestDTO requestDTO = new AnnounceRequestDTO();
         requestDTO.setPasskey(passkey);
         requestDTO.setInfoHash(infoHash);
@@ -39,6 +43,8 @@
         requestDTO.setLeft(left);
         requestDTO.setCompact(compact);
 
+        logger.info(requestDTO.toString());
+
         String ipAddress = request.getHeader("X-Forwarded-For");
         if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
             ipAddress = request.getHeader("Proxy-Client-IP");
diff --git a/src/main/java/com/example/g8backend/entity/User.java b/src/main/java/com/example/g8backend/entity/User.java
index aea6335..d32cab9 100644
--- a/src/main/java/com/example/g8backend/entity/User.java
+++ b/src/main/java/com/example/g8backend/entity/User.java
@@ -25,6 +25,7 @@
     private Integer signinCount;
     private LocalDate lastSigninDate;
     private String role;
+//    private String avatarUrl; // 头像 URL 或文件名
     @TableField("is_banned")
     private Boolean isBanned = false;
 
diff --git a/src/main/java/com/example/g8backend/service/impl/TorrentRecommendationServiceImpl.java b/src/main/java/com/example/g8backend/service/impl/TorrentRecommendationServiceImpl.java
index f93c2e4..7adc4c0 100644
--- a/src/main/java/com/example/g8backend/service/impl/TorrentRecommendationServiceImpl.java
+++ b/src/main/java/com/example/g8backend/service/impl/TorrentRecommendationServiceImpl.java
@@ -102,7 +102,9 @@
             int israre = (i < limit) ? 1 : 0;
 
             // 直接调用mapper更新对应torrent的israre字段
-            torrentMapper.updateIsRareByInfoHash(dto.getInfoHash(), israre);
+            int rows = torrentMapper.updateIsRareByInfoHash(dto.getInfoHash(), israre);
+            System.out.println("更新infoHash=" + dto.getInfoHash() + " 的is_rare=" + israre + ",受影响行数=" + rows);
+
         }
     }
 }
