MyMetaObjectHandler.java 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package com.fdkankan.site.handler;
  2. import cn.dev33.satoken.stp.StpUtil;
  3. import cn.hutool.core.util.ObjectUtil;
  4. import cn.hutool.core.util.StrUtil;
  5. import com.amazonaws.services.dynamodbv2.xspec.S;
  6. import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
  7. import com.fdkankan.site.entity.User;
  8. import lombok.extern.slf4j.Slf4j;
  9. import org.apache.ibatis.reflection.MetaObject;
  10. import org.springframework.stereotype.Component;
  11. import java.time.LocalDateTime;
  12. import java.util.Date;
  13. /**
  14. * @description: 处理createTime,updateTime字段的插入和更新
  15. * @author: Xiewj
  16. * @date: 2021-08-16 15:32:55
  17. **/
  18. @Slf4j
  19. @Component
  20. public class MyMetaObjectHandler implements MetaObjectHandler {
  21. @Override
  22. public void insertFill(MetaObject metaObject) {
  23. // 起始版本 3.3.3(推荐)
  24. boolean createByTimeSetter = metaObject.hasSetter("createBy");
  25. if (StpUtil.isLogin()&&ObjectUtil.isNotEmpty(StpUtil.getSession().getModel("user",User.class))&&createByTimeSetter){
  26. User user = StpUtil.getSession().getModel("user",User.class);
  27. this.setFieldValByName( "createBy", String.valueOf(user.getUserId()),metaObject); // 起始版本 3.3.3(推荐)
  28. }
  29. this.setFieldValByName("createTime", LocalDateTime.now(), metaObject);
  30. }
  31. @Override
  32. public void updateFill(MetaObject metaObject) {
  33. // 起始版本 3.3.3(推荐)
  34. boolean updateByTimeSetter = metaObject.hasSetter("updateBy");
  35. if (StpUtil.isLogin()&&ObjectUtil.isNotEmpty(StpUtil.getSession().getModel("user",User.class))&&updateByTimeSetter){
  36. User user = StpUtil.getSession().getModel("user",User.class);
  37. this.setFieldValByName( "updateBy", String.valueOf(user.getUserId()),metaObject); // 起始版本 3.3.3(推荐)
  38. }
  39. this.setFieldValByName("updateTime", LocalDateTime.now(), metaObject);
  40. }
  41. }