From e49417ee6eecf7f00bd77e01a6b4a1c7a420708b Mon Sep 17 00:00:00 2001 From: xuyonghao <898441624@qq.com> Date: 星期三, 04 十二月 2024 15:08:03 +0800 Subject: [PATCH] 知识库列表获取 --- app/api/knowledge.py | 26 +++++++++++++++++--------- app/service/knowledge.py | 7 +++++-- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/app/api/knowledge.py b/app/api/knowledge.py index 62762cb..625d591 100644 --- a/app/api/knowledge.py +++ b/app/api/knowledge.py @@ -1,21 +1,29 @@ # coding:utf-8 -from fastapi import APIRouter, Depends +from fastapi import APIRouter, Depends, Query, HTTPException from app.api import Response, get_current_user, ResponseList from app.models import RoleParameter, GroupModel, KnowledgeModel from app.models.base_model import get_db from app.models.user_model import UserModel from app.service.knowledge import get_knowledge_list - +from typing import Optional knowledge_router = APIRouter() @knowledge_router.get("/list", response_model=Response) -async def knowledge_list(role:str="", current_user: UserModel = Depends(get_current_user), - db=Depends(get_db)): - return Response(code=200, msg="", data = await get_knowledge_list(db, role, current_user.id)) +async def knowledge_list( + current_user: UserModel = Depends(get_current_user), + page: Optional[int] = Query(None, description="Page number", gt=0), + num: Optional[int] = Query(18, description="Number of items per page", gt=0), + db=Depends(get_db)): + getknowledgelist = await get_knowledge_list(db, current_user.id) + if page is None: + return Response(code=200, msg="", data={"rows": getknowledgelist["rows"][0:num]}) + start = (page - 1) * num + end = start + num -@knowledge_router.get("/list", response_model=Response) -async def knowledge_list(role:str="", current_user: UserModel = Depends(get_current_user), - db=Depends(get_db)): - return Response(code=200, msg="", data = await get_knowledge_list(db, role, current_user.id)) \ No newline at end of file + if start >= len(getknowledgelist): + raise HTTPException(status_code=404, detail="Page not found") + print(getknowledgelist) + + return Response(code=200, msg="", data={"rows": getknowledgelist["rows"][start:end]}) \ No newline at end of file diff --git a/app/service/knowledge.py b/app/service/knowledge.py index c9c89b4..c0121fa 100644 --- a/app/service/knowledge.py +++ b/app/service/knowledge.py @@ -3,8 +3,11 @@ from Log import logger -async def get_knowledge_list(db, role, user_id): - if role == "admin": +async def get_knowledge_list(db, user_id): + user = db.query(UserModel).filter(UserModel.id == user_id).first() + if user is None: + return {"rows": []} + if user.permission == "admin": kld_list = db.query(KnowledgeModel).all() else: user = db.query(UserModel).filter(UserModel.id == user_id).first() -- Gitblit v1.8.0