From 4d1119997e2dc0d48ef04bf548162fcc409c0f8e Mon Sep 17 00:00:00 2001 From: lanyuanxiaoyao Date: Fri, 29 Nov 2024 10:45:41 +0800 Subject: [PATCH] =?UTF-8?q?feat(web):=20=E5=A2=9E=E5=8A=A0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=8E=88=E6=9D=83=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../authentication/entity/Authentication.java | 92 +++++++++++++++++++ .../domain/resource/entity/DataResource.java | 6 ++ 2 files changed, 98 insertions(+) create mode 100644 gringotts-web/src/main/java/com/eshore/gringotts/web/domain/authentication/entity/Authentication.java diff --git a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/authentication/entity/Authentication.java b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/authentication/entity/Authentication.java new file mode 100644 index 0000000..5900396 --- /dev/null +++ b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/authentication/entity/Authentication.java @@ -0,0 +1,92 @@ +package com.eshore.gringotts.web.domain.authentication.entity; + +import com.eshore.gringotts.core.Constants; +import com.eshore.gringotts.web.domain.base.entity.SimpleEntity; +import com.eshore.gringotts.web.domain.resource.entity.DataResource; +import com.eshore.gringotts.web.domain.upload.entity.DataFile; +import java.util.Set; +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.ConstraintMode; +import javax.persistence.Entity; +import javax.persistence.EntityListeners; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.FetchType; +import javax.persistence.ForeignKey; +import javax.persistence.JoinColumn; +import javax.persistence.JoinTable; +import javax.persistence.ManyToOne; +import javax.persistence.NamedAttributeNode; +import javax.persistence.NamedEntityGraph; +import javax.persistence.OneToMany; +import javax.persistence.Table; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +/** + * 授权 + * + * @author lanyuanxiaoyao + * @date 2024-11-29 + */ +@Getter +@Setter +@ToString +@Entity +@DynamicUpdate +@EntityListeners(AuditingEntityListener.class) +@Table(name = Constants.TABLE_PREFIX + "authentication") +@NamedEntityGraph(name = "authentication.list", attributeNodes = { + @NamedAttributeNode(value = "target"), + @NamedAttributeNode(value = "createdUser"), +}) +@NamedEntityGraph(name = "authentication.detail", attributeNodes = { + @NamedAttributeNode(value = "target"), + @NamedAttributeNode(value = "evidences"), + @NamedAttributeNode(value = "createdUser"), + @NamedAttributeNode(value = "modifiedUser"), +}) +public class Authentication extends SimpleEntity { + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(nullable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) + private DataResource target; + private String description; + @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY) + @JoinTable(foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT), inverseForeignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) + @ToString.Exclude + private Set evidences; + @Column(nullable = false) + @Enumerated(EnumType.STRING) + private State state = State.DRAFT; + + public enum State { + /** + * 无确权 + */ + NONE, + /** + * 草稿 + */ + DRAFT, + /** + * 属主审查中 + */ + OWNER_CHECKING, + /** + * 审查中 + */ + CHECKING, + /** + * 正常 + */ + NORMAL, + /** + * 驳回 + */ + REJECT, + } +} diff --git a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/resource/entity/DataResource.java b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/resource/entity/DataResource.java index 387eb20..0bea012 100644 --- a/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/resource/entity/DataResource.java +++ b/gringotts-web/src/main/java/com/eshore/gringotts/web/domain/resource/entity/DataResource.java @@ -1,11 +1,13 @@ package com.eshore.gringotts.web.domain.resource.entity; import com.eshore.gringotts.core.Constants; +import com.eshore.gringotts.web.domain.authentication.entity.Authentication; import com.eshore.gringotts.web.domain.base.entity.SimpleEntity; import com.eshore.gringotts.web.domain.confirmation.entity.Confirmation; import com.eshore.gringotts.web.domain.resource.entity.format.ResourceFormat; import com.eshore.gringotts.web.domain.resource.entity.type.ResourceType; import com.eshore.gringotts.web.domain.upload.entity.DataFile; +import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.ConstraintMode; @@ -16,6 +18,7 @@ import javax.persistence.ForeignKey; import javax.persistence.JoinColumn; import javax.persistence.NamedAttributeNode; import javax.persistence.NamedEntityGraph; +import javax.persistence.OneToMany; import javax.persistence.OneToOne; import javax.persistence.Table; import lombok.Getter; @@ -64,4 +67,7 @@ public class DataResource extends SimpleEntity { @OneToOne(cascade = CascadeType.REMOVE, fetch = FetchType.EAGER, mappedBy = "target") @ToString.Exclude private Confirmation confirmation; + @OneToMany(cascade = CascadeType.REMOVE, fetch = FetchType.EAGER, mappedBy = "target") + @ToString.Exclude + private Set authentications; }