xucaiqin 1 день назад
Родитель
Сommit
7b4163eef6

+ 56 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/config/MyMetaObjectHandler.java

@@ -0,0 +1,56 @@
+package com.sckw.core.config;
+
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import com.sckw.core.web.context.LoginUserHolder;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDateTime;
+
+/**
+ * MybatisPlus 自动填充处理器
+ * 自动填充:创建人、创建时间、更新人、更新时间
+ *
+ * @author xucaiqin
+ * @date 2026-06-16
+ */
+@Slf4j
+@Component
+public class MyMetaObjectHandler implements MetaObjectHandler {
+
+    private static final String CREATE_BY = "createBy";
+    private static final String CREATE_TIME = "createTime";
+    private static final String UPDATE_BY = "updateBy";
+    private static final String UPDATE_TIME = "updateTime";
+    private static final Long DEFAULT_USER_ID = 1L;
+
+    @Override
+    public void insertFill(MetaObject metaObject) {
+        log.debug("开始插入自动填充...");
+        Long userId = getUserId();
+        LocalDateTime now = LocalDateTime.now();
+        this.strictInsertFill(metaObject, CREATE_BY, Long.class, userId);
+        this.strictInsertFill(metaObject, CREATE_TIME, LocalDateTime.class, now);
+        this.strictInsertFill(metaObject, UPDATE_BY, Long.class, userId);
+        this.strictInsertFill(metaObject, UPDATE_TIME, LocalDateTime.class, now);
+    }
+
+    @Override
+    public void updateFill(MetaObject metaObject) {
+        log.debug("开始更新自动填充...");
+        Long userId = getUserId();
+        LocalDateTime now = LocalDateTime.now();
+        this.strictUpdateFill(metaObject, UPDATE_BY, Long.class, userId);
+        this.strictUpdateFill(metaObject, UPDATE_TIME, LocalDateTime.class, now);
+    }
+
+    private Long getUserId() {
+        try {
+            return LoginUserHolder.getUserId();
+        } catch (Exception e) {
+            log.warn("获取当前登录用户失败,使用默认用户ID 1", e);
+            return DEFAULT_USER_ID;
+        }
+    }
+}

+ 59 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/base/BaseEntity.java

@@ -0,0 +1,59 @@
+package com.sckw.core.model.base;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 基础模型
+ *
+ * @author zk
+ * @date Nov 24, 2018
+ */
+@Data
+@Accessors(chain = true)
+public class BaseEntity implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+    /**
+     * 创建人
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    /**
+     * 更新人
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Long updateBy;
+
+
+    /**
+     * 更新时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    /**
+     * 删除标识(0正常/-1删除)
+     */
+    @TableLogic(delval = "1", value = "0")
+    private Integer delFlag;
+
+}

+ 1 - 0
sckw-common/sckw-common-core/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -11,3 +11,4 @@ com.sckw.core.aspect.LogAspect
 com.sckw.core.utils.FileUtils
 com.sckw.core.handler.LongListTypeHandler
 com.sckw.core.handler.StringListTypeHandler
+com.sckw.core.config.MyMetaObjectHandler