Skip to content

Commit 36a1c12

Browse files
author
githubnull
committed
fix: 会话Header管理表格ID字段数据显示,从数据库获取真实ID
1 parent 39a9eba commit 36a1c12

1 file changed

Lines changed: 15 additions & 1 deletion

File tree

src/backEnd/utils/session_header_manager.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def set_session_header(self, client_ip: str, header_create: SessionHeaderCreate)
9898

9999
# 如果没有更新任何记录,则插入新记录
100100
if cursor.rowcount == 0:
101-
db.only_execute("""
101+
insert_cursor = db.only_execute("""
102102
INSERT INTO session_headers
103103
(client_ip, header_name, header_value, replace_strategy, priority, is_active,
104104
expires_at, created_at, scope_config)
@@ -114,6 +114,20 @@ def set_session_header(self, client_ip: str, header_create: SessionHeaderCreate)
114114
current_time.strftime('%Y-%m-%d %H:%M:%S'),
115115
scope_config_json
116116
))
117+
# 获取数据库生成的真实ID并更新内存对象
118+
if insert_cursor and insert_cursor.lastrowid:
119+
session_header.id = insert_cursor.lastrowid
120+
self._session_headers[client_ip][header_create.header_name] = session_header
121+
else:
122+
# 更新时也需要获取数据库中的ID
123+
id_cursor = db.only_execute("""
124+
SELECT id FROM session_headers WHERE client_ip = ? AND header_name = ?
125+
""", (client_ip, header_create.header_name))
126+
if id_cursor:
127+
row = id_cursor.fetchone()
128+
if row:
129+
session_header.id = row[0]
130+
self._session_headers[client_ip][header_create.header_name] = session_header
117131
logger.debug(f"Persisted session header to database for {client_ip}: {header_create.header_name}")
118132
except Exception as db_error:
119133
logger.error(f"Failed to persist session header to database: {db_error}")

0 commit comments

Comments
 (0)