修改UserFavorite表和UsrStar实体类
Change-Id: I0b535cf4c8efd35e74df69ec3c1f8a4b2f0b8eed
diff --git a/src/main/java/entity/UserStar.java b/src/main/java/entity/UserStar.java
index c47ec24..d39a488 100644
--- a/src/main/java/entity/UserStar.java
+++ b/src/main/java/entity/UserStar.java
@@ -1,5 +1,6 @@
package entity;
+import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.ForeignKey;
@@ -8,6 +9,8 @@
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
@Entity
@Table(name = "UserFavorite")
@@ -39,5 +42,9 @@
)
public Seed seed;
+ @Column(name = "created_at", nullable = false)
+ @Temporal(TemporalType.TIMESTAMP)
+ public Date createdAt;
+
public UserStar() {}
}
\ No newline at end of file
diff --git "a/\345\274\200\345\217\221\346\226\207\346\241\243/create.sql" "b/\345\274\200\345\217\221\346\226\207\346\241\243/create.sql"
index 74b40c5..12d9233 100644
--- "a/\345\274\200\345\217\221\346\226\207\346\241\243/create.sql"
+++ "b/\345\274\200\345\217\221\346\226\207\346\241\243/create.sql"
@@ -1,182 +1,191 @@
-- 用户表
CREATE TABLE `User` (
- `user_id` VARCHAR(36) NOT NULL,
- `email` VARCHAR(255) NOT NULL,
- `username` VARCHAR(100) NOT NULL,
- `password` VARCHAR(255) NOT NULL,
- `gender` ENUM('m','f') NOT NULL,
- `school` VARCHAR(255) DEFAULT NULL,
- `avatar_url` VARCHAR(255) DEFAULT NULL,
- `bio` TEXT,
- `account_status` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '0=正常,1=被ban',
- `invite_left` INT NOT NULL DEFAULT 0,
- PRIMARY KEY (`user_id`,`email`),
- UNIQUE KEY `uniq_email` (`email`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+ `user_id` VARCHAR(36) NOT NULL,
+ `email` VARCHAR(255) NOT NULL,
+ `username` VARCHAR(100) NOT NULL,
+ `password` VARCHAR(255) NOT NULL,
+ `gender` ENUM('m', 'f') NOT NULL,
+ `school` VARCHAR(255) DEFAULT NULL,
+ `avatar_url` VARCHAR(255) DEFAULT NULL,
+ `bio` TEXT,
+ `account_status` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '0=正常,1=被ban',
+ `invite_left` INT NOT NULL DEFAULT 0,
+ PRIMARY KEY (`user_id`, `email`),
+ UNIQUE KEY `uniq_email` (`email`)
+) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
-- 用户邀请表
CREATE TABLE `UserInvite` (
- `user_id` VARCHAR(36) NOT NULL,
- `inviter_email` VARCHAR(255) NOT NULL,
- `inviter_registered` TINYINT(1) NOT NULL DEFAULT 0,
- PRIMARY KEY (`user_id`,`inviter_email`),
- CONSTRAINT `fk_ui_user` FOREIGN KEY (`user_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+ `user_id` VARCHAR(36) NOT NULL,
+ `inviter_email` VARCHAR(255) NOT NULL,
+ `inviter_registered` TINYINT(1) NOT NULL DEFAULT 0,
+ PRIMARY KEY (`user_id`, `inviter_email`),
+ CONSTRAINT `fk_ui_user` FOREIGN KEY (`user_id`) REFERENCES `User` (`user_id`) ON DELETE CASCADE
+) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
-- 用户 PT 信息表
CREATE TABLE `UserPT` (
- `user_id` VARCHAR(36) NOT NULL,
- `magic` INT NOT NULL DEFAULT 0,
- `uploaded` BIGINT NOT NULL DEFAULT 0,
- `downloaded` BIGINT NOT NULL DEFAULT 0,
- `ratio` DECIMAL(5,2) NOT NULL DEFAULT 0.00,
- `default_seed_path` VARCHAR(255) DEFAULT NULL,
- `vip_downloads` INT NOT NULL DEFAULT 0,
- PRIMARY KEY (`user_id`),
- CONSTRAINT `fk_pt_user` FOREIGN KEY (`user_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+ `user_id` VARCHAR(36) NOT NULL,
+ `magic` INT NOT NULL DEFAULT 0,
+ `uploaded` BIGINT NOT NULL DEFAULT 0,
+ `downloaded` BIGINT NOT NULL DEFAULT 0,
+ `ratio` DECIMAL(5, 2) NOT NULL DEFAULT 0.00,
+ `default_seed_path` VARCHAR(255) DEFAULT NULL,
+ `vip_downloads` INT NOT NULL DEFAULT 0,
+ PRIMARY KEY (`user_id`),
+ CONSTRAINT `fk_pt_user` FOREIGN KEY (`user_id`) REFERENCES `User` (`user_id`) ON DELETE CASCADE
+) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
-- 种子表
CREATE TABLE `Seed` (
- `seed_id` VARCHAR(64) NOT NULL,
- `owner_user_id` VARCHAR(36) NOT NULL,
- `fake_hits` INT NOT NULL DEFAULT 0,
- `last_fake_check` DATETIME DEFAULT NULL,
- `external_url` VARCHAR(255) DEFAULT NULL,
- `title` VARCHAR(255) NOT NULL,
- `subtitle` VARCHAR(255) DEFAULT NULL,
- `size` VARCHAR(50) NOT NULL,
- `tags` VARCHAR(255) DEFAULT NULL,
- `popularity` INT NOT NULL DEFAULT 0,
- PRIMARY KEY (`seed_id`),
- CONSTRAINT `fk_seed_user` FOREIGN KEY (`owner_user_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+ `seed_id` VARCHAR(64) NOT NULL,
+ `owner_user_id` VARCHAR(36) NOT NULL,
+ `fake_hits` INT NOT NULL DEFAULT 0,
+ `last_fake_check` DATETIME DEFAULT NULL,
+ `external_url` VARCHAR(255) DEFAULT NULL,
+ `title` VARCHAR(255) NOT NULL,
+ `subtitle` VARCHAR(255) DEFAULT NULL,
+ `size` VARCHAR(50) NOT NULL,
+ `tags` VARCHAR(255) DEFAULT NULL,
+ `popularity` INT NOT NULL DEFAULT 0,
+ PRIMARY KEY (`seed_id`),
+ CONSTRAINT `fk_seed_user` FOREIGN KEY (`owner_user_id`) REFERENCES `User` (`user_id`) ON DELETE CASCADE
+) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
-- 种子下载表
CREATE TABLE `SeedDownload` (
- `task_id` VARCHAR(64) NOT NULL,
- `user_id` VARCHAR(36) NOT NULL,
- `seed_id` VARCHAR(64) NOT NULL,
- `download_start` DATETIME NOT NULL,
- `download_end` DATETIME DEFAULT NULL,
- `is_dedicated` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '0=普通,1=专线',
- `client_ip` VARCHAR(45) DEFAULT NULL,
- PRIMARY KEY (`task_id`),
- CONSTRAINT `fk_sd_user` FOREIGN KEY (`user_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE,
- CONSTRAINT `fk_sd_seed` FOREIGN KEY (`seed_id`) REFERENCES `Seed`(`seed_id`) ON DELETE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+ `task_id` VARCHAR(64) NOT NULL,
+ `user_id` VARCHAR(36) NOT NULL,
+ `seed_id` VARCHAR(64) NOT NULL,
+ `download_start` DATETIME NOT NULL,
+ `download_end` DATETIME DEFAULT NULL,
+ `is_dedicated` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '0=普通,1=专线',
+ `client_ip` VARCHAR(45) DEFAULT NULL,
+ PRIMARY KEY (`task_id`),
+ CONSTRAINT `fk_sd_user` FOREIGN KEY (`user_id`) REFERENCES `User` (`user_id`) ON DELETE CASCADE,
+ CONSTRAINT `fk_sd_seed` FOREIGN KEY (`seed_id`) REFERENCES `Seed` (`seed_id`) ON DELETE CASCADE
+) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
-- 缓存种子数据表
CREATE TABLE `VipSeed` (
- `seed_id` VARCHAR(64) NOT NULL,
- `seeder_count` INT NOT NULL DEFAULT 0,
- `reward_magic` INT NOT NULL DEFAULT 0,
- `stop_caching` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '0=继续缓存,1=不缓存',
- PRIMARY KEY (`seed_id`),
- CONSTRAINT `fk_vip_seed` FOREIGN KEY (`seed_id`) REFERENCES `Seed`(`seed_id`) ON DELETE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+ `seed_id` VARCHAR(64) NOT NULL,
+ `seeder_count` INT NOT NULL DEFAULT 0,
+ `reward_magic` INT NOT NULL DEFAULT 0,
+ `stop_caching` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '0=继续缓存,1=不缓存',
+ PRIMARY KEY (`seed_id`),
+ CONSTRAINT `fk_vip_seed` FOREIGN KEY (`seed_id`) REFERENCES `Seed` (`seed_id`) ON DELETE CASCADE
+) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
-- 传输信息表
CREATE TABLE `Transport` (
- `task_id` VARCHAR(64) NOT NULL,
- `uploader_id` VARCHAR(36) NOT NULL,
- `downloader_id` VARCHAR(36) NOT NULL,
- `seed_id` VARCHAR(64) NOT NULL,
- `uploaded` BIGINT NOT NULL DEFAULT 0,
- `downloaded` BIGINT NOT NULL DEFAULT 0,
- `upload_peak` BIGINT NOT NULL DEFAULT 0,
- `download_peak` BIGINT NOT NULL DEFAULT 0,
- PRIMARY KEY (`task_id`, `uploader_id`, `downloader_id`),
- CONSTRAINT `fk_tr_user_up` FOREIGN KEY (`uploader_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE,
- CONSTRAINT `fk_tr_user_down` FOREIGN KEY (`downloader_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE,
- CONSTRAINT `fk_tr_seed` FOREIGN KEY (`seed_id`) REFERENCES `Seed`(`seed_id`) ON DELETE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+ `task_id` VARCHAR(64) NOT NULL,
+ `uploader_id` VARCHAR(36) NOT NULL,
+ `downloader_id` VARCHAR(36) NOT NULL,
+ `seed_id` VARCHAR(64) NOT NULL,
+ `uploaded` BIGINT NOT NULL DEFAULT 0,
+ `downloaded` BIGINT NOT NULL DEFAULT 0,
+ `upload_peak` BIGINT NOT NULL DEFAULT 0,
+ `download_peak` BIGINT NOT NULL DEFAULT 0,
+ PRIMARY KEY (
+ `task_id`,
+ `uploader_id`,
+ `downloader_id`
+ ),
+ CONSTRAINT `fk_tr_user_up` FOREIGN KEY (`uploader_id`) REFERENCES `User` (`user_id`) ON DELETE CASCADE,
+ CONSTRAINT `fk_tr_user_down` FOREIGN KEY (`downloader_id`) REFERENCES `User` (`user_id`) ON DELETE CASCADE,
+ CONSTRAINT `fk_tr_seed` FOREIGN KEY (`seed_id`) REFERENCES `Seed` (`seed_id`) ON DELETE CASCADE
+) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
-- 求种任务表
CREATE TABLE `BegSeed` (
- `beg_id` VARCHAR(64) NOT NULL,
- `beg_count` INT NOT NULL DEFAULT 0,
- `reward_magic` INT NOT NULL DEFAULT 0,
- `deadline` DATETIME NOT NULL,
- `has_match` TINYINT(1) NOT NULL DEFAULT 0,
- PRIMARY KEY (`beg_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+ `beg_id` VARCHAR(64) NOT NULL,
+ `beg_count` INT NOT NULL DEFAULT 0,
+ `reward_magic` INT NOT NULL DEFAULT 0,
+ `deadline` DATETIME NOT NULL,
+ `has_match` TINYINT(1) NOT NULL DEFAULT 0,
+ PRIMARY KEY (`beg_id`)
+) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
-- 提交悬赏任务表
CREATE TABLE `SubmitSeed` (
- `beg_id` VARCHAR(64) NOT NULL,
- `seed_id` VARCHAR(64) NOT NULL,
- `votes` INT NOT NULL DEFAULT 0,
- PRIMARY KEY (`beg_id`,`seed_id`),
- CONSTRAINT `fk_ss_beg` FOREIGN KEY (`beg_id`) REFERENCES `BegSeed`(`beg_id`) ON DELETE CASCADE,
- CONSTRAINT `fk_ss_seed` FOREIGN KEY (`seed_id`) REFERENCES `Seed`(`seed_id`) ON DELETE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+ `beg_id` VARCHAR(64) NOT NULL,
+ `seed_id` VARCHAR(64) NOT NULL,
+ `votes` INT NOT NULL DEFAULT 0,
+ PRIMARY KEY (`beg_id`, `seed_id`),
+ CONSTRAINT `fk_ss_beg` FOREIGN KEY (`beg_id`) REFERENCES `BegSeed` (`beg_id`) ON DELETE CASCADE,
+ CONSTRAINT `fk_ss_seed` FOREIGN KEY (`seed_id`) REFERENCES `Seed` (`seed_id`) ON DELETE CASCADE
+) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
-- 帖子表
CREATE TABLE `Post` (
- `post_id` VARCHAR(64) NOT NULL,
- `title` VARCHAR(255) NOT NULL,
- `content` TEXT NOT NULL,
- `author_id` VARCHAR(36) NOT NULL,
- `created_at` DATETIME NOT NULL,
- `reply_count` INT NOT NULL DEFAULT 0,
- `view_count` INT NOT NULL DEFAULT 0,
- PRIMARY KEY (`post_id`),
- CONSTRAINT `fk_post_user` FOREIGN KEY (`author_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+ `post_id` VARCHAR(64) NOT NULL,
+ `title` VARCHAR(255) NOT NULL,
+ `content` TEXT NOT NULL,
+ `author_id` VARCHAR(36) NOT NULL,
+ `created_at` DATETIME NOT NULL,
+ `reply_count` INT NOT NULL DEFAULT 0,
+ `view_count` INT NOT NULL DEFAULT 0,
+ PRIMARY KEY (`post_id`),
+ CONSTRAINT `fk_post_user` FOREIGN KEY (`author_id`) REFERENCES `User` (`user_id`) ON DELETE CASCADE
+) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
-- 帖子回复表
CREATE TABLE `PostReply` (
- `reply_id` VARCHAR(64) NOT NULL,
- `post_id` VARCHAR(64) NOT NULL,
- `content` TEXT NOT NULL,
- `author_id` VARCHAR(36) NOT NULL,
- `created_at` DATETIME NOT NULL,
- PRIMARY KEY (`reply_id`),
- CONSTRAINT `fk_pr_post` FOREIGN KEY (`post_id`) REFERENCES `Post`(`post_id`) ON DELETE CASCADE,
- CONSTRAINT `fk_pr_user` FOREIGN KEY (`author_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+ `reply_id` VARCHAR(64) NOT NULL,
+ `post_id` VARCHAR(64) NOT NULL,
+ `content` TEXT NOT NULL,
+ `author_id` VARCHAR(36) NOT NULL,
+ `created_at` DATETIME NOT NULL,
+ PRIMARY KEY (`reply_id`),
+ CONSTRAINT `fk_pr_post` FOREIGN KEY (`post_id`) REFERENCES `Post` (`post_id`) ON DELETE CASCADE,
+ CONSTRAINT `fk_pr_user` FOREIGN KEY (`author_id`) REFERENCES `User` (`user_id`) ON DELETE CASCADE
+) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
-- 公告表
CREATE TABLE `Announcement` (
- `announce_id` VARCHAR(64) NOT NULL,
- `content` TEXT NOT NULL,
- `is_public` TINYINT(1) NOT NULL DEFAULT 0,
- `tag` VARCHAR(100) DEFAULT NULL,
- PRIMARY KEY (`announce_id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+ `announce_id` VARCHAR(64) NOT NULL,
+ `content` TEXT NOT NULL,
+ `is_public` TINYINT(1) NOT NULL DEFAULT 0,
+ `tag` VARCHAR(100) DEFAULT NULL,
+ PRIMARY KEY (`announce_id`)
+) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
-- 用户收藏夹表
CREATE TABLE `UserFavorite` (
- `user_id` VARCHAR(36) NOT NULL,
- `seed_id` VARCHAR(64) NOT NULL,
- PRIMARY KEY (`user_id`,`seed_id`),
- CONSTRAINT `fk_uf_user` FOREIGN KEY (`user_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE,
- CONSTRAINT `fk_uf_seed` FOREIGN KEY (`seed_id`) REFERENCES `Seed`(`seed_id`) ON DELETE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+ `user_id` VARCHAR(36) NOT NULL,
+ `seed_id` VARCHAR(64) NOT NULL,
+ `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (`user_id`, `seed_id`),
+ CONSTRAINT `fk_uf_user` FOREIGN KEY (`user_id`) REFERENCES `User` (`user_id`) ON DELETE CASCADE,
+ CONSTRAINT `fk_uf_seed` FOREIGN KEY (`seed_id`) REFERENCES `Seed` (`seed_id`) ON DELETE CASCADE
+) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
-- 用户迁移表
CREATE TABLE `UserMigration` (
- `migration_id` VARCHAR(64) NOT NULL,
- `user_id` VARCHAR(36) NOT NULL,
- `application_url` VARCHAR(255) NOT NULL,
- `approved` TINYINT(1) NOT NULL DEFAULT 0,
- `pending_magic` INT NOT NULL DEFAULT 0,
- `granted_magic` INT NOT NULL DEFAULT 0,
- `pending_uploaded` BIGINT NOT NULL DEFAULT 0,
- `granted_uploaded` BIGINT NOT NULL DEFAULT 0,
- PRIMARY KEY (`migration_id`),
- CONSTRAINT `fk_um_user` FOREIGN KEY (`user_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+ `migration_id` VARCHAR(64) NOT NULL,
+ `user_id` VARCHAR(36) NOT NULL,
+ `application_url` VARCHAR(255) NOT NULL,
+ `approved` TINYINT(1) NOT NULL DEFAULT 0,
+ `pending_magic` INT NOT NULL DEFAULT 0,
+ `granted_magic` INT NOT NULL DEFAULT 0,
+ `pending_uploaded` BIGINT NOT NULL DEFAULT 0,
+ `granted_uploaded` BIGINT NOT NULL DEFAULT 0,
+ PRIMARY KEY (`migration_id`),
+ CONSTRAINT `fk_um_user` FOREIGN KEY (`user_id`) REFERENCES `User` (`user_id`) ON DELETE CASCADE
+) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
-- 悬赏任务用户投票表
CREATE TABLE `UserVotes` (
- `user_id` VARCHAR(36) NOT NULL,
- `beg_id` VARCHAR(64) NOT NULL,
- `seed_id` VARCHAR(64) NOT NULL,
- `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
- PRIMARY KEY (`user_id`, `beg_id`, `seed_id`),
- FOREIGN KEY (`user_id`) REFERENCES `User`(`user_id`) ON DELETE CASCADE,
- FOREIGN KEY (`beg_id`) REFERENCES `BegSeed`(`beg_id`) ON DELETE CASCADE,
- FOREIGN KEY (`seed_id`) REFERENCES `Seed`(`seed_id`) ON DELETE CASCADE
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
\ No newline at end of file
+ `user_id` VARCHAR(36) NOT NULL,
+ `beg_id` VARCHAR(64) NOT NULL,
+ `seed_id` VARCHAR(64) NOT NULL,
+ `created_at` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
+ PRIMARY KEY (
+ `user_id`,
+ `beg_id`,
+ `seed_id`
+ ),
+ FOREIGN KEY (`user_id`) REFERENCES `User` (`user_id`) ON DELETE CASCADE,
+ FOREIGN KEY (`beg_id`) REFERENCES `BegSeed` (`beg_id`) ON DELETE CASCADE,
+ FOREIGN KEY (`seed_id`) REFERENCES `Seed` (`seed_id`) ON DELETE CASCADE
+) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;
\ No newline at end of file