package com.fdkankan.site.handler; import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.amazonaws.services.dynamodbv2.xspec.S; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.fdkankan.site.entity.User; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; import java.time.LocalDateTime; import java.util.Date; /** * @description: 处理createTime,updateTime字段的插入和更新 * @author: Xiewj * @date: 2021-08-16 15:32:55 **/ @Slf4j @Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { // 起始版本 3.3.3(推荐) boolean createByTimeSetter = metaObject.hasSetter("createBy"); if (StpUtil.isLogin()&&ObjectUtil.isNotEmpty(StpUtil.getSession().getModel("user",User.class))&&createByTimeSetter){ User user = StpUtil.getSession().getModel("user",User.class); this.setFieldValByName( "createBy", String.valueOf(user.getUserId()),metaObject); // 起始版本 3.3.3(推荐) } this.setFieldValByName("createTime", LocalDateTime.now(), metaObject); } @Override public void updateFill(MetaObject metaObject) { // 起始版本 3.3.3(推荐) boolean updateByTimeSetter = metaObject.hasSetter("updateBy"); if (StpUtil.isLogin()&&ObjectUtil.isNotEmpty(StpUtil.getSession().getModel("user",User.class))&&updateByTimeSetter){ User user = StpUtil.getSession().getModel("user",User.class); this.setFieldValByName( "updateBy", String.valueOf(user.getUserId()),metaObject); // 起始版本 3.3.3(推荐) } this.setFieldValByName("updateTime", LocalDateTime.now(), metaObject); } }