|
|
@@ -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;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|