From 3a46327129ba1da97a3a3bf355305850b3fe5af1 Mon Sep 17 00:00:00 2001 From: Timi Date: Wed, 29 Apr 2026 16:48:13 +0800 Subject: [PATCH] add ResponseView --- .../com/imyeyu/spring/entity/BaseEntity.java | 6 ++++ .../java/com/imyeyu/spring/entity/Entity.java | 3 ++ .../imyeyu/spring/entity/Multilingual.java | 7 +++++ .../com/imyeyu/spring/entity/UUIDEntity.java | 3 ++ .../com/imyeyu/spring/util/ResponseView.java | 30 +++++++++++++++++++ 5 files changed, 49 insertions(+) create mode 100644 src/main/java/com/imyeyu/spring/util/ResponseView.java diff --git a/src/main/java/com/imyeyu/spring/entity/BaseEntity.java b/src/main/java/com/imyeyu/spring/entity/BaseEntity.java index e70d256..bf3406e 100644 --- a/src/main/java/com/imyeyu/spring/entity/BaseEntity.java +++ b/src/main/java/com/imyeyu/spring/entity/BaseEntity.java @@ -1,6 +1,8 @@ package com.imyeyu.spring.entity; +import com.fasterxml.jackson.annotation.JsonView; import com.imyeyu.spring.annotation.table.DeleteColumn; +import com.imyeyu.spring.util.ResponseView; import com.imyeyu.utils.Time; import lombok.Data; @@ -16,15 +18,19 @@ import java.io.Serializable; public class BaseEntity implements Serializable, Creatable, Updatable, Deletable { /** 创建时间 */ + @JsonView(ResponseView.Public.class) protected Long createdAt; /** 更新时间 */ + @JsonView(ResponseView.Public.class) protected Long updatedAt; /** 删除时间 */ @DeleteColumn + @JsonView(ResponseView.Admin.class) protected Long deletedAt; + @JsonView(ResponseView.Admin.class) @Override public boolean isDeleted() { return deletedAt != null && deletedAt < Time.now(); diff --git a/src/main/java/com/imyeyu/spring/entity/Entity.java b/src/main/java/com/imyeyu/spring/entity/Entity.java index 73c1e4a..5bbb08d 100644 --- a/src/main/java/com/imyeyu/spring/entity/Entity.java +++ b/src/main/java/com/imyeyu/spring/entity/Entity.java @@ -1,6 +1,8 @@ package com.imyeyu.spring.entity; +import com.fasterxml.jackson.annotation.JsonView; import com.imyeyu.spring.annotation.table.Id; +import com.imyeyu.spring.util.ResponseView; import lombok.Data; import lombok.EqualsAndHashCode; @@ -16,5 +18,6 @@ public class Entity extends BaseEntity implements IDEntity { /** ID */ @Id + @JsonView(ResponseView.Public.class) protected Long id; } diff --git a/src/main/java/com/imyeyu/spring/entity/Multilingual.java b/src/main/java/com/imyeyu/spring/entity/Multilingual.java index 3c50f7d..97c10c5 100644 --- a/src/main/java/com/imyeyu/spring/entity/Multilingual.java +++ b/src/main/java/com/imyeyu/spring/entity/Multilingual.java @@ -1,9 +1,11 @@ package com.imyeyu.spring.entity; +import com.fasterxml.jackson.annotation.JsonView; import com.imyeyu.java.bean.Language; import com.imyeyu.java.ref.Ref; import com.imyeyu.spring.annotation.table.AutoUUID; import com.imyeyu.spring.annotation.table.Id; +import com.imyeyu.spring.util.ResponseView; import lombok.Data; import lombok.EqualsAndHashCode; @@ -20,18 +22,23 @@ public class Multilingual extends Language implements IDEntity, Creatabl /** 唯一标识 */ @Id @AutoUUID + @JsonView(ResponseView.Public.class) protected String id; /** 业务类型 */ + @JsonView(ResponseView.Public.class) protected String bizType; /** 创建时间 */ + @JsonView(ResponseView.Admin.class) protected Long createdAt; /** 更新时间 */ + @JsonView(ResponseView.Admin.class) protected Long updatedAt; /** 删除时间 */ + @JsonView(ResponseView.Admin.class) protected Long deletedAt; /** diff --git a/src/main/java/com/imyeyu/spring/entity/UUIDEntity.java b/src/main/java/com/imyeyu/spring/entity/UUIDEntity.java index 774a91c..54d8613 100644 --- a/src/main/java/com/imyeyu/spring/entity/UUIDEntity.java +++ b/src/main/java/com/imyeyu/spring/entity/UUIDEntity.java @@ -1,7 +1,9 @@ package com.imyeyu.spring.entity; +import com.fasterxml.jackson.annotation.JsonView; import com.imyeyu.spring.annotation.table.AutoUUID; import com.imyeyu.spring.annotation.table.Id; +import com.imyeyu.spring.util.ResponseView; import lombok.Data; import lombok.EqualsAndHashCode; @@ -18,5 +20,6 @@ public class UUIDEntity extends BaseEntity implements IDEntity { /** ID */ @Id @AutoUUID + @JsonView(ResponseView.Public.class) protected String id; } diff --git a/src/main/java/com/imyeyu/spring/util/ResponseView.java b/src/main/java/com/imyeyu/spring/util/ResponseView.java new file mode 100644 index 0000000..1acc548 --- /dev/null +++ b/src/main/java/com/imyeyu/spring/util/ResponseView.java @@ -0,0 +1,30 @@ +package com.imyeyu.spring.util; + +/** + * + * + * @author 夜雨 + * @since 2026-02-25 15:46 + */ +public interface ResponseView { + + /** + * + * + * @author 夜雨 + * @since 2026-02-25 15:46 + */ + interface Public { + + } + + /** + * + * + * @author 夜雨 + * @since 2026-02-25 15:46 + */ + interface Admin extends Public { + + } +}