[changes] Remove the interface and modify the parameters passed in

This commit is contained in:
lanceyq
2026-03-24 17:44:54 +08:00
parent db14d40fb3
commit e981f066a3
3 changed files with 37 additions and 277 deletions

View File

@@ -341,14 +341,14 @@ async def get_community_graph_data_api(
@router.get("/end_user_info", response_model=ApiResponse)
async def get_end_user_info(
end_user_info_id: str,
end_user_id: str,
current_user: User = Depends(get_current_user),
db: Session = Depends(get_db),
) -> dict:
"""
查询终端用户信息记录
根据 end_user_info_id 查询单条终端用户信息记录。
根据 end_user_id 查询单条终端用户信息记录。
"""
workspace_id = current_user.current_workspace_id
@@ -357,69 +357,27 @@ async def get_end_user_info(
return fail(BizCode.INVALID_PARAMETER, "请先切换到一个工作空间", "current_workspace_id is None")
api_logger.info(
f"查询终端用户信息请求: end_user_info_id={end_user_info_id}, user={current_user.username}, "
f"查询终端用户信息请求: end_user_id={end_user_id}, user={current_user.username}, "
f"workspace={workspace_id}"
)
result = user_memory_service.get_end_user_info(db, end_user_info_id)
result = user_memory_service.get_end_user_info(db, end_user_id)
if result["success"]:
api_logger.info(f"成功查询终端用户信息: end_user_info_id={end_user_info_id}")
api_logger.info(f"成功查询终端用户信息: end_user_id={end_user_id}")
return success(data=result["data"], msg="查询成功")
else:
error_msg = result["error"]
api_logger.error(f"查询终端用户信息失败: end_user_info_id={end_user_info_id}, error={error_msg}")
api_logger.error(f"查询终端用户信息失败: end_user_id={end_user_id}, error={error_msg}")
if error_msg == "终端用户信息记录不存在":
return fail(BizCode.USER_NOT_FOUND, "终端用户信息记录不存在", error_msg)
elif error_msg == "无效的终端用户信息记录ID格式":
return fail(BizCode.INVALID_USER_ID, "无效的终端用户信息记录ID格式", error_msg)
elif error_msg == "无效的终端用户ID格式":
return fail(BizCode.INVALID_USER_ID, "无效的终端用户ID格式", error_msg)
else:
return fail(BizCode.INTERNAL_ERROR, "查询终端用户信息失败", error_msg)
@router.post("/end_user_info/create", response_model=ApiResponse)
async def create_end_user_info(
info_create: EndUserInfoCreate,
current_user: User = Depends(get_current_user),
db: Session = Depends(get_db),
) -> dict:
"""
创建终端用户信息记录
为指定用户创建一条新的信息记录,支持多个别名。
"""
workspace_id = current_user.current_workspace_id
end_user_id = info_create.end_user_id
if workspace_id is None:
api_logger.warning(f"用户 {current_user.username} 尝试创建终端用户信息但未选择工作空间")
return fail(BizCode.INVALID_PARAMETER, "请先切换到一个工作空间", "current_workspace_id is None")
api_logger.info(
f"创建终端用户信息请求: end_user_id={end_user_id}, aliases={info_create.aliases}, "
f"user={current_user.username}, workspace={workspace_id}"
)
result = user_memory_service.create_end_user_info(
db, end_user_id, info_create.other_name, info_create.aliases, info_create.meta_data
)
if result["success"]:
api_logger.info(f"成功创建终端用户信息: end_user_id={end_user_id}")
return success(data=result["data"], msg="创建成功")
else:
error_msg = result["error"]
api_logger.error(f"终端用户信息创建失败: end_user_id={end_user_id}, error={error_msg}")
if error_msg == "终端用户不存在":
return fail(BizCode.USER_NOT_FOUND, "终端用户不存在", error_msg)
elif error_msg == "无效的用户ID格式":
return fail(BizCode.INVALID_USER_ID, "无效的用户ID格式", error_msg)
else:
return fail(BizCode.INTERNAL_ERROR, "终端用户信息创建失败", error_msg)
@router.post("/end_user_info/updated", response_model=ApiResponse)
async def update_end_user_info(
info_update: EndUserInfoUpdate,
@@ -429,86 +387,47 @@ async def update_end_user_info(
"""
更新终端用户信息记录
根据 end_user_info_id 更新终端用户信息记录,支持批量更新多个别名。
根据 end_user_id 更新终端用户信息记录,支持批量更新多个别名。
示例请求体:
{
"end_user_info_id": "2d4f57d4-639b-47aa-937a-d461bc2c2d53",
"end_user_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"other_name": "张三1",
"aliases": ["小张", "张工"],
"meta_data": {"position": "工程师", "department": "技术部"}
}
"""
workspace_id = current_user.current_workspace_id
end_user_info_id = info_update.end_user_info_id
end_user_id = info_update.end_user_id
if workspace_id is None:
api_logger.warning(f"用户 {current_user.username} 尝试更新终端用户信息但未选择工作空间")
return fail(BizCode.INVALID_PARAMETER, "请先切换到一个工作空间", "current_workspace_id is None")
api_logger.info(
f"更新终端用户信息请求: end_user_info_id={end_user_info_id}, user={current_user.username}, "
f"更新终端用户信息请求: end_user_id={end_user_id}, user={current_user.username}, "
f"workspace={workspace_id}"
)
# 获取更新数据(排除 end_user_info_id
update_data = info_update.model_dump(exclude_unset=True, exclude={'end_user_info_id'})
# 获取更新数据(排除 end_user_id
update_data = info_update.model_dump(exclude_unset=True, exclude={'end_user_id'})
result = user_memory_service.update_end_user_info(db, end_user_info_id, update_data)
result = user_memory_service.update_end_user_info(db, end_user_id, update_data)
if result["success"]:
api_logger.info(f"成功更新终端用户信息: end_user_info_id={end_user_info_id}")
api_logger.info(f"成功更新终端用户信息: end_user_id={end_user_id}")
return success(data=result["data"], msg="更新成功")
else:
error_msg = result["error"]
api_logger.error(f"终端用户信息更新失败: end_user_info_id={end_user_info_id}, error={error_msg}")
api_logger.error(f"终端用户信息更新失败: end_user_id={end_user_id}, error={error_msg}")
if error_msg == "终端用户信息记录不存在":
return fail(BizCode.USER_NOT_FOUND, "终端用户信息记录不存在", error_msg)
elif error_msg == "无效的终端用户信息记录ID格式":
return fail(BizCode.INVALID_USER_ID, "无效的终端用户信息记录ID格式", error_msg)
elif error_msg == "无效的终端用户ID格式":
return fail(BizCode.INVALID_USER_ID, "无效的终端用户ID格式", error_msg)
else:
return fail(BizCode.INTERNAL_ERROR, "终端用户信息更新失败", error_msg)
@router.delete("/end_user_info", response_model=ApiResponse)
async def delete_end_user_info(
end_user_info_id: str,
current_user: User = Depends(get_current_user),
db: Session = Depends(get_db),
) -> dict:
"""
删除终端用户信息记录
根据 end_user_info_id 删除指定的终端用户信息记录。
"""
workspace_id = current_user.current_workspace_id
if workspace_id is None:
api_logger.warning(f"用户 {current_user.username} 尝试删除终端用户信息但未选择工作空间")
return fail(BizCode.INVALID_PARAMETER, "请先切换到一个工作空间", "current_workspace_id is None")
api_logger.info(
f"删除终端用户信息请求: end_user_info_id={end_user_info_id}, user={current_user.username}, "
f"workspace={workspace_id}"
)
result = user_memory_service.delete_end_user_info(db, end_user_info_id)
if result["success"]:
api_logger.info(f"成功删除终端用户信息: end_user_info_id={end_user_info_id}")
return success(data=result["data"], msg="删除成功")
else:
error_msg = result["error"]
api_logger.error(f"终端用户信息删除失败: end_user_info_id={end_user_info_id}, error={error_msg}")
if error_msg == "终端用户信息记录不存在":
return fail(BizCode.USER_NOT_FOUND, "终端用户信息记录不存在", error_msg)
elif error_msg == "无效的终端用户信息记录ID格式":
return fail(BizCode.INVALID_USER_ID, "无效的终端用户信息记录ID格式", error_msg)
else:
return fail(BizCode.INTERNAL_ERROR, "终端用户信息删除失败", error_msg)
@router.get("/memory_space/timeline_memories", response_model=ApiResponse)
async def memory_space_timeline_of_shared_memories(
id: str, label: str,

View File

@@ -19,7 +19,7 @@ class EndUserInfoCreate(EndUserInfoBase):
class EndUserInfoUpdate(BaseModel):
"""更新终端用户信息请求模型"""
end_user_info_id: str = Field(description="终端用户信息记录ID")
end_user_id: str = Field(description="终端用户ID")
other_name: Optional[str] = Field(description="用户名称", default=None)
aliases: Optional[List[str]] = Field(description="用户别名列表", default=None)
meta_data: Optional[Dict[str, Any]] = Field(description="用户相关的扩展信息", default=None)

View File

@@ -365,14 +365,14 @@ class UserMemoryService:
def get_end_user_info(
self,
db: Session,
end_user_info_id: str
end_user_id: str
) -> Dict[str, Any]:
"""
查询单个终端用户信息记录
Args:
db: 数据库会话
end_user_info_id: 终端用户信息记录ID (UUID)
end_user_id: 终端用户ID (UUID)
Returns:
{
@@ -385,11 +385,11 @@ class UserMemoryService:
from app.models.end_user_info_model import EndUserInfo
# 转换为UUID并查询
info_uuid = uuid.UUID(end_user_info_id)
end_user_info_record = db.query(EndUserInfo).filter(EndUserInfo.id == info_uuid).first()
user_uuid = uuid.UUID(end_user_id)
end_user_info_record = db.query(EndUserInfo).filter(EndUserInfo.end_user_id == user_uuid).first()
if not end_user_info_record:
logger.warning(f"终端用户信息记录不存在: end_user_info_id={end_user_info_id}")
logger.warning(f"终端用户信息记录不存在: end_user_id={end_user_id}")
return {
"success": False,
"data": None,
@@ -408,95 +408,7 @@ class UserMemoryService:
updated_at=end_user_info_record.updated_at
)
logger.info(f"成功查询终端用户信息记录: end_user_info_id={end_user_info_id}")
return {
"success": True,
"data": response_data.model_dump(),
"error": None
}
except ValueError:
logger.error(f"无效的 end_user_info_id 格式: {end_user_info_id}")
return {
"success": False,
"data": None,
"error": "无效的终端用户信息记录ID格式"
}
except Exception as e:
logger.error(f"查询终端用户信息记录失败: end_user_info_id={end_user_info_id}, error={str(e)}")
return {
"success": False,
"data": None,
"error": str(e)
}
def create_end_user_info(
self,
db: Session,
end_user_id: str,
other_name: str,
aliases: List[str] = None,
meta_data: dict = None
) -> Dict[str, Any]:
"""
创建终端用户信息记录
Args:
db: 数据库会话
end_user_id: 终端用户ID (UUID)
other_name: 用户名称
aliases: 别名列表
meta_data: 扩展信息
Returns:
{
"success": bool,
"data": dict,
"error": Optional[str]
}
"""
try:
from app.models.end_user_info_model import EndUserInfo
from app.repositories.end_user_repository import EndUserRepository
# 转换为UUID并查询用户
user_uuid = uuid.UUID(end_user_id)
repo = EndUserRepository(db)
end_user = repo.get_by_id(user_uuid)
if not end_user:
logger.warning(f"终端用户不存在: end_user_id={end_user_id}")
return {
"success": False,
"data": None,
"error": "终端用户不存在"
}
# 创建新的用户信息记录
new_info = EndUserInfo(
end_user_id=user_uuid,
other_name=other_name,
aliases=aliases,
meta_data=meta_data
)
db.add(new_info)
db.commit()
db.refresh(new_info)
# 构建响应数据
from app.schemas.end_user_info_schema import EndUserInfoResponse
response_data = EndUserInfoResponse(
end_user_info_id=new_info.id,
end_user_id=new_info.end_user_id,
other_name=new_info.other_name,
aliases=new_info.aliases,
meta_data=new_info.meta_data,
created_at=new_info.created_at,
updated_at=new_info.updated_at
)
logger.info(f"成功创建终端用户信息记录: end_user_id={end_user_id}")
logger.info(f"成功查询终端用户信息记录: end_user_id={end_user_id}")
return {
"success": True,
@@ -509,11 +421,10 @@ class UserMemoryService:
return {
"success": False,
"data": None,
"error": "无效的用户ID格式"
"error": "无效的终端用户ID格式"
}
except Exception as e:
db.rollback()
logger.error(f"创建终端用户信息记录失败: end_user_id={end_user_id}, error={str(e)}")
logger.error(f"查询终端用户信息记录失败: end_user_id={end_user_id}, error={str(e)}")
return {
"success": False,
"data": None,
@@ -523,7 +434,7 @@ class UserMemoryService:
def update_end_user_info(
self,
db: Session,
end_user_info_id: str,
end_user_id: str,
update_data: Dict[str, Any]
) -> Dict[str, Any]:
"""
@@ -531,7 +442,7 @@ class UserMemoryService:
Args:
db: 数据库会话
end_user_info_id: 终端用户信息记录ID (UUID)
end_user_id: 终端用户ID (UUID)
update_data: 更新数据字典
Returns:
@@ -545,11 +456,11 @@ class UserMemoryService:
from app.models.end_user_info_model import EndUserInfo
# 转换为UUID并查询
info_uuid = uuid.UUID(end_user_info_id)
end_user_info_record = db.query(EndUserInfo).filter(EndUserInfo.id == info_uuid).first()
user_uuid = uuid.UUID(end_user_id)
end_user_info_record = db.query(EndUserInfo).filter(EndUserInfo.end_user_id == user_uuid).first()
if not end_user_info_record:
logger.warning(f"终端用户信息记录不存在: end_user_info_id={end_user_info_id}")
logger.warning(f"终端用户信息记录不存在: end_user_id={end_user_id}")
return {
"success": False,
"data": None,
@@ -583,7 +494,7 @@ class UserMemoryService:
updated_at=end_user_info_record.updated_at
)
logger.info(f"成功更新终端用户信息记录: end_user_info_id={end_user_info_id}, updated_fields={list(update_data.keys())}")
logger.info(f"成功更新终端用户信息记录: end_user_id={end_user_id}, updated_fields={list(update_data.keys())}")
return {
"success": True,
@@ -592,85 +503,15 @@ class UserMemoryService:
}
except ValueError:
logger.error(f"无效的 end_user_info_id 格式: {end_user_info_id}")
logger.error(f"无效的 end_user_id 格式: {end_user_id}")
return {
"success": False,
"data": None,
"error": "无效的终端用户信息记录ID格式"
"error": "无效的终端用户ID格式"
}
except Exception as e:
db.rollback()
logger.error(f"更新终端用户信息记录失败: end_user_info_id={end_user_info_id}, error={str(e)}")
return {
"success": False,
"data": None,
"error": str(e)
}
def delete_end_user_info(
self,
db: Session,
end_user_info_id: str
) -> Dict[str, Any]:
"""
删除终端用户信息记录
Args:
db: 数据库会话
end_user_info_id: 终端用户信息记录ID (UUID)
Returns:
{
"success": bool,
"data": dict,
"error": Optional[str]
}
"""
try:
from app.models.end_user_info_model import EndUserInfo
# 转换为UUID并查询
info_uuid = uuid.UUID(end_user_info_id)
end_user_info_record = db.query(EndUserInfo).filter(EndUserInfo.id == info_uuid).first()
if not end_user_info_record:
logger.warning(f"终端用户信息记录不存在: end_user_info_id={end_user_info_id}")
return {
"success": False,
"data": None,
"error": "终端用户信息记录不存在"
}
# 删除记录
db.delete(end_user_info_record)
db.commit()
logger.info(f"成功删除终端用户信息记录: end_user_info_id={end_user_info_id}")
return {
"success": True,
"data": {"end_user_info_id": end_user_info_id},
"error": None
}
except ValueError:
logger.error(f"无效的 end_user_info_id 格式: {end_user_info_id}")
return {
"success": False,
"data": None,
"error": "无效的终端用户信息记录ID格式"
}
except Exception as e:
db.rollback()
logger.error(f"删除终端用户信息记录失败: end_user_info_id={end_user_info_id}, error={str(e)}")
return {
"success": False,
"data": None,
"error": str(e)
}
except Exception as e:
db.rollback()
logger.error(f"用户别名记录更新失败: user_alias_id={user_alias_id}, error={str(e)}")
logger.error(f"更新终端用户信息记录失败: end_user_id={end_user_id}, error={str(e)}")
return {
"success": False,
"data": None,