diff --git a/src/main/java/cc/ryanc/halo/model/entity/User.java b/src/main/java/cc/ryanc/halo/model/entity/User.java
index e8cc7cbdf..7b9386eec 100644
--- a/src/main/java/cc/ryanc/halo/model/entity/User.java
+++ b/src/main/java/cc/ryanc/halo/model/entity/User.java
@@ -1,5 +1,6 @@
package cc.ryanc.halo.model.entity;
+import cc.ryanc.halo.utils.DateUtils;
import lombok.Data;
import org.hibernate.annotations.SQLDelete;
import org.hibernate.annotations.Where;
@@ -87,4 +88,9 @@ public class User {
*/
@Column(name = "deleted", columnDefinition = "TINYINT default 0")
private Boolean deleted;
+
+ @PrePersist
+ public void prePersist() {
+ id = null;
+ }
}
diff --git a/src/main/java/cc/ryanc/halo/model/params/InstallParam.java b/src/main/java/cc/ryanc/halo/model/params/InstallParam.java
new file mode 100644
index 000000000..d91465b86
--- /dev/null
+++ b/src/main/java/cc/ryanc/halo/model/params/InstallParam.java
@@ -0,0 +1,59 @@
+package cc.ryanc.halo.model.params;
+
+import lombok.Data;
+
+import javax.validation.constraints.Email;
+import javax.validation.constraints.NotBlank;
+
+/**
+ * Install parameters.
+ *
+ * @author johnniang
+ * @date 3/19/19
+ */
+@Data
+public class InstallParam {
+
+ /**
+ * Blog locale.
+ */
+ @NotBlank(message = "Blog locale must not be blank")
+ private String locale;
+
+ /**
+ * Blog title.
+ */
+ @NotBlank(message = "Blog title must not be blank")
+ private String title;
+
+ /**
+ * Blog url.
+ */
+ @NotBlank(message = "Blog url must not be blank")
+ private String url;
+
+ /**
+ * Username.
+ */
+ @NotBlank(message = "Username must not be blank")
+ private String username;
+
+ /**
+ * Nickname.
+ */
+ @NotBlank(message = "Nickname must not be blank")
+ private String nickname;
+
+ /**
+ * Email.
+ */
+ @NotBlank(message = "Email must not be blank")
+ @Email(message = "It is not an email format")
+ private String email;
+
+ /**
+ * Password.
+ */
+ @NotBlank(message = "Password must not be blank")
+ private String password;
+}
diff --git a/src/main/java/cc/ryanc/halo/model/support/JsonResult.java b/src/main/java/cc/ryanc/halo/model/support/JsonResult.java
index 1859dc8be..d6d52e940 100644
--- a/src/main/java/cc/ryanc/halo/model/support/JsonResult.java
+++ b/src/main/java/cc/ryanc/halo/model/support/JsonResult.java
@@ -4,7 +4,6 @@ import lombok.Data;
import org.springframework.http.HttpStatus;
import org.springframework.lang.NonNull;
import org.springframework.lang.Nullable;
-import org.springframework.util.Assert;
/**
*
diff --git a/src/main/java/cc/ryanc/halo/service/OptionService.java b/src/main/java/cc/ryanc/halo/service/OptionService.java
index a6b0d1661..62bc25f3b 100755
--- a/src/main/java/cc/ryanc/halo/service/OptionService.java
+++ b/src/main/java/cc/ryanc/halo/service/OptionService.java
@@ -1,6 +1,7 @@
package cc.ryanc.halo.service;
import cc.ryanc.halo.model.entity.Option;
+import cc.ryanc.halo.model.enums.BlogProperties;
import cc.ryanc.halo.service.base.CrudService;
import org.springframework.lang.NonNull;
@@ -28,6 +29,13 @@ public interface OptionService extends CrudService