Browse Source

审计日志更新

liuchengsen 4 weeks ago
parent
commit
faeb5af9cb

+ 3 - 0
backend-java/src/main/java/com/pharmacopoeia/entity/QuickAskAuditLog.java

@@ -40,6 +40,9 @@ public class QuickAskAuditLog {
     @Column(nullable = false, length = 255)
     private String operator;
 
+    @Column(length = 45)
+    private String ip;
+
     @Column(name = "created_at", updatable = false)
     private Instant createdAt;
 

+ 16 - 1
backend-java/src/main/java/com/pharmacopoeia/service/AdminKnowledgeService.java

@@ -19,6 +19,10 @@ import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import com.pharmacopoeia.util.IpUtils;
 
 
 import java.util.*;
@@ -446,7 +450,18 @@ public class AdminKnowledgeService {
                 .label(label).question(question)
                 .sortOrder(sortOrder != null ? sortOrder : 0)
                 .isActive(isActive != null ? isActive : true)
-                .operator(operator).build());
+                .operator(operator)
+                .ip(getClientIp())
+                .build());
+    }
+
+    /** 从当前请求中获取客户端 IP */
+    private static String getClientIp() {
+        var attrs = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+        if (attrs != null) {
+            return IpUtils.getClientIp(attrs.getRequest());
+        }
+        return "unknown";
     }
 
     public Map<String, Object> listQuickAskAuditLog(int page, int pageSize) {