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 {
+}
