新增“数据编辑”

This commit is contained in:
2025-11-13 21:58:52 +08:00
parent 2c31e1571f
commit 83a9dd04ba
6 changed files with 79 additions and 42 deletions

View File

@@ -19,27 +19,43 @@ DATA_INDEX_NAME = ACHIEVEMENT_INDEX_NAME
USERS_INDEX_NAME = USER_INDEX_NAME
def create_index_with_mapping():
"""创建索引和映射配置"""
"""创建索引和映射配置(仅当索引不存在时)"""
# 获取 Elasticsearch 客户端(与 Document 使用的客户端一致)
try:
# 创建获奖数据索引
AchievementDocument.init()
print(f"创建索引 {DATA_INDEX_NAME} 并设置映射")
# 创建用户索引
UserDocument.init()
print(f"创建索引 {USERS_INDEX_NAME} 并设置映射")
# 创建默认管理员用户
# --- 1. 处理获奖数据索引 ---
if not es.indices.exists(index=DATA_INDEX_NAME):
AchievementDocument.init()
print(f"✅ 创建索引 {DATA_INDEX_NAME} 并设置映射")
else:
print(f" 索引 {DATA_INDEX_NAME} 已存在,跳过创建")
# --- 2. 处理用户索引 ---
if not es.indices.exists(index=USERS_INDEX_NAME):
UserDocument.init()
print(f"✅ 创建索引 {USERS_INDEX_NAME} 并设置映射")
else:
print(f" 索引 {USERS_INDEX_NAME} 已存在,跳过创建")
# --- 3. 创建默认管理员用户(可选:也可检查用户是否已存在)---
# 这里简单处理:每次初始化都写入(可能重复),建议加唯一性判断
admin_user = {
"user_id": 0000000000,
"username": "admin",
"password": "admin",
"user_id": 0,
"username": "admin",
"password": "admin", # ⚠️ 生产环境务必加密!
"permission": 0
}
write_user_data(admin_user)
# 可选:检查 admin 是否已存在(根据 user_id 或 username
from elasticsearch_dsl import Search
s = Search(using=es, index=USERS_INDEX_NAME).query("match", username="admin")
if s.count() == 0:
write_user_data(admin_user)
print("✅ 默认管理员用户已创建")
else:
print(" 默认管理员用户已存在,跳过创建")
except Exception as e:
print(f"创建索引失败: {str(e)}")
print(f"创建索引失败: {str(e)}")
# raise # 可选:在 AppConfig 中捕获,这里可以 re-raise 便于调试
def get_doc_id(data):
"""
@@ -240,7 +256,7 @@ def search_by_any_field(keyword):
def write_user_data(user_data):
"""
写入用户数据到ES
写入用户数据到 ES
参数:
user_data (dict): 用户数据