From ae4fd74cc4c60a1fd18b76f27da839acabf9badb Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期一, 04 三月 2024 14:51:59 +0800 Subject: [PATCH] 使用plus的逻辑删除、自动填充、通用枚举。定义了基础的实体类、表单类、查询类、响应类;数据校验分组 --- ycl-server/src/main/resources/application.yml | 7 + ycl-pojo/src/main/java/com/ycl/system/domain/group/Add.java | 10 +++ ycl-pojo/src/main/java/com/ycl/system/domain/base/AbsQuery.java | 21 +++++++ ycl-common/pom.xml | 2 ycl-pojo/src/main/java/com/ycl/system/domain/base/AbsVo.java | 25 ++++++++ ycl-pojo/src/main/java/com/ycl/system/domain/group/Update.java | 10 +++ ycl-pojo/src/main/java/com/ycl/system/domain/base/AbsEntity.java | 35 +++++++++++ ycl-pojo/src/main/java/com/ycl/system/domain/base/AbsForm.java | 21 +++++++ ycl-server/src/main/java/com/ycl/plus/CustomMetaObjectHandler.java | 39 +++++++++++++ 9 files changed, 167 insertions(+), 3 deletions(-) diff --git a/ycl-common/pom.xml b/ycl-common/pom.xml index 6edaf79..67ab2fd 100644 --- a/ycl-common/pom.xml +++ b/ycl-common/pom.xml @@ -46,4 +46,4 @@ </dependencies> -</project> \ No newline at end of file +</project> diff --git a/ycl-pojo/src/main/java/com/ycl/system/domain/base/AbsEntity.java b/ycl-pojo/src/main/java/com/ycl/system/domain/base/AbsEntity.java new file mode 100644 index 0000000..99ad69f --- /dev/null +++ b/ycl-pojo/src/main/java/com/ycl/system/domain/base/AbsEntity.java @@ -0,0 +1,35 @@ +package com.ycl.system.domain.base; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.util.Date; + +/** + * 绠�鍗曠殑瀹炰綋绫诲瓧娈� + * + * @author锛歺p + * @date锛�2024/3/4 14:27 + */ +@Data +public abstract class AbsEntity { + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + /** 鍒涘缓鏃堕棿 */ + @TableField(value = "create_time", fill = FieldFill.INSERT) + private Date createTime; + + /** 淇敼鏃堕棿 */ + @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE) + private Date updateTime; + + /** 閫昏緫鍒犻櫎 */ + @TableField(value = "deleted", fill = FieldFill.INSERT) + private String deleted; + +} diff --git a/ycl-pojo/src/main/java/com/ycl/system/domain/base/AbsForm.java b/ycl-pojo/src/main/java/com/ycl/system/domain/base/AbsForm.java new file mode 100644 index 0000000..080d0fc --- /dev/null +++ b/ycl-pojo/src/main/java/com/ycl/system/domain/base/AbsForm.java @@ -0,0 +1,21 @@ +package com.ycl.system.domain.base; + +import com.ycl.system.domain.group.Update; +import io.swagger.annotations.ApiModelProperty; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; + +/** + * 鍩虹琛ㄥ崟(娣诲姞銆佷慨鏀�)鍙傛暟 + * + * @author xp + * @date 2022/11/29 + */ +@Data +public abstract class AbsForm { + + @ApiModelProperty(value = "id,淇敼蹇呬紶", required = false) + @NotBlank(message = "璇烽�夋嫨鏁版嵁", groups = {Update.class}) + private String id; + +} diff --git a/ycl-pojo/src/main/java/com/ycl/system/domain/base/AbsQuery.java b/ycl-pojo/src/main/java/com/ycl/system/domain/base/AbsQuery.java new file mode 100644 index 0000000..4899a2e --- /dev/null +++ b/ycl-pojo/src/main/java/com/ycl/system/domain/base/AbsQuery.java @@ -0,0 +1,21 @@ +package com.ycl.system.domain.base; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 鍩虹鏌ヨ(鍒嗛〉)绫� + * + * @author锛歺p + * @date锛�2024/3/4 14:39 + */ +@Data +public class AbsQuery { + + @ApiModelProperty(value = "褰撳墠椤�", required = true) + private Long currentPage = 1L; + + @ApiModelProperty(value = "姣忛〉鏉℃暟", required = true) + private Long pageSize = 10L; + +} diff --git a/ycl-pojo/src/main/java/com/ycl/system/domain/base/AbsVo.java b/ycl-pojo/src/main/java/com/ycl/system/domain/base/AbsVo.java new file mode 100644 index 0000000..79da4b4 --- /dev/null +++ b/ycl-pojo/src/main/java/com/ycl/system/domain/base/AbsVo.java @@ -0,0 +1,25 @@ +package com.ycl.system.domain.base; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +/** + * 鍩虹鍝嶅簲 + * + * @author xp + * @date 2024/3/4 + */ +@Data +public abstract class AbsVo { + + private Integer id; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date gmtCreate; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date gmtUpdate; + +} diff --git a/ycl-pojo/src/main/java/com/ycl/system/domain/group/Add.java b/ycl-pojo/src/main/java/com/ycl/system/domain/group/Add.java new file mode 100644 index 0000000..1319135 --- /dev/null +++ b/ycl-pojo/src/main/java/com/ycl/system/domain/group/Add.java @@ -0,0 +1,10 @@ +package com.ycl.system.domain.group; + +/** + * 鏁版嵁鏍¢獙鍒嗙粍-娣诲姞 + * + * @author锛歺p + * @date锛�2024/3/4 14:45 + */ +public interface Add { +} diff --git a/ycl-pojo/src/main/java/com/ycl/system/domain/group/Update.java b/ycl-pojo/src/main/java/com/ycl/system/domain/group/Update.java new file mode 100644 index 0000000..edf0d2f --- /dev/null +++ b/ycl-pojo/src/main/java/com/ycl/system/domain/group/Update.java @@ -0,0 +1,10 @@ +package com.ycl.system.domain.group; + +/** + * 鏁版嵁鏍¢獙鍒嗙粍-淇敼 + * + * @author锛歺p + * @date锛�2024/3/4 14:46 + */ +public interface Update { +} diff --git a/ycl-server/src/main/java/com/ycl/plus/CustomMetaObjectHandler.java b/ycl-server/src/main/java/com/ycl/plus/CustomMetaObjectHandler.java new file mode 100644 index 0000000..77a574c --- /dev/null +++ b/ycl-server/src/main/java/com/ycl/plus/CustomMetaObjectHandler.java @@ -0,0 +1,39 @@ +package com.ycl.plus; + +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import org.apache.ibatis.reflection.MetaObject; +import org.springframework.stereotype.Component; + +import java.util.Date; + +/** + * plus鑷姩濉厖 + * + * @author xp + * @date 2024/3/4 + */ +@Component +public class CustomMetaObjectHandler implements MetaObjectHandler { + + /** + * 鎻掑叆濉厖 + * + * @param metaObject + */ + @Override + public void insertFill(MetaObject metaObject) { + this.setFieldValByName("updateTime", new Date(), metaObject); + this.setFieldValByName("createTime", new Date(), metaObject); + this.setFieldValByName("deleted", "0", metaObject); + } + + /** + * 淇敼濉厖 + * + * @param metaObject + */ + @Override + public void updateFill(MetaObject metaObject) { + this.setFieldValByName("updateTime", new Date(), metaObject); + } +} diff --git a/ycl-server/src/main/resources/application.yml b/ycl-server/src/main/resources/application.yml index 6cb55a0..075ca61 100644 --- a/ycl-server/src/main/resources/application.yml +++ b/ycl-server/src/main/resources/application.yml @@ -59,11 +59,14 @@ mapper-locations: classpath*:mapper/**/*.xml # 瀹炰綋鎵弿锛屽涓猵ackage鐢ㄩ�楀彿鎴栬�呭垎鍙峰垎闅� typeAliasesPackage: com.ycl.**.domain + configuration: + default-enum-type-handler: org.apache.ibatis.type.EnumOrdinalTypeHandler # 閫氱敤鏋氫妇澶勭悊鍣� + # log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 鏃ュ織鎵撳嵃 global-config: db-config: id-type: auto #閫昏緫鍒犻櫎閰嶇疆瀛楁 - logic-delete-field: + logic-delete-field: deleted #閫昏緫鍒犻櫎閰嶇疆瀛楁 1 鍒犻櫎 logic-delete-value: 1 #閫昏緫鍒犻櫎閰嶇疆瀛楁 0 涓嶅垹闄� @@ -117,4 +120,4 @@ # 鎺掗櫎閾炬帴锛堝涓敤閫楀彿鍒嗛殧锛� excludes: /system/notice # 鍖归厤閾炬帴 - urlPatterns: /system/*,/monitor/*,/tool/* \ No newline at end of file + urlPatterns: /system/*,/monitor/*,/tool/* -- Gitblit v1.8.0