package com.sinata.framework.config.handler; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.sinata.common.utils.DateUtils; import com.sinata.common.utils.SecurityUtils; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; /** * 自动填充处理类 * * @author jishanfeng * @date 2024-01-12 */ @Slf4j @Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { // 获取当前登录用户 Long userId = SecurityUtils.getUserId(); fillValue("createBy", userId, metaObject); fillValue("createTime", DateUtils.getNowDate(), metaObject); } @Override public void updateFill(MetaObject metaObject) { // 获取当前登录用户 Long userId = SecurityUtils.getUserId(); fillValue("updateBy", userId, metaObject); fillValue("updateTime", DateUtils.getNowDate(), metaObject); } private void fillValue(String fieldName, Object data, MetaObject metaObject) { if (metaObject.hasSetter(fieldName)) { // 值为空时设置默认值 Object sidObj = getFieldValByName(fieldName, metaObject); if (sidObj == null || "updateBy".equals(fieldName) || "updateTime".equals(fieldName)) { setFieldValByName(fieldName, data, metaObject); } } } }