MyMetaObjectHandler.java 2.2 KB

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