From 8a8d55eae198c663a301c6311abdefb6c8fb8859 Mon Sep 17 00:00:00 2001 From: johnniang Date: Wed, 10 Apr 2019 08:26:16 +0800 Subject: [PATCH] Add data type property into ThemeSetting entity --- .../halo/app/model/entity/ThemeSetting.java | 14 +++++++++ .../run/halo/app/model/enums/DataType.java | 30 +++++++++++++++++++ .../enums/converter/DataTypeConverter.java | 19 ++++++++++++ .../app/service/impl/ThemeServiceImpl.java | 3 ++ 4 files changed, 66 insertions(+) create mode 100644 src/main/java/run/halo/app/model/enums/DataType.java create mode 100644 src/main/java/run/halo/app/model/enums/converter/DataTypeConverter.java diff --git a/src/main/java/run/halo/app/model/entity/ThemeSetting.java b/src/main/java/run/halo/app/model/entity/ThemeSetting.java index fff876cb5..c5d471026 100644 --- a/src/main/java/run/halo/app/model/entity/ThemeSetting.java +++ b/src/main/java/run/halo/app/model/entity/ThemeSetting.java @@ -5,6 +5,7 @@ import lombok.EqualsAndHashCode; import lombok.ToString; import org.hibernate.annotations.SQLDelete; import org.hibernate.annotations.Where; +import run.halo.app.model.enums.DataType; import javax.persistence.*; @@ -45,4 +46,17 @@ public class ThemeSetting extends BaseEntity { @Column(name = "theme_id", columnDefinition = "varchar(255) not null") private String themeId; + @Column(name = "data_type", columnDefinition = "int default 0") + private DataType type; + + @Override + protected void prePersist() { + super.prePersist(); + + id = null; + + if (type == null) { + type = DataType.STRING; + } + } } diff --git a/src/main/java/run/halo/app/model/enums/DataType.java b/src/main/java/run/halo/app/model/enums/DataType.java new file mode 100644 index 000000000..a84748021 --- /dev/null +++ b/src/main/java/run/halo/app/model/enums/DataType.java @@ -0,0 +1,30 @@ +package run.halo.app.model.enums; + +/** + * Data type enum. + * + * @author johnniang + * @date 4/9/19 + */ +public enum DataType implements ValueEnum { + + STRING(0), + + LONG(1), + + DOUBLE(2), + + BOOL(3); + + private Integer value; + + DataType(Integer value) { + this.value = value; + } + + + @Override + public Integer getValue() { + return value; + } +} diff --git a/src/main/java/run/halo/app/model/enums/converter/DataTypeConverter.java b/src/main/java/run/halo/app/model/enums/converter/DataTypeConverter.java new file mode 100644 index 000000000..77c9fc84c --- /dev/null +++ b/src/main/java/run/halo/app/model/enums/converter/DataTypeConverter.java @@ -0,0 +1,19 @@ +package run.halo.app.model.enums.converter; + +import run.halo.app.model.enums.DataType; + +import javax.persistence.Converter; + +/** + * Data type converter. + * + * @author johnniang + * @date 4/10/19 + */ +@Converter(autoApply = true) +public class DataTypeConverter extends AbstractConverter { + + public DataTypeConverter() { + super(DataType.class); + } +} diff --git a/src/main/java/run/halo/app/service/impl/ThemeServiceImpl.java b/src/main/java/run/halo/app/service/impl/ThemeServiceImpl.java index 921ec23ae..cf0867a41 100644 --- a/src/main/java/run/halo/app/service/impl/ThemeServiceImpl.java +++ b/src/main/java/run/halo/app/service/impl/ThemeServiceImpl.java @@ -297,6 +297,9 @@ public class ThemeServiceImpl implements ThemeService { // Set the activated theme id setActivatedThemeId(themeId); + // Clear the cache + cacheStore.delete(THEMES_CACHE_KEY); + try { // TODO Refactor here in the future configuration.setSharedVariable("themeName", themeId);