From ae2f8e8694ad08d4efa4f0cf2d8227d97a8c6e5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8A=9B?= Date: Sun, 1 May 2022 17:38:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E7=A1=80=E7=B1=BB=20=E6=9E=84?= =?UTF-8?q?=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/storeroom/base/BaseDTO.java | 43 ++++++++++ .../java/com/storeroom/base/BaseEntity.java | 78 +++++++++++++++++++ .../java/com/storeroom/base/BaseMapper.java | 35 +++++++++ .../exception/controller/TestController.java | 27 ------- 4 files changed, 156 insertions(+), 27 deletions(-) create mode 100644 common/src/main/java/com/storeroom/base/BaseDTO.java create mode 100644 common/src/main/java/com/storeroom/base/BaseEntity.java create mode 100644 common/src/main/java/com/storeroom/base/BaseMapper.java delete mode 100644 common/src/main/java/com/storeroom/exception/controller/TestController.java diff --git a/common/src/main/java/com/storeroom/base/BaseDTO.java b/common/src/main/java/com/storeroom/base/BaseDTO.java new file mode 100644 index 0000000..ac38952 --- /dev/null +++ b/common/src/main/java/com/storeroom/base/BaseDTO.java @@ -0,0 +1,43 @@ +package com.storeroom.base; + +import lombok.Getter; +import lombok.Setter; +import org.apache.commons.lang3.builder.ToStringBuilder; + +import java.io.Serializable; +import java.lang.reflect.Field; +import java.sql.Timestamp; + +@Getter +@Setter +public class BaseDTO implements Serializable { + + //创建人 + private String createBy; + + //修改人 + private String updateBy; + + //创建时间 + private Timestamp createTime; + + //修改时间 + private Timestamp updateTime; + + @Override + public String toString() { + + ToStringBuilder builder = new ToStringBuilder(this); + + Field[] fields = this.getClass().getDeclaredFields(); + try { + for (Field f : fields) { + f.setAccessible(true); + builder.append(f.getName(), f.get(this)).append("\n"); + } + } catch (Exception e) { + builder.append("toString builder encounter an error"); + } + return builder.toString(); + } +} diff --git a/common/src/main/java/com/storeroom/base/BaseEntity.java b/common/src/main/java/com/storeroom/base/BaseEntity.java new file mode 100644 index 0000000..296c27d --- /dev/null +++ b/common/src/main/java/com/storeroom/base/BaseEntity.java @@ -0,0 +1,78 @@ +package com.storeroom.base; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.hibernate.annotations.CreationTimestamp; +import org.hibernate.annotations.UpdateTimestamp; +import org.springframework.data.annotation.CreatedBy; +import org.springframework.data.annotation.LastModifiedBy; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +import javax.persistence.Column; +import javax.persistence.EntityListeners; +import javax.persistence.MappedSuperclass; +import java.io.Serializable; +import java.lang.reflect.Field; +import java.sql.Timestamp; + +@Getter +@Setter +@MappedSuperclass +@EntityListeners(AuditingEntityListener.class) +public class BaseEntity implements Serializable { + + + @CreatedBy + @Column(name = "create_by", updatable = false) + @ApiModelProperty(value = "创建人", hidden = true) + @JSONField(name="createBy") + @JsonProperty("create_by") + private String createBy; + + @LastModifiedBy + @Column(name = "update_by") + @ApiModelProperty(value = "更新人", hidden = true) + @JSONField(name="updatedBy") + @JsonProperty("update_by") + private String updatedBy; + + @CreationTimestamp + @Column(name = "create_time", updatable = false) + @ApiModelProperty(value = "创建时间", hidden = true) + @JSONField(name="createTime") + @JsonProperty("create_time") + private Timestamp createTime; + + @UpdateTimestamp + @Column(name = "update_time") + @ApiModelProperty(value = "更新时间", hidden = true) + @JSONField(name="updateTime") + @JsonProperty("update_time") + private Timestamp updateTime; + + /* 分组校验 */ + public @interface Create {} + + /* 分组校验 */ + public @interface Update {} + + @Override + public String toString() { + ToStringBuilder builder = new ToStringBuilder(this); + + Field[] fields = this.getClass().getDeclaredFields(); + try { + for (Field f : fields) { + f.setAccessible(true); + builder.append(f.getName(), f.get(this)).append("\n"); + } + } catch (Exception e) { + builder.append("toString builder encounter an error"); + } + return builder.toString(); + } +} diff --git a/common/src/main/java/com/storeroom/base/BaseMapper.java b/common/src/main/java/com/storeroom/base/BaseMapper.java new file mode 100644 index 0000000..e5b7f37 --- /dev/null +++ b/common/src/main/java/com/storeroom/base/BaseMapper.java @@ -0,0 +1,35 @@ +package com.storeroom.base; + + +import java.util.List; + +public interface BaseMapper { + + /** + * DTO转Entity + * @param dto / + * @return / + */ + E toEntity(D dto); + + /** + * Entity转DTO + * @param entity / + * @return / + */ + D toDto(E entity); + + /** + * DTO集合转Entity集合 + * @param dtoList / + * @return / + */ + List toEntity(List dtoList); + + /** + * Entity集合转DTO集合 + * @param entityList / + * @return / + */ + List toDto(List entityList); +} diff --git a/common/src/main/java/com/storeroom/exception/controller/TestController.java b/common/src/main/java/com/storeroom/exception/controller/TestController.java deleted file mode 100644 index 8e1b9c8..0000000 --- a/common/src/main/java/com/storeroom/exception/controller/TestController.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.storeroom.exception.controller; - -import com.storeroom.exception.JsonException; -import com.storeroom.exception.PageException; -import com.storeroom.exception.constant.Status; -import com.storeroom.exception.handler.ApiResponse; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.servlet.ModelAndView; - -@Controller -public class TestController { - - @GetMapping - public ApiResponse jsonException(){ - throw new JsonException(Status.UNKNOWN_ERROR); - } - - public ModelAndView pageException(){ - throw new PageException(Status.UNKNOWN_ERROR); - } - - - - -}