MybatisPlusMetaObjectHandler.java 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package jnpf.database.config;
  2. import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
  3. import jnpf.constant.GlobalConst;
  4. import jnpf.database.util.LogicDeleteHelper;
  5. import jnpf.database.util.TenantDataSourceUtil;
  6. import jnpf.util.DateUtil;
  7. import jnpf.util.UserProvider;
  8. import org.apache.ibatis.reflection.MetaObject;
  9. import org.springframework.stereotype.Component;
  10. import java.util.Date;
  11. /**
  12. * @author JNPF开发平台组
  13. * @version V3.1.0
  14. * @copyright 引迈信息技术有限公司(https://www.jnpfsoft.com)
  15. * @date 2020年12月22日 下午20:14
  16. */
  17. @Component
  18. public class MybatisPlusMetaObjectHandler implements MetaObjectHandler {
  19. @Override
  20. public void insertFill(MetaObject metaObject) {
  21. String userId = UserProvider.getLoginUserId();
  22. Object enabledMark = this.getFieldValByName("enabledMark", metaObject);
  23. Object creatorUserId = this.getFieldValByName("creatorUserId", metaObject);
  24. Object creatorTime = this.getFieldValByName("creatorTime", metaObject);
  25. Object creatorUser = this.getFieldValByName("creatorUser", metaObject);
  26. if (enabledMark == null) {
  27. this.strictInsertFill(metaObject, "enabledMark", () -> 1, Integer.class);
  28. }
  29. if (creatorUserId == null) {
  30. this.strictInsertFill(metaObject, "creatorUserId", () -> userId, String.class);
  31. }
  32. if (creatorTime == null) {
  33. this.strictInsertFill(metaObject, "creatorTime", DateUtil::getNowDate, Date.class);
  34. }
  35. if (creatorUser == null) {
  36. this.strictInsertFill(metaObject, "creatorUser", () -> userId, String.class);
  37. }
  38. String tenantColumn = TenantDataSourceUtil.getTenantColumn();
  39. if (GlobalConst.DEFAULT_TENANT_VALUE.equals(tenantColumn)) {
  40. this.strictInsertFill(metaObject, "tenantId", () -> tenantColumn, String.class);
  41. } else {
  42. this.setFieldValByName("tenantId", TenantDataSourceUtil.getTenantColumn(), metaObject);
  43. }
  44. }
  45. @Override
  46. public void updateFill(MetaObject metaObject) {
  47. String userId = UserProvider.getLoginUserId();
  48. this.strictUpdateFill(metaObject, "lastModifyTime", DateUtil::getNowDate, Date.class);
  49. this.strictUpdateFill(metaObject, "lastModifyUserId", () -> userId, String.class);
  50. this.strictUpdateFill(metaObject, "lastModifyUser", () -> userId, String.class);
  51. String tenantColumn = TenantDataSourceUtil.getTenantColumn();
  52. if (GlobalConst.DEFAULT_TENANT_VALUE.equals(tenantColumn)) {
  53. this.strictUpdateFill(metaObject, "tenantId", () -> tenantColumn, String.class);
  54. } else {
  55. this.setFieldValByName("tenantId", TenantDataSourceUtil.getTenantColumn(), metaObject);
  56. }
  57. if(LogicDeleteHelper.isDeleteAction()){
  58. this.strictUpdateFill(metaObject, "deleteTime", DateUtil::getNowDate, Date.class);
  59. this.strictUpdateFill(metaObject, "deleteUserId", () -> userId, String.class);
  60. }
  61. }
  62. }