MyMetaObjectHandler.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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. if (request != null) {
  21. String user_id = request.getHeader("user_head") == null ? "0" : AesUtils.decrypt(request.getHeader("user_head"));
  22. log.info("start insert fill.....");
  23. // setFieldValByName(String fieldName, Object fieldVal, MetaObject metaObject
  24. this.setFieldValByName("createTime", new Date(), metaObject);
  25. this.setFieldValByName("updateTime", new Date(), metaObject);
  26. this.setFieldValByName("createUser", user_id, metaObject);
  27. this.setFieldValByName("updateUser", user_id, metaObject);
  28. this.setFieldValByName("deleted", 0, metaObject);
  29. } else {
  30. this.setFieldValByName("createTime", new Date(), metaObject);
  31. this.setFieldValByName("updateTime", new Date(), metaObject);
  32. this.setFieldValByName("createUser","0", metaObject);
  33. this.setFieldValByName("updateUser","0", metaObject);
  34. this.setFieldValByName("deleted", 0, metaObject);
  35. }
  36. }
  37. // 更新时的填充策略
  38. @Override
  39. public void updateFill(MetaObject metaObject) {
  40. HttpServletRequest request = getHttpServletRequest();
  41. if (request != null) {
  42. String user_id = request.getHeader("user_head") == null ? "0" : AesUtils.decrypt(request.getHeader("user_head"));
  43. log.info("start update fill.....");
  44. this.setFieldValByName("updateTime", new Date(), metaObject);
  45. this.setFieldValByName("updateUser", user_id, metaObject);
  46. }
  47. }
  48. private HttpServletRequest getHttpServletRequest() {
  49. RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
  50. ServletRequestAttributes attributes = (ServletRequestAttributes) requestAttributes;
  51. return attributes == null ? null : attributes.getRequest();
  52. }
  53. }