使用MetaObjectHandler可以自动填充表字段,就不用每次操作表都填写字段了
使用方式如下
@Component("dataAutoFillHandler")
public class MpDataAutoFillHandler implements MetaObjectHandler {
private static final String CREATE_TIME = "createTime";
private static final String CREATE_USER = "createUser";
private static final String UPDATE_TIME = "updateTime";
private static final String UPDATE_USER = "updateUser";
private static final String CREATE_USER_NAME = "createUserName";
private static final String UPDATE_USER_NAME = "updateUserName";
private static final String CREATE_BY = "create_by";
private static final String UPDATE_BY = "update_by";
@Override
public void insertFill(MetaObject metaObject) {
Date now = new Date();
// 工号
String currentUserId = MyCurrentUserIdUtil.getUser();
// 名称
String currentUserName = MyCurrentUserIdUtil.getUserName();
if (metaObject.hasSetter(CREATE_TIME)) {
this.strictInsertFill(metaObject, CREATE_TIME, Date.class, now);
}
if (metaObject.hasSetter(CREATE_USER)) {
this.strictInsertFill(metaObject, CREATE_USER, String.class, currentUserId);
this.strictInsertFill(metaObject, CREATE_USER, Long.class, CurrentUserIdUtil.getUserId());
}
if (metaObject.hasSetter(UPDATE_TIME)) {
this.strictInsertFill(metaObject, UPDATE_TIME, Date.class, now);
}
if (metaObject.hasSetter(UPDATE_USER)) {
this.strictInsertFill(metaObject, UPDATE_USER, String.class, currentUserId);
this.strictInsertFill(metaObject, UPDATE_USER, Long.class, CurrentUserIdUtil.getUserId());
}
if (metaObject.hasSetter(CREATE_USER_NAME)) {
this.strictInsertFill(metaObject, CREATE_USER_NAME, String.class, currentUserName);
}
if (metaObject.hasSetter(UPDATE_USER_NAME)) {
this.strictInsertFill(metaObject, UPDATE_USER_NAME, String.class, currentUserName);
}
if (metaObject.hasSetter(CREATE_BY)) {
this.strictInsertFill(metaObject, CREATE_BY, String.class, currentUserId);
}
if (metaObject.hasSetter(UPDATE_BY)) {
this.strictInsertFill(metaObject, UPDATE_BY, String.class, currentUserId);
}
}
@Override
public void updateFill(MetaObject metaObject) {
String currentUserId = MyCurrentUserIdUtil.getUser();
String currentUserName = MyCurrentUserIdUtil.getUserName();
if (metaObject.hasSetter(UPDATE_TIME)) {
this.strictInsertFill(metaObject, UPDATE_TIME, Date::new, Date.class);
}
if (metaObject.hasSetter(UPDATE_USER)) {
this.strictInsertFill(metaObject, UPDATE_USER, String.class, currentUserId);
this.strictInsertFill(metaObject, UPDATE_USER, Long.class, CurrentUserIdUtil.getUserId());
}
if (metaObject.hasSetter(UPDATE_USER_NAME)) {
this.strictInsertFill(metaObject, UPDATE_USER_NAME, String.class, currentUserName);
}
if (metaObject.hasSetter(UPDATE_BY)) {
this.strictInsertFill(metaObject, UPDATE_BY, String.class, currentUserId);
}
}
}