Jelajahi Sumber

增加物理删除模块继承实体

chenjun 1 tahun lalu
induk
melakukan
b53f491580

+ 45 - 0
zjugis-framework/zjugis-spring-boot-starter-mybatis/src/main/java/com/zjugis/framework/mybatis/core/dataobject/BaseRmDO.java

@@ -0,0 +1,45 @@
+package com.zjugis.framework.mybatis.core.dataobject;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import lombok.Data;
+import org.apache.ibatis.type.JdbcType;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 基础实体对象
+ *
+ * @author 芋道源码
+ */
+@Data
+public abstract class BaseRmDO implements Serializable {
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+    /**
+     * 最后更新时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+    /**
+     * 创建者,目前使用 SysUser 的 id 编号
+     *
+     * 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。
+     */
+    @TableField(fill = FieldFill.INSERT, jdbcType = JdbcType.VARCHAR)
+    private String creator;
+    /**
+     * 更新者,目前使用 SysUser 的 id 编号
+     *
+     * 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE, jdbcType = JdbcType.VARCHAR)
+    private String updater;
+
+}

+ 26 - 1
zjugis-framework/zjugis-spring-boot-starter-mybatis/src/main/java/com/zjugis/framework/mybatis/core/handler/DefaultDBFieldHandler.java

@@ -1,6 +1,7 @@
 package com.zjugis.framework.mybatis.core.handler;
 
 import com.zjugis.framework.mybatis.core.dataobject.BaseDO;
+import com.zjugis.framework.mybatis.core.dataobject.BaseRmDO;
 import com.zjugis.framework.web.core.util.WebFrameworkUtils;
 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
 import org.apache.ibatis.reflection.MetaObject;
@@ -19,7 +20,7 @@ public class DefaultDBFieldHandler implements MetaObjectHandler {
 
     @Override
     public void insertFill(MetaObject metaObject) {
-        if (Objects.nonNull(metaObject) && metaObject.getOriginalObject() instanceof BaseDO) {
+        if (Objects.nonNull(metaObject) && (metaObject.getOriginalObject() instanceof BaseDO)) {
             BaseDO baseDO = (BaseDO) metaObject.getOriginalObject();
 
             LocalDateTime current = LocalDateTime.now();
@@ -42,6 +43,30 @@ public class DefaultDBFieldHandler implements MetaObjectHandler {
                 baseDO.setUpdater(userId.toString());
             }
         }
+
+        if (Objects.nonNull(metaObject) && (metaObject.getOriginalObject() instanceof BaseRmDO)) {
+            BaseRmDO baseDO = (BaseRmDO) metaObject.getOriginalObject();
+
+            LocalDateTime current = LocalDateTime.now();
+            // 创建时间为空,则以当前时间为插入时间
+            if (Objects.isNull(baseDO.getCreateTime())) {
+                baseDO.setCreateTime(current);
+            }
+            // 更新时间为空,则以当前时间为更新时间
+            if (Objects.isNull(baseDO.getUpdateTime())) {
+                baseDO.setUpdateTime(current);
+            }
+
+            String userId = WebFrameworkUtils.getLoginUserId();
+            // 当前登录用户不为空,创建人为空,则当前登录用户为创建人
+            if (Objects.nonNull(userId) && Objects.isNull(baseDO.getCreator())) {
+                baseDO.setCreator(userId.toString());
+            }
+            // 当前登录用户不为空,更新人为空,则当前登录用户为更新人
+            if (Objects.nonNull(userId) && Objects.isNull(baseDO.getUpdater())) {
+                baseDO.setUpdater(userId.toString());
+            }
+        }
     }
 
     @Override