绑定表
Change-Id: I9b381569457d242d1bd37bd8306e87d93eb0f640
diff --git a/src/main/java/object/Appeal.java b/src/main/java/object/Appeal.java
index 3df37e8..5057179 100644
--- a/src/main/java/object/Appeal.java
+++ b/src/main/java/object/Appeal.java
@@ -1,9 +1,35 @@
package object;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.ForeignKey;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.Lob;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "Appeal")
public class Appeal {
+ @Id
+ @Column(name = "appeal_id", length = 64, nullable = false)
public String appealid;
+
+ @Column(name = "user_id", length = 36, nullable = false)
public String appealuserid;
+
+ @ManyToOne(optional = false)
+ @JoinColumn(name = "user_id", referencedColumnName = "user_id", foreignKey = @ForeignKey(name = "fk_appeal_user"), insertable = false, updatable = false)
+ public User user;
+
+ @Lob
+ @Column(name = "content", nullable = false)
public String content;
+
+ @Column(name = "file_url", length = 255)
public String fileURL;
+
+ @Column(name = "status", nullable = false)
public int state; // 0: pending, 1: approved, 2: rejected
}
diff --git a/src/main/java/object/BegInfo.java b/src/main/java/object/BegInfo.java
index 1ac6bf5..4c3589a 100644
--- a/src/main/java/object/BegInfo.java
+++ b/src/main/java/object/BegInfo.java
@@ -1,9 +1,31 @@
package object;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+
+@Entity
+@Table(name = "BegSeed")
public class BegInfo {
+ @Id
+ @Column(name = "beg_id", length = 64, nullable = false)
public String begid;
+
+ @Column(name = "beg_count", nullable = false)
public int begnumbers;
+
+ @Column(name = "reward_magic", nullable = false)
public int magic;
- public String endtime;
+
+ @Column(name = "deadline", nullable = false)
+ @Temporal(TemporalType.TIMESTAMP)
+ public Date endtime;
+
+ @Column(name = "has_match", nullable = false)
public boolean hasseed;
}
diff --git a/src/main/java/object/Notice.java b/src/main/java/object/Notice.java
index 244eee1..a0b2b11 100644
--- a/src/main/java/object/Notice.java
+++ b/src/main/java/object/Notice.java
@@ -1,8 +1,25 @@
package object;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Lob;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "Announcement")
public class Notice {
+ @Id
+ @Column(name = "announce_id", length = 64, nullable = false)
public String noticeid;
+
+ @Lob
+ @Column(name = "content", nullable = false)
public String noticecontent;
+
+ @Column(name = "is_public", nullable = false)
public boolean state;
+
+ @Column(name = "tag", length = 100)
public String posttag;
}
diff --git a/src/main/java/object/Post.java b/src/main/java/object/Post.java
index 84f9757..463e242 100644
--- a/src/main/java/object/Post.java
+++ b/src/main/java/object/Post.java
@@ -1,11 +1,46 @@
package object;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.ForeignKey;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.Lob;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+
+@Entity
+@Table(name = "Post")
public class Post {
+ @Id
+ @Column(name = "post_id", length = 64, nullable = false)
public String postid;
+
+ @Column(name = "title", length = 255, nullable = false)
public String posttitle;
+
+ @Lob
+ @Column(name = "content", nullable = false)
public String postcontent;
+
+ @Column(name = "author_id", length = 36, nullable = false)
public String postuserid;
- public String posttime;
- public String replytime;
- public String readtime;
+
+ @ManyToOne(optional = false)
+ @JoinColumn(name = "author_id", referencedColumnName = "user_id", foreignKey = @ForeignKey(name = "fk_post_user"), insertable = false, updatable = false)
+ public User author;
+
+ @Column(name = "created_at", nullable = false)
+ @Temporal(TemporalType.TIMESTAMP)
+ public Date posttime;
+
+ @Column(name = "reply_count", nullable = false)
+ public int replytime;
+
+ @Column(name = "view_count", nullable = false)
+ public int readtime;
}
diff --git a/src/main/java/object/Profile.java b/src/main/java/object/Profile.java
index a33e7cd..c8469a9 100644
--- a/src/main/java/object/Profile.java
+++ b/src/main/java/object/Profile.java
@@ -1,13 +1,46 @@
package object;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.ForeignKey;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+
+@Entity
+@Table(name = "UserMigration")
public class Profile {//迁移信息
+ @Id
+ @Column(name = "migration_id", length = 64, nullable = false)
public String profileurl;
+
+ @Column(name = "user_id", length = 36, nullable = false)
public String userid;
+
+ @ManyToOne(optional = false)
+ @JoinColumn(name = "user_id", referencedColumnName = "user_id", foreignKey = @ForeignKey(name = "fk_um_user"), insertable = false, updatable = false)
+ public User user;
+
+ @Column(name = "approved", nullable = false)
public boolean exampass;
+
+ @Column(name = "pending_magic", nullable = false)
public String magictogive;
+
+ @Column(name = "pending_uploaded", nullable = false)
public String uploadtogive;
+
+ @Transient
public String downloadtogive;
+
+ @Column(name = "granted_magic", nullable = false)
public String magicgived;
+
+ @Column(name = "granted_uploaded", nullable = false)
public String uploadgived;
+
+ @Transient
public String downloadgived;
}
diff --git a/src/main/java/object/Seed.java b/src/main/java/object/Seed.java
index b353f46..b4f4c16 100644
--- a/src/main/java/object/Seed.java
+++ b/src/main/java/object/Seed.java
@@ -1,13 +1,53 @@
package object;
+import java.util.Date;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.ForeignKey;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+
+@Entity
+@Table(name = "Seed")
public class Seed {
+ @Id
+ @Column(name = "seed_id", length = 64, nullable = false)
public String seedid;
+
+ @Column(name = "owner_user_id", length = 36, nullable = false)
public String seeduserid;
+
+ @ManyToOne(optional = false)
+ @JoinColumn(name = "owner_user_id", referencedColumnName = "user_id", foreignKey = @ForeignKey(name = "fk_seed_user"), insertable = false, updatable = false)
+ public User user;
+
+ @Column(name = "fake_hits", nullable = false)
public int faketime;
+
+ @Column(name = "last_fake_check")
+ @Temporal(TemporalType.TIMESTAMP)
+ public Date lastfakecheck;
+
+ @Column(name = "external_url")
public String outurl;
+
+ @Column(name = "title", length = 255, nullable = false)
public String title;
+
+ @Column(name = "subtitle", length = 255)
public String subtitle;
+
+ @Column(name = "size", length = 50, nullable = false)
public String seedsize;
+
+ @Column(name = "tags")
public String seedtag;
+
+ @Column(name = "popularity", nullable = false)
public int downloadtimes;
}
diff --git a/src/main/java/object/TransRecord.java b/src/main/java/object/TransRecord.java
index e32dce2..7f1c800 100644
--- a/src/main/java/object/TransRecord.java
+++ b/src/main/java/object/TransRecord.java
@@ -1,12 +1,54 @@
package object;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.ForeignKey;
+import javax.persistence.Id;
+import javax.persistence.IdClass;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "Transport")
+@IdClass(TransportId.class)
public class TransRecord{
+ @Id
+ @Column(name = "task_id", length = 64, nullable = false)
public String taskid;
+
+ @Id
+ @Column(name = "uploader_id", length = 36, nullable = false)
public String uploaduserid;
+
+ @ManyToOne(optional = false)
+ @JoinColumn(name = "uploader_id", referencedColumnName = "user_id", foreignKey = @ForeignKey(name = "fk_tr_user_up"), insertable = false, updatable = false)
+ public User uploader;
+
+ @Id
+ @Column(name = "downloader_id", length = 36, nullable = false)
public String downloaduserid;
+
+ @ManyToOne(optional = false)
+ @JoinColumn(name = "downloader_id", referencedColumnName = "user_id", foreignKey = @ForeignKey(name = "fk_tr_user_down"), insertable = false, updatable = false)
+ public User downloader;
+
+ @Column(name = "seed_id", length = 64, nullable = false)
public String seedid;
- public int upload;
- public int download;
- public int maxupload;
- public int maxdownload;
+
+ @ManyToOne(optional = false)
+ @JoinColumn(name = "seed_id", referencedColumnName = "seed_id", foreignKey = @ForeignKey(name = "fk_tr_seed"), insertable = false, updatable = false)
+ public Seed seed;
+
+ @Column(name = "uploaded", nullable = false)
+ public long upload;
+
+ @Column(name = "downloaded", nullable = false)
+ public long download;
+
+ @Column(name = "upload_peak", nullable = false)
+ public long maxupload;
+
+ @Column(name = "download_peak", nullable = false)
+ public long maxdownload;
}
\ No newline at end of file
diff --git a/src/main/java/object/TransportId.java b/src/main/java/object/TransportId.java
new file mode 100644
index 0000000..8e102d3
--- /dev/null
+++ b/src/main/java/object/TransportId.java
@@ -0,0 +1,38 @@
+package object;
+
+import java.io.Serializable;
+import java.util.Objects;
+
+public class TransportId implements Serializable {
+ private String taskid;
+ private String uploaduserid;
+ private String downloaduserid;
+
+ public TransportId() {}
+
+ public TransportId(String taskid, String uploaduserid, String downloaduserid) {
+ this.taskid = taskid;
+ this.uploaduserid = uploaduserid;
+ this.downloaduserid = downloaduserid;
+ }
+
+ public String getTaskid() { return taskid; }
+ public void setTaskid(String taskid) { this.taskid = taskid; }
+ public String getUploaduserid() { return uploaduserid; }
+ public void setUploaduserid(String uploaduserid) { this.uploaduserid = uploaduserid; }
+ public String getDownloaduserid() { return downloaduserid; }
+ public void setDownloaduserid(String downloaduserid) { this.downloaduserid = downloaduserid; }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ TransportId that = (TransportId) o;
+ return Objects.equals(taskid, that.taskid) && Objects.equals(uploaduserid, that.uploaduserid) && Objects.equals(downloaduserid, that.downloaduserid);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(taskid, uploaduserid, downloaduserid);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/object/User.java b/src/main/java/object/User.java
index b9d72a1..5e8dfaa 100644
--- a/src/main/java/object/User.java
+++ b/src/main/java/object/User.java
@@ -1,15 +1,43 @@
package object;
+import javax.persistence.*;
+
+@Entity
+@Table(name = "User", uniqueConstraints = @UniqueConstraint(name = "uniq_email", columnNames = {"email"}))
+@IdClass(UserId.class)
public class User {
+ @Id
+ @Column(name = "user_id", length = 36, nullable = false)
public String userid;
+
+ @Column(name = "username", length = 100, nullable = false)
public String username;
+
+ @Column(name = "password", length = 255, nullable = false)
public String password;
+
+ @Column(name = "gender", nullable = false)
public String sex;
+
+ @Transient
public String age;
+
+ @Id
+ @Column(name = "email", length = 255, nullable = false)
public String email;
+
+ @Column(name = "school")
public String school;
+
+ @Column(name = "avatar_url")
public String pictureurl;
+
+ @Column(name = "bio")
public String profile;
+
+ @Column(name = "account_status", nullable = false)
public boolean accountstate;
+
+ @Column(name = "invite_left", nullable = false)
public int invitetimes;
}
diff --git a/src/main/java/object/UserId.java b/src/main/java/object/UserId.java
new file mode 100644
index 0000000..c68ce68
--- /dev/null
+++ b/src/main/java/object/UserId.java
@@ -0,0 +1,36 @@
+package object;
+
+import java.io.Serializable;
+import java.util.Objects;
+
+public class UserId implements Serializable {
+ private String userid;
+ private String email;
+
+ public UserId() {}
+
+ public UserId(String userid, String email) {
+ this.userid = userid;
+ this.email = email;
+ }
+
+ // getters and setters
+ public String getUserid() { return userid; }
+ public void setUserid(String userid) { this.userid = userid; }
+
+ public String getEmail() { return email; }
+ public void setEmail(String email) { this.email = email; }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ UserId userId = (UserId) o;
+ return Objects.equals(userid, userId.userid) && Objects.equals(email, userId.email);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(userid, email);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/object/UserPT.java b/src/main/java/object/UserPT.java
index 0332640..db3703f 100644
--- a/src/main/java/object/UserPT.java
+++ b/src/main/java/object/UserPT.java
@@ -1,11 +1,41 @@
package object;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.ForeignKey;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.MapsId;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+
+@Entity
+@Table(name = "UserPT")
public class UserPT {
+ @Id
+ @Column(name = "user_id", length = 36, nullable = false)
public String userid;
+
+ @OneToOne(optional = false)
+ @MapsId
+ @JoinColumn(name = "user_id", referencedColumnName = "user_id", foreignKey = @ForeignKey(name = "fk_pt_user"))
+ public User user;
+
+ @Column(name = "magic", nullable = false)
public int magic;
- public int upload;
- public int download;
+
+ @Column(name = "uploaded", nullable = false)
+ public long upload;
+
+ @Column(name = "downloaded", nullable = false)
+ public long download;
+
+ @Column(name = "ratio", nullable = false, precision = 5, scale = 2)
public double share;
+
+ @Column(name = "default_seed_path")
public String farmurl;
- public String viptime;
+
+ @Column(name = "vip_downloads", nullable = false)
+ public int viptime;
}