从0开始搭建后台管理系统,这是No14。上一篇我们讲到了:引入MapStruct,对象转化更轻松。这一节,我们来优化下Mybatis-Plus相关的细节。
在Mybatis-Plus新增和修改时自动设置时间和修改者。
package cn.lovecto.yuen.framework.mybatisplus.handler;
import java.util.Date;
import org.apache.ibatis.reflection.MetaObject;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import cn.hutool.core.util.ObjectUtil;
import cn.lovecto.yuen.common.utils.LoginUtils;
import cn.lovecto.yuen.framework.mybatisplus.domain.BaseEntity;
import lombok.extern.slf4j.Slf4j;
/**
* 通过实现 com.baomidou.mybatisplus.core.handlers.MetaObjectHandler接口来实现
* 字段填充
* @ClassName: YuenMetaObjectHandler
* @Description:
* @author Jun.Yang 24696026@qq.com
* @date 2025年12月23日 上午10:43:26
*
*/
@Slf4j
public class YuenMetaObjectHandler implements MetaObjectHandler{
@Override
public void insertFill(MetaObject metaObject) {
if(ObjectUtil.isNull(metaObject)) {
return;
}
if(!(metaObject.getOriginalObject() instanceof BaseEntity)) {
return;
}
Date now = new Date();
BaseEntity entity = (BaseEntity)metaObject.getOriginalObject();
//设置时间
entity.setCreateTime(now);
entity.setUpdateTime(now);
//设置创建用户
if(ObjectUtil.isNull(entity.getCreater())) {
entity.setCreater(LoginUtils.getLoginUserId());
}
}
@Override
public void updateFill(MetaObject metaObject) {
if(ObjectUtil.isNull(metaObject)) {
return;
}
if(!(metaObject.getOriginalObject() instanceof BaseEntity)) {
return;
}
Date now = new Date();
BaseEntity entity = (BaseEntity)metaObject.getOriginalObject();
//填充修改时间
entity.setUpdater(LoginUtils.getLoginUserId());
entity.setUpdateTime(now);
}
}
LoveCTO

