package com.project.framework.mybatisplus; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.project.common.core.domain.model.LoginUser; import com.project.common.utils.SecurityUtils; import com.project.common.utils.StringUtils; import org.apache.ibatis.reflection.MetaObject; import java.util.Date; /** * @author woo * @date 2021/3/11 */ public class CreateAndUpdateMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { //region 处理创建人信息 String createBy = (String) this.getFieldValByName("createBy", metaObject); Object createTime = this.getFieldValByName("createTime", metaObject); if (StringUtils.isEmpty(createBy)) { LoginUser loginUser; try { loginUser = SecurityUtils.getLoginUser(); } catch (Exception e){ loginUser = null; } if (loginUser == null) { createBy = "系统操作"; } else { createBy = loginUser.getUser().getNickName(); } this.setFieldValByName("createBy", createBy, metaObject); } if (createTime == null) { createTime = new Date(); this.setFieldValByName("createTime", createTime, metaObject); } //endregion //region 处理修改人信息 Object updateBy = this.getFieldValByName("updateBy", metaObject); Object updateTime = this.getFieldValByName("updateTime", metaObject); if (updateBy == null) { updateBy = createBy; this.setFieldValByName("updateBy", updateBy, metaObject); } if (updateTime == null) { updateTime = createTime; this.setFieldValByName("updateTime", updateTime, metaObject); } //endregion } @Override public void updateFill(MetaObject metaObject) { //region 处理修改人信息 String updateBy; LoginUser loginUser; try { loginUser = SecurityUtils.getLoginUser(); } catch (Exception e){ loginUser = null; } if (loginUser==null){ updateBy = "系统操作"; } else { updateBy = loginUser.getUser().getNickName(); } this.setFieldValByName("updateBy", updateBy, metaObject); Date updateTime = new Date(); this.setFieldValByName("updateTime", updateTime, metaObject); //endregion } @Override public boolean openInsertFill() { return true; } @Override public boolean openUpdateFill() { return true; } }