MyMetaObjectHandler.java 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package com.video.handler;
  2. import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
  3. import lombok.extern.slf4j.Slf4j;
  4. import org.apache.ibatis.reflection.MetaObject;
  5. import org.springframework.stereotype.Component;
  6. import org.springframework.web.context.request.RequestAttributes;
  7. import org.springframework.web.context.request.RequestContextHolder;
  8. import org.springframework.web.context.request.ServletRequestAttributes;
  9. import javax.servlet.http.HttpServletRequest;
  10. import java.util.Date;
  11. @Slf4j
  12. @Component // 一定不要忘记把处理器加到IOC容器中!
  13. public class MyMetaObjectHandler implements MetaObjectHandler {
  14. // 插入时的填充策略
  15. @Override
  16. public void insertFill(MetaObject metaObject) {
  17. HttpServletRequest request = getHttpServletRequest();
  18. Long user_id = 1L;//request.getHeader("user_id") == null ? "测试" : request.getHeader("user_id");
  19. log.info("start insert fill.....");
  20. // setFieldValByName(String fieldName, Object fieldVal, MetaObject metaObject
  21. this.setFieldValByName("createTime",new Date(),metaObject);
  22. this.setFieldValByName("updateTime",new Date(),metaObject);
  23. this.setFieldValByName("createUser",user_id,metaObject);
  24. this.setFieldValByName("updateUser",user_id,metaObject);
  25. }
  26. // 更新时的填充策略
  27. @Override
  28. public void updateFill(MetaObject metaObject) {
  29. HttpServletRequest request = getHttpServletRequest();
  30. Long user_id = 1L;
  31. log.info("start update fill.....");
  32. this.setFieldValByName("updateTime",new Date(),metaObject);
  33. this.setFieldValByName("updateUser",user_id,metaObject);
  34. }
  35. private HttpServletRequest getHttpServletRequest() {
  36. RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
  37. ServletRequestAttributes attributes = (ServletRequestAttributes) requestAttributes;
  38. return attributes.getRequest();
  39. }
  40. }