Complete the corrections of the errors in the last submission.Create the backend code structure
 Please enter the commit message for your changes. Lines starting

Change-Id: I3f0c3764560b14466236e66627f34d8b71b05cd8
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;
+}