常用实体类
基础请求入参对象模型,分页用到(前端传)
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class BaseReqDto {
@ApiModelProperty(value = "页码",dataType = "integer")
private long page = 1;
@ApiModelProperty(value = "每页数量",dataType = "integer")
private long pageSize = 10;
@ApiModelProperty("是否分页,-1:不分页,1:分页")
private Integer isPage = 1;
public boolean isPage(){
return this.isPage != null && 1 == this.isPage;
}
}
基础实体对象
- 引入下列类
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zm.wrapper.entity.ValidationGroup.*;
import lombok.Data;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;
import java.util.Date;
@Data
public class BaseEntity {
@TableId(type = IdType.AUTO)
@NotNull(groups = {Update.class, Remove.class, Get.class})
private Long id;
@Null(groups = {Add.class, Update.class})
@TableLogic
private Integer isDeleted;
@Null(groups = {Add.class, Update.class})
@TableField(fill = FieldFill.INSERT)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
@Null(groups = {Add.class, Update.class})
@TableField(fill = FieldFill.INSERT_UPDATE)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date lastModifyTime;
}
相关类(ValidationGroup)
public class ValidationGroup {
public interface Add{}
public interface Update{}
public interface Get{}
public interface Remove{}
}
- 因为FieldFill涉及到mybatis-plus自动填充,所以需要配置一下,创建
MyMetaObjectHandler
类实现MyMetaObjectHandler
类,其他类只要继承BaseEntity
类即可自动插入时间、id
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
import java.util.Date;
@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
Date date = new Date();
this.setFieldValByName("createTime", date, metaObject);
this.setFieldValByName("lastModifyTime", date, metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime", new Date(), metaObject);
}
}