feat: 2026-07-11 全量更新 - 代办集成+会议室预定+知识迭代修复+UI统一+Bug修复
== 已部署上线 (9项) == - 代办事项真实数据源集成 (企微审批API 8bug修复链) - H5/坐席端 Logo样式统一+绿色背景 - 视频引导页修复 (localStorage key v2) - 坐席端 v9 Vue版本修复 (ElMessage._context) - 截图按钮 v10 修复 (getDisplayMedia user gesture) - 扫码样式恢复+H5扫码登录跳转修复 - H5截图快捷键提示 == 代码完成待部署 (3项) == - 知识迭代3Bug修复 (#8 POST端点/#7 MERGE幂等/#6 过期检查) - 会议室预定-小鱼易联终端 (40文件, 40/40测试通过) - IT资产升级审批推送 (asset_service.py) == 需求文档 (2项) == - 坐席端AI辅助消息框-PRD (4项新功能确认) - 坐席端布局优化建议 v2.0 (7天计划) == 新增文档 == - 日报-2026-07-11.md - 知识迭代Bug修复报告-20260711.md - 会议室预定-部署指南.md - CHANGELOG.md 更新 == 测试 == - test_todo_integration.py: 40/40 - test_meetingroom.py: 40/40 - test_bugfix_ki_suggestions.py: 21/21
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
# 说明:知识库自动迭代相关接口(扩展版)。
|
||||
# 1. POST /api/admin/knowledge-iteration/analyze - 触发分析并生成建议
|
||||
# 2. GET /api/admin/knowledge-iteration/suggestions - 获取建议列表(支持 audience/confidence 筛选)
|
||||
# 2.1 POST /api/admin/knowledge-iteration/suggestions - 创建知识建议(手动录入,通道 B)
|
||||
# 3. GET /api/admin/knowledge-iteration/suggestions/{id} - 获取建议详情
|
||||
# 4. POST /api/admin/knowledge-iteration/suggestions/{id}/approve - 审核通过(触发Neo4j写图)
|
||||
# 5. POST /api/admin/knowledge-iteration/suggestions/{id}/reject - 审核拒绝
|
||||
@@ -22,6 +23,7 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from app.database import get_db
|
||||
from app.dependencies import get_current_user, require_admin, UserInfo
|
||||
from app.models.knowledge_suggestion import KnowledgeSuggestion
|
||||
from app.schemas.enums import SuggestionStatusEnum, GraphSyncStatusEnum
|
||||
from app.schemas.knowledge_suggestion import (
|
||||
KnowledgeSuggestionListResponse,
|
||||
KnowledgeSuggestionResponse,
|
||||
@@ -30,6 +32,7 @@ from app.schemas.knowledge_suggestion import (
|
||||
KnowledgeSuggestionReject,
|
||||
KnowledgeSuggestionRewrite,
|
||||
KnowledgeSuggestionMerge,
|
||||
KnowledgeSuggestionCreate,
|
||||
)
|
||||
from app.services.knowledge_iteration_service import (
|
||||
KnowledgeIterationService,
|
||||
@@ -158,6 +161,74 @@ async def list_suggestions(
|
||||
}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 创建知识建议(手动录入 — 通道 B)
|
||||
# -----------------------------------------------------------------------------
|
||||
# POST /api/admin/knowledge-iteration/suggestions
|
||||
@router.post("/suggestions")
|
||||
@require_admin
|
||||
async def create_suggestion(
|
||||
body: KnowledgeSuggestionCreate,
|
||||
current_user: UserInfo = Depends(get_current_user),
|
||||
db: AsyncSession = Depends(get_db),
|
||||
):
|
||||
"""创建知识库优化建议(手动录入,通道 B)。
|
||||
|
||||
训练师/管理员手动创建知识建议,状态初始为 pending,等待审核。
|
||||
|
||||
- **suggestion_type**: 建议类型(new_faq/update/outdated)
|
||||
- **title**: 建议标题(必填)
|
||||
- **content**: 答案内容(必填)
|
||||
- **source_type**: 来源类型(手动录入为 manual)
|
||||
|
||||
**需要管理员权限。**
|
||||
"""
|
||||
# 字段验证:必填字段不能为空
|
||||
if not body.title or not body.title.strip():
|
||||
return {"code": 400, "message": "标题不能为空", "data": None}
|
||||
if not body.content or not body.content.strip():
|
||||
return {"code": 400, "message": "内容不能为空", "data": None}
|
||||
if not body.source_type or not body.source_type.strip():
|
||||
return {"code": 400, "message": "来源类型不能为空", "data": None}
|
||||
|
||||
logger.info(
|
||||
f"管理员 {current_user.name} 手动创建知识建议: "
|
||||
f"type={body.suggestion_type}, title={body.title}"
|
||||
)
|
||||
|
||||
# 构建 KnowledgeSuggestion 对象,status 初始为 pending
|
||||
suggestion = KnowledgeSuggestion(
|
||||
suggestion_type=body.suggestion_type,
|
||||
status=SuggestionStatusEnum.pending.value,
|
||||
title=body.title.strip(),
|
||||
content=body.content.strip(),
|
||||
category=body.category or "其他",
|
||||
tags=body.tags or [],
|
||||
source_type=body.source_type,
|
||||
source_data=body.source_data,
|
||||
reason=body.reason,
|
||||
confidence=body.confidence,
|
||||
audience=body.audience.value if body.audience else None,
|
||||
issue=body.issue,
|
||||
action=body.action,
|
||||
relation_type=body.relation_type.value if body.relation_type else None,
|
||||
parent_issue=body.parent_issue,
|
||||
graph_meta=body.graph_meta,
|
||||
graph_sync_status=GraphSyncStatusEnum.pending.value,
|
||||
source_failed=False,
|
||||
)
|
||||
|
||||
db.add(suggestion)
|
||||
await db.commit()
|
||||
await db.refresh(suggestion)
|
||||
|
||||
return {
|
||||
"code": 0,
|
||||
"message": "知识建议创建成功,等待审核",
|
||||
"data": KnowledgeSuggestionResponse.model_validate(suggestion),
|
||||
}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# 获取建议详情
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user