MybatisPlus的自动填充功能
https://mp.baomidou.com/guide/typehandler.html
@Component
public class MybatisPlusMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
Long userId = getUserId();
this.setFieldValByName("createdBy", userId, metaObject);
this.setFieldValByName("lastUpdatedBy", userId, metaObject);
this.strictInsertFill(metaObject, "creationDate", LocalDateTime.class, LocalDateTime.now());
this.strictInsertFill(metaObject, "lastUpdateDate", LocalDateTime.class, LocalDateTime.now());
}
@Override
public void updateFill(MetaObject metaObject) {
Long userId = getUserId();
this.setFieldValByName("lastUpdatedBy", userId, metaObject);
this.strictInsertFill(metaObject, "lastUpdateDate", LocalDateTime.class, LocalDateTime.now());
}
private Long getUserId() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
User user = (User) authentication.getPrincipal();
return user.getId();
}
}
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class BaseDomain implements Serializable {
@ApiModelProperty(value = "主键")
@TableField(value = "id", fill = FieldFill.INSERT_UPDATE)
private Long id;
@ApiModelProperty(value = "用来处理锁")
private Long objectVersionNumber;
@ApiModelProperty(value = "逻辑删除标记")
private String deleteFlag;
@TableField(value = "CREATION_DATE", fill = FieldFill.INSERT)
@ApiModelProperty(value = "生成时间")
private LocalDateTime creationDate;
@TableField(value = "CREATED_BY", fill = FieldFill.INSERT)
@ApiModelProperty(value = "生成者")
private Long createdBy;
@TableField(value = "LAST_UPDATED_BY", fill = FieldFill.INSERT_UPDATE)
@ApiModelProperty(value = "最后更新者")
private Long lastUpdatedBy;
@TableField(value = "LAST_UPDATE_DATE", fill = FieldFill.INSERT_UPDATE)
@ApiModelProperty(value = "最后更新时间")
private LocalDateTime lastUpdateDate;
@TableField("LAST_UPDATE_LOGIN")
@ApiModelProperty(value = "")
private Integer lastUpdateLogin;
public void setDeleteProperty(Long id){
this.id = id;
this.deleteFlag = "Y";
}
}