diff --git a/pom.xml b/pom.xml
index dd73283..884f193 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,15 +31,33 @@
     </properties>
     <dependencies>
         <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-webflux</artifactId>
+            <version>6.1.10</version>
         </dependency>
-
+        <dependency>
+            <groupId>com.auth0</groupId>
+            <artifactId>java-jwt</artifactId>
+            <version>4.4.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
+            <version>3.5.8</version>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>jakarta.persistence</groupId>
+            <artifactId>jakarta.persistence-api</artifactId>
+            <version>3.1.0</version>
+        </dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-devtools</artifactId>
-            <scope>runtime</scope>
-            <optional>true</optional>
+            <artifactId>spring-boot-starter-web</artifactId>
         </dependency>
         <dependency>
             <groupId>com.mysql</groupId>
@@ -57,57 +75,25 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.springframework.restdocs</groupId>
-            <artifactId>spring-restdocs-mockmvc</artifactId>
+            <groupId>com.h2database</groupId>
+            <artifactId>h2</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>com.baomidou</groupId>
-            <artifactId>mybatis-plus</artifactId>
-            <version>3.5.7</version>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>2.11.0</version> <!-- 确保使用最新版本 -->
+        </dependency>
+        <dependency>
+            <groupId>com.github.jeffreyning</groupId>
+            <artifactId>mybatisplus-plus</artifactId>
+            <version>1.7.5-RELEASE</version>
         </dependency>
     </dependencies>
 
     <build>
         <plugins>
             <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <annotationProcessorPaths>
-                        <path>
-                            <groupId>org.projectlombok</groupId>
-                            <artifactId>lombok</artifactId>
-                        </path>
-                    </annotationProcessorPaths>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.asciidoctor</groupId>
-                <artifactId>asciidoctor-maven-plugin</artifactId>
-                <version>2.2.1</version>
-                <executions>
-                    <execution>
-                        <id>generate-docs</id>
-                        <phase>prepare-package</phase>
-                        <goals>
-                            <goal>process-asciidoc</goal>
-                        </goals>
-                        <configuration>
-                            <backend>html</backend>
-                            <doctype>book</doctype>
-                        </configuration>
-                    </execution>
-                </executions>
-                <dependencies>
-                    <dependency>
-                        <groupId>org.springframework.restdocs</groupId>
-                        <artifactId>spring-restdocs-asciidoctor</artifactId>
-                        <version>${spring-restdocs.version}</version>
-                    </dependency>
-                </dependencies>
-            </plugin>
-            <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
                 <configuration>
diff --git a/src/main/java/com/g9/g9backend/G9BackendApplication.java b/src/main/java/com/g9/g9backend/G9BackendApplication.java
index aca5308..c241d07 100644
--- a/src/main/java/com/g9/g9backend/G9BackendApplication.java
+++ b/src/main/java/com/g9/g9backend/G9BackendApplication.java
@@ -1,9 +1,13 @@
 package com.g9.g9backend;
 
+import com.github.jeffreyning.mybatisplus.conf.EnableMPP;
+import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
 @SpringBootApplication
+@MapperScan("com.g9.g9backend.mapper")
+@EnableMPP
 public class G9BackendApplication {
 
     public static void main(String[] args) {
diff --git a/src/main/java/com/g9/g9backend/config/MybatisPlusConfig.java b/src/main/java/com/g9/g9backend/config/MybatisPlusConfig.java
new file mode 100644
index 0000000..31cc606
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/config/MybatisPlusConfig.java
@@ -0,0 +1,23 @@
+package com.g9.g9backend.config;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+@Configuration
+@EnableTransactionManagement
+@MapperScan( { "com.g9.g9backend.mapper" })
+public class MybatisPlusConfig {
+
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
+        mybatisPlusInterceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
+        return mybatisPlusInterceptor;
+    }
+
+}
diff --git a/src/main/java/com/g9/g9backend/controller/AIController.java b/src/main/java/com/g9/g9backend/controller/AIController.java
new file mode 100644
index 0000000..d291739
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/controller/AIController.java
@@ -0,0 +1,18 @@
+package com.g9.g9backend.controller;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * AIController AI控制器类，处理与智能搜索/推荐相关的请求
+ *
+ * @author Seamher
+ */
+@RestController
+@RequestMapping("/ai")
+public class AIController {
+
+    private final Logger logger = LoggerFactory.getLogger(AIController.class);
+}
\ No newline at end of file
diff --git a/src/main/java/com/g9/g9backend/controller/CommunityController.java b/src/main/java/com/g9/g9backend/controller/CommunityController.java
new file mode 100644
index 0000000..229fe96
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/controller/CommunityController.java
@@ -0,0 +1,16 @@
+package com.g9.g9backend.controller;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * CommunityController 社区控制器类，处理与社区相关的请求
+ *
+ * @author Seamher
+ */
+@RestController
+public class CommunityController {
+
+    private final Logger logger = LoggerFactory.getLogger(CommunityController.class);
+}
diff --git a/src/main/java/com/g9/g9backend/controller/FileController.java b/src/main/java/com/g9/g9backend/controller/FileController.java
new file mode 100644
index 0000000..1f9ccd2
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/controller/FileController.java
@@ -0,0 +1,18 @@
+package com.g9.g9backend.controller;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * FileController 文件控制器类，处理与文件相关的请求
+ *
+ * @author Seamher
+ */
+@RestController
+@RequestMapping("/file")
+public class FileController {
+
+    private final Logger logger = LoggerFactory.getLogger(FileController.class);
+}
diff --git a/src/main/java/com/g9/g9backend/controller/NotificationController.java b/src/main/java/com/g9/g9backend/controller/NotificationController.java
new file mode 100644
index 0000000..c774041
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/controller/NotificationController.java
@@ -0,0 +1,18 @@
+package com.g9.g9backend.controller;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * NotificationController 通知控制器类，处理与通知相关的请求
+ *
+ * @author Seamher
+ */
+@RestController
+@RequestMapping("/notification")
+public class NotificationController {
+
+    private final Logger logger = LoggerFactory.getLogger(NotificationController.class);
+}
diff --git a/src/main/java/com/g9/g9backend/controller/ResourceController.java b/src/main/java/com/g9/g9backend/controller/ResourceController.java
new file mode 100644
index 0000000..5398d0a
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/controller/ResourceController.java
@@ -0,0 +1,18 @@
+package com.g9.g9backend.controller;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * ResourceController 资源控制器类，处理与资源相关的请求
+ *
+ * @author hcy
+ */
+@RestController
+@RequestMapping("/resource")
+public class ResourceController {
+
+    private final Logger logger = LoggerFactory.getLogger(ResourceController.class);
+}
diff --git a/src/main/java/com/g9/g9backend/controller/RewardController.java b/src/main/java/com/g9/g9backend/controller/RewardController.java
new file mode 100644
index 0000000..c5b316b
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/controller/RewardController.java
@@ -0,0 +1,18 @@
+package com.g9.g9backend.controller;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * RewardController 悬赏控制器类，处理与悬赏相关的请求
+ *
+ * @author Seamher
+ */
+@RestController
+@RequestMapping("/reward")
+public class RewardController {
+
+    private final Logger logger = LoggerFactory.getLogger(RewardController.class);
+}
diff --git a/src/main/java/com/g9/g9backend/controller/UserController.java b/src/main/java/com/g9/g9backend/controller/UserController.java
new file mode 100644
index 0000000..ca6de5c
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/controller/UserController.java
@@ -0,0 +1,20 @@
+package com.g9.g9backend.controller;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * UserController 用户控制器类，处理与用户相关的请求
+ *
+ * @author hcy
+ */
+@RestController
+@RequestMapping("/user")
+public class UserController {
+
+    private final Logger logger = LoggerFactory.getLogger(UserController.class);
+}
+
+
diff --git a/src/main/java/com/g9/g9backend/mapper/CommentMapper.java b/src/main/java/com/g9/g9backend/mapper/CommentMapper.java
new file mode 100644
index 0000000..abb0c25
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/mapper/CommentMapper.java
@@ -0,0 +1,9 @@
+package com.g9.g9backend.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.g9.g9backend.pojo.Comment;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface CommentMapper extends BaseMapper<Comment> {
+}
diff --git a/src/main/java/com/g9/g9backend/mapper/CommunityMapper.java b/src/main/java/com/g9/g9backend/mapper/CommunityMapper.java
new file mode 100644
index 0000000..65f152c
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/mapper/CommunityMapper.java
@@ -0,0 +1,9 @@
+package com.g9.g9backend.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.g9.g9backend.pojo.Community;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface CommunityMapper extends BaseMapper<Community> {
+}
diff --git a/src/main/java/com/g9/g9backend/mapper/GameplayMapper.java b/src/main/java/com/g9/g9backend/mapper/GameplayMapper.java
new file mode 100644
index 0000000..b8db270
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/mapper/GameplayMapper.java
@@ -0,0 +1,9 @@
+package com.g9.g9backend.mapper;
+
+import com.g9.g9backend.pojo.Gameplay;
+import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface GameplayMapper extends MppBaseMapper<Gameplay> {
+}
diff --git a/src/main/java/com/g9/g9backend/mapper/InvitationMapper.java b/src/main/java/com/g9/g9backend/mapper/InvitationMapper.java
new file mode 100644
index 0000000..a7beab4
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/mapper/InvitationMapper.java
@@ -0,0 +1,9 @@
+package com.g9.g9backend.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.g9.g9backend.pojo.Invitation;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface InvitationMapper extends BaseMapper<Invitation> {
+}
diff --git a/src/main/java/com/g9/g9backend/mapper/NotificationMapper.java b/src/main/java/com/g9/g9backend/mapper/NotificationMapper.java
new file mode 100644
index 0000000..2eebdeb
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/mapper/NotificationMapper.java
@@ -0,0 +1,9 @@
+package com.g9.g9backend.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.g9.g9backend.pojo.Notification;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface NotificationMapper extends BaseMapper<Notification> {
+}
diff --git a/src/main/java/com/g9/g9backend/mapper/ResourceMapper.java b/src/main/java/com/g9/g9backend/mapper/ResourceMapper.java
new file mode 100644
index 0000000..143fac1
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/mapper/ResourceMapper.java
@@ -0,0 +1,9 @@
+package com.g9.g9backend.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.g9.g9backend.pojo.Resource;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface ResourceMapper extends BaseMapper<Resource> {
+}
diff --git a/src/main/java/com/g9/g9backend/mapper/ResourceVersionMapper.java b/src/main/java/com/g9/g9backend/mapper/ResourceVersionMapper.java
new file mode 100644
index 0000000..8184acd
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/mapper/ResourceVersionMapper.java
@@ -0,0 +1,9 @@
+package com.g9.g9backend.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.g9.g9backend.pojo.ResourceVersion;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface ResourceVersionMapper extends BaseMapper<ResourceVersion> {
+}
diff --git a/src/main/java/com/g9/g9backend/mapper/RewardMapper.java b/src/main/java/com/g9/g9backend/mapper/RewardMapper.java
new file mode 100644
index 0000000..2186c98
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/mapper/RewardMapper.java
@@ -0,0 +1,9 @@
+package com.g9.g9backend.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.g9.g9backend.pojo.Reward;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface RewardMapper extends BaseMapper<Reward> {
+}
diff --git a/src/main/java/com/g9/g9backend/mapper/SearchHistoryMapper.java b/src/main/java/com/g9/g9backend/mapper/SearchHistoryMapper.java
new file mode 100644
index 0000000..96e8f38
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/mapper/SearchHistoryMapper.java
@@ -0,0 +1,9 @@
+package com.g9.g9backend.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.g9.g9backend.pojo.SearchHistory;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SearchHistoryMapper extends BaseMapper<SearchHistory> {
+}
diff --git a/src/main/java/com/g9/g9backend/mapper/SubscriptionMapper.java b/src/main/java/com/g9/g9backend/mapper/SubscriptionMapper.java
new file mode 100644
index 0000000..acdc946
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/mapper/SubscriptionMapper.java
@@ -0,0 +1,9 @@
+package com.g9.g9backend.mapper;
+
+import com.g9.g9backend.pojo.Subscription;
+import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface SubscriptionMapper extends MppBaseMapper<Subscription> {
+}
diff --git a/src/main/java/com/g9/g9backend/mapper/ThreadMapper.java b/src/main/java/com/g9/g9backend/mapper/ThreadMapper.java
new file mode 100644
index 0000000..2dc2e6c
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/mapper/ThreadMapper.java
@@ -0,0 +1,9 @@
+package com.g9.g9backend.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.g9.g9backend.pojo.Thread;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface ThreadMapper extends BaseMapper<Thread> {
+}
diff --git a/src/main/java/com/g9/g9backend/mapper/TorrentRecordMapper.java b/src/main/java/com/g9/g9backend/mapper/TorrentRecordMapper.java
new file mode 100644
index 0000000..f10fd73
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/mapper/TorrentRecordMapper.java
@@ -0,0 +1,9 @@
+package com.g9.g9backend.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.g9.g9backend.pojo.TorrentRecord;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface TorrentRecordMapper extends BaseMapper<TorrentRecord> {
+}
diff --git a/src/main/java/com/g9/g9backend/mapper/UserCollectionMapper.java b/src/main/java/com/g9/g9backend/mapper/UserCollectionMapper.java
new file mode 100644
index 0000000..b12680f
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/mapper/UserCollectionMapper.java
@@ -0,0 +1,9 @@
+package com.g9.g9backend.mapper;
+
+import com.g9.g9backend.pojo.UserCollection;
+import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface UserCollectionMapper extends MppBaseMapper<UserCollection> {
+}
diff --git a/src/main/java/com/g9/g9backend/mapper/UserLikeMapper.java b/src/main/java/com/g9/g9backend/mapper/UserLikeMapper.java
new file mode 100644
index 0000000..ec59892
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/mapper/UserLikeMapper.java
@@ -0,0 +1,9 @@
+package com.g9.g9backend.mapper;
+
+import com.g9.g9backend.pojo.UserLike;
+import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface UserLikeMapper extends MppBaseMapper<UserLike> {
+}
diff --git a/src/main/java/com/g9/g9backend/mapper/UserMapper.java b/src/main/java/com/g9/g9backend/mapper/UserMapper.java
new file mode 100644
index 0000000..9efd790
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/mapper/UserMapper.java
@@ -0,0 +1,9 @@
+package com.g9.g9backend.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.g9.g9backend.pojo.User;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface UserMapper extends BaseMapper<User> {
+}
diff --git a/src/main/java/com/g9/g9backend/mapper/UserPurchaseMapper.java b/src/main/java/com/g9/g9backend/mapper/UserPurchaseMapper.java
new file mode 100644
index 0000000..4af725a
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/mapper/UserPurchaseMapper.java
@@ -0,0 +1,9 @@
+package com.g9.g9backend.mapper;
+
+import com.g9.g9backend.pojo.UserPurchase;
+import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface UserPurchaseMapper extends MppBaseMapper<UserPurchase> {
+}
diff --git a/src/main/java/com/g9/g9backend/mapper/UserUploadMapper.java b/src/main/java/com/g9/g9backend/mapper/UserUploadMapper.java
new file mode 100644
index 0000000..403f742
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/mapper/UserUploadMapper.java
@@ -0,0 +1,9 @@
+package com.g9.g9backend.mapper;
+
+import com.g9.g9backend.pojo.UserUpload;
+import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface UserUploadMapper extends MppBaseMapper<UserUpload> {
+}
diff --git a/src/main/java/com/g9/g9backend/mapper/VersionMapper.java b/src/main/java/com/g9/g9backend/mapper/VersionMapper.java
new file mode 100644
index 0000000..fbf2b83
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/mapper/VersionMapper.java
@@ -0,0 +1,9 @@
+package com.g9.g9backend.mapper;
+
+import com.g9.g9backend.pojo.Version;
+import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface VersionMapper extends MppBaseMapper<Version> {
+}
diff --git a/src/main/java/com/g9/g9backend/pojo/Comment.java b/src/main/java/com/g9/g9backend/pojo/Comment.java
new file mode 100644
index 0000000..08ebed6
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/pojo/Comment.java
@@ -0,0 +1,34 @@
+package com.g9.g9backend.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * Comment 实体类，表示评论的数据模型
+ *
+ * @author hcy
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class Comment {
+
+    @TableId
+    private int commentId;
+
+    private int userId;
+
+    private int threadId;
+
+    private int resourceId;
+
+    private int rewardId;
+
+    private int replyId;
+
+    private String content;
+
+    private Date createAt;
+}
diff --git a/src/main/java/com/g9/g9backend/pojo/Community.java b/src/main/java/com/g9/g9backend/pojo/Community.java
new file mode 100644
index 0000000..35f63de
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/pojo/Community.java
@@ -0,0 +1,32 @@
+package com.g9.g9backend.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.*;
+
+/**
+ * Community 实体类，表示社区的数据模型
+ *
+ * @author hcy
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class Community {
+
+    @TableId
+    private int communityId;
+
+    private String communityName;
+
+    private String communityPicture;
+
+    private String description;
+
+    private float hot;
+
+    private String type;
+
+    private int threadNumber;
+
+    private int resourceId;
+}
\ No newline at end of file
diff --git a/src/main/java/com/g9/g9backend/pojo/DTO/GetInvitationCodeDTO.java b/src/main/java/com/g9/g9backend/pojo/DTO/GetInvitationCodeDTO.java
new file mode 100644
index 0000000..2f3aaf2
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/pojo/DTO/GetInvitationCodeDTO.java
@@ -0,0 +1,27 @@
+package com.g9.g9backend.pojo.DTO;
+
+import com.g9.g9backend.pojo.Invitation;
+import lombok.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class GetInvitationCodeDTO {
+
+    // 调用 .add() 方法之前，确保 invitationCodeList 已经被实例化，否则会抛出空指针
+    private List<InvitationCode> invitationCodeList = new ArrayList<>();
+
+    public GetInvitationCodeDTO(List<Invitation> invitationList) {
+        for (Invitation invitation : invitationList) {
+            invitationCodeList.add(new InvitationCode(invitation.getInvitationCode()));
+        }
+    }
+
+    // 内部类 InvitationCode
+    @Data //注意没有@Data的话即没有getter、setter方法，会导致Jackson无法获取私有字段（仅对private）的值，从而无法序列化这个类
+    @AllArgsConstructor
+    public static class InvitationCode {
+        private String invitationCode;
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/g9/g9backend/pojo/DTO/GetUserRewardDTO.java b/src/main/java/com/g9/g9backend/pojo/DTO/GetUserRewardDTO.java
new file mode 100644
index 0000000..237d707
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/pojo/DTO/GetUserRewardDTO.java
@@ -0,0 +1,23 @@
+package com.g9.g9backend.pojo.DTO;
+
+import com.g9.g9backend.pojo.Reward;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+public class GetUserRewardDTO {
+
+    private List<Reward> rewardList;
+
+    private long total;
+
+    private long pages;
+
+    private long current;
+
+    private long size;
+
+}
diff --git a/src/main/java/com/g9/g9backend/pojo/DTO/RegisterDTO.java b/src/main/java/com/g9/g9backend/pojo/DTO/RegisterDTO.java
new file mode 100644
index 0000000..c7263dd
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/pojo/DTO/RegisterDTO.java
@@ -0,0 +1,16 @@
+package com.g9.g9backend.pojo.DTO;
+
+import lombok.*;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class RegisterDTO {
+
+    private String username;
+
+    private String password;
+
+    private String invitationCode;
+
+}
diff --git a/src/main/java/com/g9/g9backend/pojo/Gameplay.java b/src/main/java/com/g9/g9backend/pojo/Gameplay.java
new file mode 100644
index 0000000..dfde540
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/pojo/Gameplay.java
@@ -0,0 +1,21 @@
+package com.g9.g9backend.pojo;
+
+import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
+import lombok.*;
+
+/**
+ * Gameplay 实体类，表示游戏玩法的数据模型
+ *
+ * @author hcy
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class Gameplay {
+
+    @MppMultiId
+    private String gameplayName;
+
+    @MppMultiId
+    private int resourceId;
+}
\ No newline at end of file
diff --git a/src/main/java/com/g9/g9backend/pojo/Invitation.java b/src/main/java/com/g9/g9backend/pojo/Invitation.java
new file mode 100644
index 0000000..782b0e1
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/pojo/Invitation.java
@@ -0,0 +1,22 @@
+package com.g9.g9backend.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.*;
+
+/**
+ * Invitation 实体类，表示邀请的数据模型
+ *
+ * @author hcy
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class Invitation {
+
+    @TableId
+    private String invitationCode;
+
+    private int userId;
+
+    private int inviteeId;
+}
diff --git a/src/main/java/com/g9/g9backend/pojo/Notification.java b/src/main/java/com/g9/g9backend/pojo/Notification.java
new file mode 100644
index 0000000..18f8e37
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/pojo/Notification.java
@@ -0,0 +1,36 @@
+package com.g9.g9backend.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * Notification 实体类，表示通知的数据模型
+ *
+ * @author hcy
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class Notification {
+
+    @TableId
+    private int notificationId;
+
+    private int userId;
+
+    private String type;
+
+    private String title;
+
+    private String content;
+
+    private Date createAt;
+
+    private boolean isRead;
+
+    private int triggeredBy;
+
+    private int relatedId;
+}
\ No newline at end of file
diff --git a/src/main/java/com/g9/g9backend/pojo/Resource.java b/src/main/java/com/g9/g9backend/pojo/Resource.java
new file mode 100644
index 0000000..f4346b2
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/pojo/Resource.java
@@ -0,0 +1,46 @@
+package com.g9.g9backend.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * Resource 实体类，表示资源的数据模型
+ *
+ * @author hcy
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class Resource {
+
+    @TableId
+    private int resourceId;
+
+    private String resourceName;
+
+    private String resourcePicture;
+
+    private String resourceSummary;
+
+    private String resourceDetail;
+
+    private Date uploadTime;
+
+    private Date lastUpdateTime;
+
+    private float price;
+
+    private int downloads;
+
+    private int likes;
+
+    private int collections;
+
+    private int comments;
+
+    private int seeds;
+
+    private String classify;
+}
\ No newline at end of file
diff --git a/src/main/java/com/g9/g9backend/pojo/ResourceVersion.java b/src/main/java/com/g9/g9backend/pojo/ResourceVersion.java
new file mode 100644
index 0000000..1e4acf9
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/pojo/ResourceVersion.java
@@ -0,0 +1,22 @@
+package com.g9.g9backend.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.*;
+
+/**
+ * ResourceVersion 实体类，表示资源版本的数据模型
+ *
+ * @author hcy
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ResourceVersion {
+
+    @TableId
+    private int resourceVersionId;
+
+    private String resourceVersionName;
+
+    private int resourceId;
+}
\ No newline at end of file
diff --git a/src/main/java/com/g9/g9backend/pojo/Reward.java b/src/main/java/com/g9/g9backend/pojo/Reward.java
new file mode 100644
index 0000000..91e376d
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/pojo/Reward.java
@@ -0,0 +1,40 @@
+package com.g9.g9backend.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * Reward 实体类，表示悬赏的数据模型
+ *
+ * @author hcy
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class Reward {
+
+    @TableId
+    private int rewardId;
+
+    private String rewardName;
+
+    private String rewardPicture;
+
+    private int userId;
+
+    private float price;
+
+    private String rewardDescription;
+
+    private Date createAt;
+
+    private Date lastUpdateAt;
+
+    private int completedBy;
+
+    private Date completedAt;
+
+    private int resourceId;
+}
\ No newline at end of file
diff --git a/src/main/java/com/g9/g9backend/pojo/SearchHistory.java b/src/main/java/com/g9/g9backend/pojo/SearchHistory.java
new file mode 100644
index 0000000..ba8894c
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/pojo/SearchHistory.java
@@ -0,0 +1,22 @@
+package com.g9.g9backend.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.*;
+
+/**
+ * SearchHistory 实体类，表示搜索历史的数据模型
+ *
+ * @author hcy
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SearchHistory {
+
+    @TableId
+    private int searchHistoryId;
+
+    private String searchContent;
+
+    private int userId;
+}
diff --git a/src/main/java/com/g9/g9backend/pojo/Subscription.java b/src/main/java/com/g9/g9backend/pojo/Subscription.java
new file mode 100644
index 0000000..399399e
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/pojo/Subscription.java
@@ -0,0 +1,21 @@
+package com.g9.g9backend.pojo;
+
+import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
+import lombok.*;
+
+/**
+ * Subscription 实体类，表示订阅的数据模型
+ *
+ * @author hcy
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class Subscription {
+
+    @MppMultiId
+    private int userId;
+
+    @MppMultiId
+    private int followerId;
+}
\ No newline at end of file
diff --git a/src/main/java/com/g9/g9backend/pojo/Thread.java b/src/main/java/com/g9/g9backend/pojo/Thread.java
new file mode 100644
index 0000000..f14929c
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/pojo/Thread.java
@@ -0,0 +1,38 @@
+package com.g9.g9backend.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * Thread 实体类，表示评论的数据模型
+ *
+ * @author hcy
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class Thread {
+
+    @TableId
+    private int threadId;
+
+    private int userId;
+
+    private String threadPicture;
+
+    private String title;
+
+    private String content;
+
+    private int likes;
+
+    private boolean isLike;
+
+    private Date createAt;
+
+    private int commentNumber;
+
+    private int communityId;
+}
diff --git a/src/main/java/com/g9/g9backend/pojo/TorrentRecord.java b/src/main/java/com/g9/g9backend/pojo/TorrentRecord.java
new file mode 100644
index 0000000..89ed56b
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/pojo/TorrentRecord.java
@@ -0,0 +1,30 @@
+package com.g9.g9backend.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.*;
+
+import java.util.Date;
+
+/**
+ * TorrentRecord 实体类，表示做种记录的数据模型
+ *
+ * @author hcy
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class TorrentRecord {
+
+    @TableId
+    private int torrentRecordId;
+
+    private String torrentUrl;
+
+    private String infoHash;
+
+    private Date uploadTime;
+
+    private int uploaderUserId;
+
+    private int resourceVersionId;
+}
diff --git a/src/main/java/com/g9/g9backend/pojo/User.java b/src/main/java/com/g9/g9backend/pojo/User.java
new file mode 100644
index 0000000..2915460
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/pojo/User.java
@@ -0,0 +1,36 @@
+package com.g9.g9backend.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.*;
+
+/**
+ * User 实体类，表示用户的数据模型
+ *
+ * @author hcy
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class User {
+
+    @TableId
+    private int userId;
+
+    private String username;
+
+    private String password;
+
+    private String avatar;
+
+    private int followerCount;
+
+    private int subscriberCount;
+
+    private String signature;
+
+    private int uploadAmount;
+
+    private int purchaseAmount;
+
+    private int credits;
+}
diff --git a/src/main/java/com/g9/g9backend/pojo/UserCollection.java b/src/main/java/com/g9/g9backend/pojo/UserCollection.java
new file mode 100644
index 0000000..7ffb746
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/pojo/UserCollection.java
@@ -0,0 +1,22 @@
+package com.g9.g9backend.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
+import lombok.*;
+
+/**
+ * UserCollection 实体类，表示用户收藏的数据模型
+ *
+ * @author hcy
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class UserCollection {
+
+    @MppMultiId
+    private int userId;
+
+    @MppMultiId
+    private int resourceId;
+}
diff --git a/src/main/java/com/g9/g9backend/pojo/UserLike.java b/src/main/java/com/g9/g9backend/pojo/UserLike.java
new file mode 100644
index 0000000..585661b
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/pojo/UserLike.java
@@ -0,0 +1,22 @@
+package com.g9.g9backend.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
+import lombok.*;
+
+/**
+ * UserLike 实体类，表示用户点赞的数据模型
+ *
+ * @author hcy
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class UserLike {
+
+    @MppMultiId
+    private int userId;
+
+    @MppMultiId
+    private int resourceId;
+}
diff --git a/src/main/java/com/g9/g9backend/pojo/UserPurchase.java b/src/main/java/com/g9/g9backend/pojo/UserPurchase.java
new file mode 100644
index 0000000..80ac247
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/pojo/UserPurchase.java
@@ -0,0 +1,22 @@
+package com.g9.g9backend.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
+import lombok.*;
+
+/**
+ * UserPurchase 实体类，表示用户购买的数据模型
+ *
+ * @author hcy
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class UserPurchase {
+
+    @MppMultiId
+    private int userId;
+
+    @MppMultiId
+    private int resourceId;
+}
\ No newline at end of file
diff --git a/src/main/java/com/g9/g9backend/pojo/UserUpload.java b/src/main/java/com/g9/g9backend/pojo/UserUpload.java
new file mode 100644
index 0000000..8f9fc42
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/pojo/UserUpload.java
@@ -0,0 +1,22 @@
+package com.g9.g9backend.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
+import lombok.*;
+
+/**
+ * UserUpload 实体类，表示用户上传的数据模型
+ *
+ * @author hcy
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class UserUpload {
+
+    @MppMultiId
+    private int userId;
+
+    @MppMultiId
+    private int resourceId;
+}
\ No newline at end of file
diff --git a/src/main/java/com/g9/g9backend/pojo/Version.java b/src/main/java/com/g9/g9backend/pojo/Version.java
new file mode 100644
index 0000000..1f4fe9f
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/pojo/Version.java
@@ -0,0 +1,22 @@
+package com.g9.g9backend.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.github.jeffreyning.mybatisplus.anno.MppMultiId;
+import lombok.*;
+
+/**
+ * Version 实体类，表示游戏版本的数据模型
+ *
+ * @author hcy
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class Version {
+
+    @MppMultiId
+    private String versionName;
+
+    @MppMultiId
+    private int resourceVersionId;
+}
diff --git a/src/main/java/com/g9/g9backend/service/CommentService.java b/src/main/java/com/g9/g9backend/service/CommentService.java
new file mode 100644
index 0000000..11cee22
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/CommentService.java
@@ -0,0 +1,7 @@
+package com.g9.g9backend.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.g9.g9backend.pojo.Comment;
+
+public interface CommentService extends IService<Comment> {
+}
diff --git a/src/main/java/com/g9/g9backend/service/CommunityService.java b/src/main/java/com/g9/g9backend/service/CommunityService.java
new file mode 100644
index 0000000..a9bb07b
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/CommunityService.java
@@ -0,0 +1,7 @@
+package com.g9.g9backend.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.g9.g9backend.pojo.Community;
+
+public interface CommunityService extends IService<Community> {
+}
diff --git a/src/main/java/com/g9/g9backend/service/GameplayService.java b/src/main/java/com/g9/g9backend/service/GameplayService.java
new file mode 100644
index 0000000..46abf47
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/GameplayService.java
@@ -0,0 +1,7 @@
+package com.g9.g9backend.service;
+
+import com.g9.g9backend.pojo.Gameplay;
+import com.github.jeffreyning.mybatisplus.service.IMppService;
+
+public interface GameplayService extends IMppService<Gameplay> {
+}
diff --git a/src/main/java/com/g9/g9backend/service/InvitationService.java b/src/main/java/com/g9/g9backend/service/InvitationService.java
new file mode 100644
index 0000000..3708d53
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/InvitationService.java
@@ -0,0 +1,7 @@
+package com.g9.g9backend.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.g9.g9backend.pojo.Invitation;
+
+public interface InvitationService extends IService<Invitation> {
+}
diff --git a/src/main/java/com/g9/g9backend/service/NotificationService.java b/src/main/java/com/g9/g9backend/service/NotificationService.java
new file mode 100644
index 0000000..81df5ba
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/NotificationService.java
@@ -0,0 +1,7 @@
+package com.g9.g9backend.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.g9.g9backend.pojo.Notification;
+
+public interface NotificationService extends IService<Notification> {
+}
diff --git a/src/main/java/com/g9/g9backend/service/ResourceService.java b/src/main/java/com/g9/g9backend/service/ResourceService.java
new file mode 100644
index 0000000..80a5894
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/ResourceService.java
@@ -0,0 +1,7 @@
+package com.g9.g9backend.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.g9.g9backend.pojo.Resource;
+
+public interface ResourceService extends IService<Resource> {
+}
diff --git a/src/main/java/com/g9/g9backend/service/ResourceVersionService.java b/src/main/java/com/g9/g9backend/service/ResourceVersionService.java
new file mode 100644
index 0000000..446843d
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/ResourceVersionService.java
@@ -0,0 +1,7 @@
+package com.g9.g9backend.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.g9.g9backend.pojo.ResourceVersion;
+
+public interface ResourceVersionService extends IService<ResourceVersion> {
+}
diff --git a/src/main/java/com/g9/g9backend/service/RewardService.java b/src/main/java/com/g9/g9backend/service/RewardService.java
new file mode 100644
index 0000000..3354687
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/RewardService.java
@@ -0,0 +1,7 @@
+package com.g9.g9backend.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.g9.g9backend.pojo.Reward;
+
+public interface RewardService extends IService<Reward> {
+}
diff --git a/src/main/java/com/g9/g9backend/service/SearchHistoryService.java b/src/main/java/com/g9/g9backend/service/SearchHistoryService.java
new file mode 100644
index 0000000..af571d3
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/SearchHistoryService.java
@@ -0,0 +1,7 @@
+package com.g9.g9backend.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.g9.g9backend.pojo.SearchHistory;
+
+public interface SearchHistoryService extends IService<SearchHistory> {
+}
diff --git a/src/main/java/com/g9/g9backend/service/SubscriptionService.java b/src/main/java/com/g9/g9backend/service/SubscriptionService.java
new file mode 100644
index 0000000..efb31a4
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/SubscriptionService.java
@@ -0,0 +1,7 @@
+package com.g9.g9backend.service;
+
+import com.g9.g9backend.pojo.Subscription;
+import com.github.jeffreyning.mybatisplus.service.IMppService;
+
+public interface SubscriptionService extends IMppService<Subscription> {
+}
diff --git a/src/main/java/com/g9/g9backend/service/ThreadService.java b/src/main/java/com/g9/g9backend/service/ThreadService.java
new file mode 100644
index 0000000..8a7f6c0
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/ThreadService.java
@@ -0,0 +1,7 @@
+package com.g9.g9backend.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.g9.g9backend.pojo.Thread;
+
+public interface ThreadService extends IService<Thread> {
+}
diff --git a/src/main/java/com/g9/g9backend/service/TorrentRecordService.java b/src/main/java/com/g9/g9backend/service/TorrentRecordService.java
new file mode 100644
index 0000000..1be9886
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/TorrentRecordService.java
@@ -0,0 +1,7 @@
+package com.g9.g9backend.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.g9.g9backend.pojo.TorrentRecord;
+
+public interface TorrentRecordService extends IService<TorrentRecord> {
+}
diff --git a/src/main/java/com/g9/g9backend/service/UserCollectionService.java b/src/main/java/com/g9/g9backend/service/UserCollectionService.java
new file mode 100644
index 0000000..7445918
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/UserCollectionService.java
@@ -0,0 +1,7 @@
+package com.g9.g9backend.service;
+
+import com.g9.g9backend.pojo.UserCollection;
+import com.github.jeffreyning.mybatisplus.service.IMppService;
+
+public interface UserCollectionService extends IMppService<UserCollection> {
+}
diff --git a/src/main/java/com/g9/g9backend/service/UserLikeService.java b/src/main/java/com/g9/g9backend/service/UserLikeService.java
new file mode 100644
index 0000000..97b710a
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/UserLikeService.java
@@ -0,0 +1,7 @@
+package com.g9.g9backend.service;
+
+import com.g9.g9backend.pojo.UserLike;
+import com.github.jeffreyning.mybatisplus.service.IMppService;
+
+public interface UserLikeService extends IMppService<UserLike> {
+}
diff --git a/src/main/java/com/g9/g9backend/service/UserPurchaseService.java b/src/main/java/com/g9/g9backend/service/UserPurchaseService.java
new file mode 100644
index 0000000..4b0c810
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/UserPurchaseService.java
@@ -0,0 +1,7 @@
+package com.g9.g9backend.service;
+
+import com.g9.g9backend.pojo.UserPurchase;
+import com.github.jeffreyning.mybatisplus.service.IMppService;
+
+public interface UserPurchaseService extends IMppService<UserPurchase> {
+}
diff --git a/src/main/java/com/g9/g9backend/service/UserService.java b/src/main/java/com/g9/g9backend/service/UserService.java
new file mode 100644
index 0000000..ef73123
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/UserService.java
@@ -0,0 +1,7 @@
+package com.g9.g9backend.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.g9.g9backend.pojo.User;
+
+public interface UserService extends IService<User> {
+}
diff --git a/src/main/java/com/g9/g9backend/service/UserUploadService.java b/src/main/java/com/g9/g9backend/service/UserUploadService.java
new file mode 100644
index 0000000..9de5434
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/UserUploadService.java
@@ -0,0 +1,7 @@
+package com.g9.g9backend.service;
+
+import com.g9.g9backend.pojo.UserUpload;
+import com.github.jeffreyning.mybatisplus.service.IMppService;
+
+public interface UserUploadService extends IMppService<UserUpload> {
+}
diff --git a/src/main/java/com/g9/g9backend/service/VersionService.java b/src/main/java/com/g9/g9backend/service/VersionService.java
new file mode 100644
index 0000000..aff7fc7
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/VersionService.java
@@ -0,0 +1,7 @@
+package com.g9.g9backend.service;
+
+import com.g9.g9backend.pojo.Version;
+import com.github.jeffreyning.mybatisplus.service.IMppService;
+
+public interface VersionService extends IMppService<Version> {
+}
diff --git a/src/main/java/com/g9/g9backend/service/impl/CommentServiceImpl.java b/src/main/java/com/g9/g9backend/service/impl/CommentServiceImpl.java
new file mode 100644
index 0000000..54d6baa
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/impl/CommentServiceImpl.java
@@ -0,0 +1,11 @@
+package com.g9.g9backend.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.g9.g9backend.mapper.CommentMapper;
+import com.g9.g9backend.pojo.Comment;
+import com.g9.g9backend.service.CommentService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class CommentServiceImpl extends ServiceImpl<CommentMapper, Comment> implements CommentService {
+}
diff --git a/src/main/java/com/g9/g9backend/service/impl/CommunityServiceImpl.java b/src/main/java/com/g9/g9backend/service/impl/CommunityServiceImpl.java
new file mode 100644
index 0000000..b894c1d
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/impl/CommunityServiceImpl.java
@@ -0,0 +1,11 @@
+package com.g9.g9backend.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.g9.g9backend.mapper.CommunityMapper;
+import com.g9.g9backend.pojo.Community;
+import com.g9.g9backend.service.CommunityService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class CommunityServiceImpl extends ServiceImpl<CommunityMapper, Community> implements CommunityService {
+}
diff --git a/src/main/java/com/g9/g9backend/service/impl/GameplayServiceImpl.java b/src/main/java/com/g9/g9backend/service/impl/GameplayServiceImpl.java
new file mode 100644
index 0000000..ea61895
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/impl/GameplayServiceImpl.java
@@ -0,0 +1,11 @@
+package com.g9.g9backend.service.impl;
+
+import com.g9.g9backend.mapper.GameplayMapper;
+import com.g9.g9backend.pojo.Gameplay;
+import com.g9.g9backend.service.GameplayService;
+import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+public class GameplayServiceImpl extends MppServiceImpl<GameplayMapper, Gameplay> implements GameplayService {
+}
diff --git a/src/main/java/com/g9/g9backend/service/impl/InvitationServiceImpl.java b/src/main/java/com/g9/g9backend/service/impl/InvitationServiceImpl.java
new file mode 100644
index 0000000..9530312
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/impl/InvitationServiceImpl.java
@@ -0,0 +1,11 @@
+package com.g9.g9backend.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.g9.g9backend.mapper.InvitationMapper;
+import com.g9.g9backend.pojo.Invitation;
+import com.g9.g9backend.service.InvitationService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class InvitationServiceImpl extends ServiceImpl<InvitationMapper, Invitation> implements InvitationService {
+}
diff --git a/src/main/java/com/g9/g9backend/service/impl/NotificationServiceImpl.java b/src/main/java/com/g9/g9backend/service/impl/NotificationServiceImpl.java
new file mode 100644
index 0000000..6201051
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/impl/NotificationServiceImpl.java
@@ -0,0 +1,11 @@
+package com.g9.g9backend.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.g9.g9backend.mapper.NotificationMapper;
+import com.g9.g9backend.pojo.Notification;
+import com.g9.g9backend.service.NotificationService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class NotificationServiceImpl extends ServiceImpl<NotificationMapper, Notification> implements NotificationService {
+}
diff --git a/src/main/java/com/g9/g9backend/service/impl/ResourceServiceImpl.java b/src/main/java/com/g9/g9backend/service/impl/ResourceServiceImpl.java
new file mode 100644
index 0000000..978c4a0
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/impl/ResourceServiceImpl.java
@@ -0,0 +1,11 @@
+package com.g9.g9backend.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.g9.g9backend.mapper.ResourceMapper;
+import com.g9.g9backend.pojo.Resource;
+import com.g9.g9backend.service.ResourceService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class ResourceServiceImpl extends ServiceImpl<ResourceMapper, Resource> implements ResourceService {
+}
diff --git a/src/main/java/com/g9/g9backend/service/impl/ResourceVersionServiceImpl.java b/src/main/java/com/g9/g9backend/service/impl/ResourceVersionServiceImpl.java
new file mode 100644
index 0000000..a0d684b
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/impl/ResourceVersionServiceImpl.java
@@ -0,0 +1,9 @@
+package com.g9.g9backend.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.g9.g9backend.mapper.ResourceVersionMapper;
+import com.g9.g9backend.pojo.ResourceVersion;
+import com.g9.g9backend.service.ResourceVersionService;
+
+public class ResourceVersionServiceImpl extends ServiceImpl<ResourceVersionMapper, ResourceVersion> implements ResourceVersionService {
+}
diff --git a/src/main/java/com/g9/g9backend/service/impl/RewardServiceImpl.java b/src/main/java/com/g9/g9backend/service/impl/RewardServiceImpl.java
new file mode 100644
index 0000000..472d5d1
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/impl/RewardServiceImpl.java
@@ -0,0 +1,11 @@
+package com.g9.g9backend.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.g9.g9backend.mapper.RewardMapper;
+import com.g9.g9backend.pojo.Reward;
+import com.g9.g9backend.service.RewardService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class RewardServiceImpl extends ServiceImpl<RewardMapper, Reward> implements RewardService {
+}
diff --git a/src/main/java/com/g9/g9backend/service/impl/SearchHistoryServiceImpl.java b/src/main/java/com/g9/g9backend/service/impl/SearchHistoryServiceImpl.java
new file mode 100644
index 0000000..d226ff4
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/impl/SearchHistoryServiceImpl.java
@@ -0,0 +1,11 @@
+package com.g9.g9backend.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.g9.g9backend.mapper.SearchHistoryMapper;
+import com.g9.g9backend.pojo.SearchHistory;
+import com.g9.g9backend.service.SearchHistoryService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SearchHistoryServiceImpl extends ServiceImpl<SearchHistoryMapper, SearchHistory> implements SearchHistoryService {
+}
diff --git a/src/main/java/com/g9/g9backend/service/impl/SubscriptionServiceImpl.java b/src/main/java/com/g9/g9backend/service/impl/SubscriptionServiceImpl.java
new file mode 100644
index 0000000..d432b0b
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/impl/SubscriptionServiceImpl.java
@@ -0,0 +1,11 @@
+package com.g9.g9backend.service.impl;
+
+import com.g9.g9backend.mapper.SubscriptionMapper;
+import com.g9.g9backend.pojo.Subscription;
+import com.g9.g9backend.service.SubscriptionService;
+import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SubscriptionServiceImpl extends MppServiceImpl<SubscriptionMapper, Subscription> implements SubscriptionService {
+}
diff --git a/src/main/java/com/g9/g9backend/service/impl/ThreadServiceImpl.java b/src/main/java/com/g9/g9backend/service/impl/ThreadServiceImpl.java
new file mode 100644
index 0000000..e9468e2
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/impl/ThreadServiceImpl.java
@@ -0,0 +1,11 @@
+package com.g9.g9backend.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.g9.g9backend.mapper.ThreadMapper;
+import com.g9.g9backend.pojo.Thread;
+import com.g9.g9backend.service.ThreadService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class ThreadServiceImpl extends ServiceImpl<ThreadMapper, Thread> implements ThreadService {
+}
diff --git a/src/main/java/com/g9/g9backend/service/impl/TorrentRecordServiceImpl.java b/src/main/java/com/g9/g9backend/service/impl/TorrentRecordServiceImpl.java
new file mode 100644
index 0000000..3739fb0
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/impl/TorrentRecordServiceImpl.java
@@ -0,0 +1,9 @@
+package com.g9.g9backend.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.g9.g9backend.mapper.TorrentRecordMapper;
+import com.g9.g9backend.pojo.TorrentRecord;
+import com.g9.g9backend.service.TorrentRecordService;
+
+public class TorrentRecordServiceImpl extends ServiceImpl<TorrentRecordMapper, TorrentRecord> implements TorrentRecordService {
+}
diff --git a/src/main/java/com/g9/g9backend/service/impl/UserCollectionServiceImpl.java b/src/main/java/com/g9/g9backend/service/impl/UserCollectionServiceImpl.java
new file mode 100644
index 0000000..3cb2ede
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/impl/UserCollectionServiceImpl.java
@@ -0,0 +1,11 @@
+package com.g9.g9backend.service.impl;
+
+import com.g9.g9backend.mapper.UserCollectionMapper;
+import com.g9.g9backend.pojo.UserCollection;
+import com.g9.g9backend.service.UserCollectionService;
+import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+public class UserCollectionServiceImpl extends MppServiceImpl<UserCollectionMapper, UserCollection> implements UserCollectionService {
+}
diff --git a/src/main/java/com/g9/g9backend/service/impl/UserLikeServiceImpl.java b/src/main/java/com/g9/g9backend/service/impl/UserLikeServiceImpl.java
new file mode 100644
index 0000000..469032c
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/impl/UserLikeServiceImpl.java
@@ -0,0 +1,11 @@
+package com.g9.g9backend.service.impl;
+
+import com.g9.g9backend.mapper.UserLikeMapper;
+import com.g9.g9backend.pojo.UserLike;
+import com.g9.g9backend.service.UserLikeService;
+import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+public class UserLikeServiceImpl extends MppServiceImpl<UserLikeMapper, UserLike> implements UserLikeService {
+}
diff --git a/src/main/java/com/g9/g9backend/service/impl/UserPurchaseServiceImpl.java b/src/main/java/com/g9/g9backend/service/impl/UserPurchaseServiceImpl.java
new file mode 100644
index 0000000..8ce2735
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/impl/UserPurchaseServiceImpl.java
@@ -0,0 +1,11 @@
+package com.g9.g9backend.service.impl;
+
+import com.g9.g9backend.mapper.UserPurchaseMapper;
+import com.g9.g9backend.pojo.UserPurchase;
+import com.g9.g9backend.service.UserPurchaseService;
+import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+public class UserPurchaseServiceImpl extends MppServiceImpl<UserPurchaseMapper, UserPurchase> implements UserPurchaseService {
+}
diff --git a/src/main/java/com/g9/g9backend/service/impl/UserServiceImpl.java b/src/main/java/com/g9/g9backend/service/impl/UserServiceImpl.java
new file mode 100644
index 0000000..25ec0d6
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/impl/UserServiceImpl.java
@@ -0,0 +1,11 @@
+package com.g9.g9backend.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.g9.g9backend.mapper.UserMapper;
+import com.g9.g9backend.pojo.User;
+import com.g9.g9backend.service.UserService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
+}
diff --git a/src/main/java/com/g9/g9backend/service/impl/UserUploadServiceImpl.java b/src/main/java/com/g9/g9backend/service/impl/UserUploadServiceImpl.java
new file mode 100644
index 0000000..73da607
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/impl/UserUploadServiceImpl.java
@@ -0,0 +1,11 @@
+package com.g9.g9backend.service.impl;
+
+import com.g9.g9backend.mapper.UserUploadMapper;
+import com.g9.g9backend.pojo.UserUpload;
+import com.g9.g9backend.service.UserUploadService;
+import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+public class UserUploadServiceImpl extends MppServiceImpl<UserUploadMapper, UserUpload> implements UserUploadService {
+}
diff --git a/src/main/java/com/g9/g9backend/service/impl/VersionServiceImpl.java b/src/main/java/com/g9/g9backend/service/impl/VersionServiceImpl.java
new file mode 100644
index 0000000..28ff686
--- /dev/null
+++ b/src/main/java/com/g9/g9backend/service/impl/VersionServiceImpl.java
@@ -0,0 +1,11 @@
+package com.g9.g9backend.service.impl;
+
+import com.g9.g9backend.mapper.VersionMapper;
+import com.g9.g9backend.pojo.Version;
+import com.g9.g9backend.service.VersionService;
+import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+public class VersionServiceImpl extends MppServiceImpl<VersionMapper, Version> implements VersionService {
+}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index e70f2b6..07ec02f 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,3 +1,16 @@
 spring:
   application:
-    name: G9Backend
+    name: G9backend
+  datasource:
+    url: jdbc:mysql://localhost:3306/mcpt
+    username: root
+    password:
+  jpa:
+    hibernate:
+      ddl-auto: none
+    show-sql: true
+    properties:
+      hibernate:
+        dialect: org.hibernate.dialect.MySQLDialect
+        boot:
+          allow_jdbc_metadata_access: false
