diff --git a/src/main/java/com/yunhai/dormnotice/common/listener/NoticeAuditListener.java b/src/main/java/com/yunhai/dormnotice/common/listener/NoticeAuditListener.java index f2ea03e..308de9e 100644 --- a/src/main/java/com/yunhai/dormnotice/common/listener/NoticeAuditListener.java +++ b/src/main/java/com/yunhai/dormnotice/common/listener/NoticeAuditListener.java @@ -1,8 +1,7 @@ package com.yunhai.dormnotice.common.listener; import com.yunhai.dormnotice.entity.BaseEntity; -import com.yunhai.platform.auth.LoginUser; -import com.yunhai.platform.auth.UserContextHolder; +import com.yunhai.dormnotice.utils.UserContext; import org.springframework.stereotype.Component; import javax.persistence.PrePersist; @@ -10,9 +9,10 @@ import javax.persistence.PreUpdate; import java.time.LocalDateTime; /** - * JPA 审计监听器:在实体持久化/更新前自动填充创建人/更新人(平台当前登录人)与时间戳。 - * 对应 {@link BaseEntity} 的 createBy / updateBy / createTime / updateTime 字段。 - * 当前登录人取自基础平台 {@link UserContextHolder}。 + * JPA 审计监听器:实体持久化/更新前自动填充创建人/更新人与时间戳。 + *
决策 D4:{@code create_by / update_by} 存**当前登录用户 ID**(数字 id),不再存登录账号。 + * id 取自 {@link UserContext#getUserId()}(由 ControllerUserContextAspect 在请求线程填充); + * 无登录上下文(启动种子/系统任务)时为 null,保持原值。
*/ @Component public class NoticeAuditListener { @@ -22,26 +22,26 @@ public class NoticeAuditListener { LocalDateTime now = LocalDateTime.now(); entity.setCreateTime(now); entity.setUpdateTime(now); - String account = currentAccount(); - if (account != null) { + Integer uid = currentUserId(); + if (uid != null) { if (entity.getCreateBy() == null) { - entity.setCreateBy(account); + entity.setCreateBy(uid); } - entity.setUpdateBy(account); + entity.setUpdateBy(uid); } } @PreUpdate public void preUpdate(BaseEntity entity) { entity.setUpdateTime(LocalDateTime.now()); - String account = currentAccount(); - if (account != null) { - entity.setUpdateBy(account); + Integer uid = currentUserId(); + if (uid != null) { + entity.setUpdateBy(uid); } } - private String currentAccount() { - LoginUser user = UserContextHolder.get(); - return user == null ? null : user.getLoginName(); + /** 当前登录用户 ID(数字);无上下文返回 null。 */ + private Integer currentUserId() { + return UserContext.getUserId(); } } diff --git a/src/main/java/com/yunhai/dormnotice/config/ReadBackfillRunner.java b/src/main/java/com/yunhai/dormnotice/config/ReadBackfillRunner.java index 4a12bd4..46f1f85 100644 --- a/src/main/java/com/yunhai/dormnotice/config/ReadBackfillRunner.java +++ b/src/main/java/com/yunhai/dormnotice/config/ReadBackfillRunner.java @@ -42,26 +42,31 @@ public class ReadBackfillRunner implements ApplicationRunner { if (!enabled) { return; } - List