使用plus的逻辑删除、自动填充、通用枚举。定义了基础的实体类、表单类、查询类、响应类;数据校验分组
| | |
| | | |
| | | </dependencies> |
| | | |
| | | </project> |
| | | </project> |
New file |
| | |
| | | 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:xp |
| | | * @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; |
| | | |
| | | } |
New file |
| | |
| | | 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; |
| | | |
| | | } |
New file |
| | |
| | | package com.ycl.system.domain.base; |
| | | |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * 基础查询(分页)类 |
| | | * |
| | | * @author:xp |
| | | * @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; |
| | | |
| | | } |
New file |
| | |
| | | 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; |
| | | |
| | | } |
New file |
| | |
| | | package com.ycl.system.domain.group; |
| | | |
| | | /** |
| | | * 数据校验分组-添加 |
| | | * |
| | | * @author:xp |
| | | * @date:2024/3/4 14:45 |
| | | */ |
| | | public interface Add { |
| | | } |
New file |
| | |
| | | package com.ycl.system.domain.group; |
| | | |
| | | /** |
| | | * 数据校验分组-修改 |
| | | * |
| | | * @author:xp |
| | | * @date:2024/3/4 14:46 |
| | | */ |
| | | public interface Update { |
| | | } |
New file |
| | |
| | | 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); |
| | | } |
| | | } |
| | |
| | | mapper-locations: classpath*:mapper/**/*.xml |
| | | # 实体扫描,多个package用逗号或者分号分隔 |
| | | 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 不删除 |
| | |
| | | # 排除链接(多个用逗号分隔) |
| | | excludes: /system/notice |
| | | # 匹配链接 |
| | | urlPatterns: /system/*,/monitor/*,/tool/* |
| | | urlPatterns: /system/*,/monitor/*,/tool/* |