CreateAndUpdateMetaObjectHandler.java 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package com.ydtech.handler;
  2. import cn.dev33.satoken.context.SaHolder;
  3. import cn.dev33.satoken.stp.StpUtil;
  4. import cn.hutool.core.util.ObjectUtil;
  5. import cn.hutool.http.HttpStatus;
  6. import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
  7. import com.ydtech.exception.SystemException;
  8. import com.ydtech.modules.base.model.BaseEntity;
  9. import com.ydtech.utils.StringUtils;
  10. import lombok.extern.slf4j.Slf4j;
  11. import org.apache.ibatis.reflection.MetaObject;
  12. import java.util.Date;
  13. /**
  14. * MP注入处理器 抄来的
  15. *
  16. * @author: lig
  17. * @date: 2023年06月30日 0030
  18. */
  19. @Slf4j
  20. public class CreateAndUpdateMetaObjectHandler implements MetaObjectHandler {
  21. @Override
  22. public void insertFill(MetaObject metaObject) {
  23. try {
  24. if (ObjectUtil.isNotNull(metaObject) && metaObject.getOriginalObject() instanceof BaseEntity) {
  25. BaseEntity baseEntity = (BaseEntity) metaObject.getOriginalObject();
  26. Date current = ObjectUtil.isNotNull(baseEntity.getCreateTime())
  27. ? baseEntity.getCreateTime() : new Date();
  28. baseEntity.setCreateTime(current);
  29. // baseEntity.setUpdateTime(current);
  30. String username = StringUtils.isNotBlank(baseEntity.getCreateBy())
  31. ? baseEntity.getCreateBy() : StpUtil.getLoginId("");
  32. // 当前已登录 且 创建人为空 则填充
  33. baseEntity.setCreateBy(username);
  34. // 当前已登录 且 更新人为空 则填充
  35. // baseEntity.setUpdateBy(username);
  36. }
  37. } catch (Exception e) {
  38. throw new SystemException(StringUtils.toString(HttpStatus.HTTP_UNAUTHORIZED),"自动注入异常 => " + e.getMessage());
  39. }
  40. }
  41. @Override
  42. public void updateFill(MetaObject metaObject) {
  43. try {
  44. if (ObjectUtil.isNotNull(metaObject) && metaObject.getOriginalObject() instanceof BaseEntity) {
  45. BaseEntity baseEntity = (BaseEntity) metaObject.getOriginalObject();
  46. Date current = new Date();
  47. // 更新时间填充(不管为不为空)
  48. baseEntity.setUpdateTime(current);
  49. String username = StpUtil.getLoginId().toString();
  50. // 当前已登录 更新人填充(不管为不为空)
  51. if (StringUtils.isNotBlank(username)) {
  52. baseEntity.setUpdateBy(username);
  53. }
  54. }
  55. } catch (Exception e) {
  56. throw new SystemException(StringUtils.toString(HttpStatus.HTTP_UNAUTHORIZED),"自动注入异常 => " + e.getMessage());
  57. }
  58. }
  59. }