Skip to content

Commit

Permalink
feat: music collection basic table support (#641)
Browse files Browse the repository at this point in the history
* build: upgrade version to 0.15.0

* feat: add episode list and collection.

* fix: table name in EpisodeListCollectionEntity.java

* feat: add some flyway ddl table sql.

* feat: add some entity repositories.

* optimize: episode uk.

* docs: update CHANGELOG.MD

* docs: update CHANGELOG.MD
  • Loading branch information
ChiveHao authored Aug 6, 2024
1 parent fb71497 commit 78e6532
Show file tree
Hide file tree
Showing 16 changed files with 205 additions and 2 deletions.
7 changes: 6 additions & 1 deletion CHANGELOG.MD
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,16 @@

更新日志文档,版本顺序从新到旧,最新版本在最前(上)面。

# 0.14.4
# 0.15.0

## 新特性

- 控制台(Console)的邮件设置添加邮件测试按钮并对接服务端邮件测试接口
- 针对音乐模块的基础表支持,歌单对应剧集列表,歌单收藏对接剧集列表收藏

## 优化

- 扩大剧集表的联合唯一Key范围

# 0.14.3

Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1 +1 @@
version=0.14.4
version=0.15.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package run.ikaros.server.store.entity;

import java.time.LocalDateTime;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "episode_list_collection")
@Accessors(chain = true)
public class EpisodeListCollectionEntity {
@Id
private Long id;
@Column("user_id")
private Long userId;
@Column("episode_list_id")
private Long episodeListId;
@Column("update_time")
private LocalDateTime updateTime;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package run.ikaros.server.store.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@Table(name = "episode_list")
@EqualsAndHashCode(callSuper = true)
public class EpisodeListEntity extends BaseEntity {
private String name;
@Column("name_cn")
private String nameCn;
private String cover;
/**
* Not Safe/Suitable For Work.
*/
private Boolean nsfw;
private String description;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package run.ikaros.server.store.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Column;
import org.springframework.data.relational.core.mapping.Table;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "episode_list_episode")
@Accessors(chain = true)
public class EpisodeListEpisodeEntity {
@Id
private Long id;
@Column("episode_list_id")
private Long episodeListId;
@Column("episode_id")
private Long episodeId;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package run.ikaros.server.store.repository;

import org.springframework.data.r2dbc.repository.R2dbcRepository;
import run.ikaros.server.store.entity.EpisodeListCollectionEntity;

public interface EpisodeListCollectionRepository
extends R2dbcRepository<EpisodeListCollectionEntity, Long> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package run.ikaros.server.store.repository;

import org.springframework.data.r2dbc.repository.R2dbcRepository;
import run.ikaros.server.store.entity.EpisodeListEpisodeEntity;

public interface EpisodeListEpisodeRepository
extends R2dbcRepository<EpisodeListEpisodeEntity, Long> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package run.ikaros.server.store.repository;

import org.springframework.data.r2dbc.repository.R2dbcRepository;
import run.ikaros.server.store.entity.EpisodeListEntity;

public interface EpisodeListRepository extends R2dbcRepository<EpisodeListEntity, Long> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
create table if not exists episode_list
(
id int8 not null auto_increment,
create_time timestamp(6) null,
create_uid int8 null,
delete_status bool null,
update_time timestamp(6) null,
update_uid int8 null,
ol_version int8 null,
name varchar(255) not null,
name_cn varchar(255) null,
cover varchar(10000) null,
description varchar(50000) null,
nsfw bool not null,
constraint episode_list_pkey primary key (id)
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
create table if not exists tag
(
id int8 not null auto_increment,
episode_list_id int8 not null,
episode_id int8 not null,
constraint tag_pkey primary key (id)
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
create table if not exists episode_list_collection
(
id int8 not null auto_increment,
user_id int8 not null,
episode_list_id int8 not null,
update_time timestamp(6) null,
constraint episode_list_collection_pkey primary key (id)
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table episode
drop constraint subject_group_seq_uk;

ALTER TABLE episode
ADD CONSTRAINT subject_group_seq_name_uk UNIQUE (subject_id, ep_group, sequence, name);
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
create sequence if not exists episode_list_seq
increment 1
start 1
minvalue 1
cache 1
no cycle;

create table if not exists episode_list
(
id int8 not null default nextval('episode_list_seq'),
create_time timestamp(6) null,
create_uid int8 null,
delete_status bool null,
update_time timestamp(6) null,
update_uid int8 null,
ol_version int8 null,
name varchar(255) not null,
name_cn varchar(255) null,
cover varchar(10000) null,
description varchar(50000) null,
nsfw bool not null,
constraint episode_list_pkey primary key (id)
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
create sequence if not exists episode_list_episode_seq
increment 1
start 1
minvalue 1
cache 1
no cycle;

create table if not exists episode_list_episode
(
id int8 not null default nextval('episode_list_episode_seq'),
episode_list_id int8 not null,
episode_id int8 not null,
constraint episode_list_episode_pkey primary key (id)
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
create sequence if not exists episode_list_collection_seq
increment 1
start 1
minvalue 1
cache 1
no cycle;

create table if not exists episode_list_collection
(
id int8 not null default nextval('episode_list_collection_seq'),
user_id int8 not null,
episode_list_id int8 not null,
update_time timestamp(6) null,
constraint episode_list_collection_pkey primary key (id)
);
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
alter table episode
drop constraint subject_group_seq_uk;

ALTER TABLE episode
ADD CONSTRAINT subject_group_seq_name_uk UNIQUE (subject_id, ep_group, sequence, name);

0 comments on commit 78e6532

Please sign in to comment.