package com.billion.framework.config; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.billion.common.core.domain.model.LoginUser; import com.billion.common.utils.SecurityUtils; import com.billion.common.utils.StringUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; import java.time.LocalDateTime; import java.util.Date; /** * 简介说明:Mybatis-Plus配置 * * @author: Eric * @date: 2024-11-20 15:46:49 * @version: 1.0 */ @Component public class MyMetaObjectHandler implements MetaObjectHandler{ @Override public void insertFill(MetaObject metaObject) { // 检查是否有名为createTime的字段,如果有则设置当前时间 boolean hasCreateTime = metaObject.hasSetter("createTime"); if (hasCreateTime) { metaObject.setValue("createTime", new Date()); } // 检查是否有名为updateTime的字段,如果有则设置当前时间 boolean hasUpdateTime = metaObject.hasSetter("updateTime"); if (hasUpdateTime) { metaObject.setValue("updateTime", new Date()); } LoginUser securityUser = SecurityUtils.getLoginUser(); if (ObjectUtils.isNotEmpty(securityUser)){ String username = securityUser.getUsername(); if (StringUtils.isNoneBlank(username)){ boolean hasCreateBy = metaObject.hasSetter("createBy"); if (hasCreateBy){ metaObject.setValue("createBy", username); } boolean hasUpdateBy = metaObject.hasSetter("updateBy"); if (hasUpdateBy){ metaObject.setValue("updateBy", username); } } } } @Override public void updateFill(MetaObject metaObject) { // 检查是否有名为updateTime的字段,如果有则设置当前时间 boolean hasUpdateTime = metaObject.hasSetter("updateTime"); if (hasUpdateTime) { metaObject.setValue("updateTime", new Date()); } LoginUser securityUser = SecurityUtils.getLoginUser(); if (ObjectUtils.isNotEmpty(securityUser)){ String username = securityUser.getUsername(); if (StringUtils.isNoneBlank(username)){ boolean hasUpdateBy = metaObject.hasSetter("updateBy"); if (hasUpdateBy){ metaObject.setValue("updateBy", username); } } } } }