zhaoqingang
2025-03-18 282a631b9ceee9a634ee1d93751a5254ed37ccef
app/service/knowledge.py
@@ -1,3 +1,5 @@
from datetime import datetime
from sqlalchemy import or_
from app.models import KnowledgeModel, group_knowledge_table
@@ -13,9 +15,11 @@
    query = db.query(KnowledgeModel).filter(KnowledgeModel.knowledge_type==knowledge)
    if user.permission != "admin":
        klg_list = [j.id for i in user.groups for j in i.knowledges]
        query = query.filter(or_(KnowledgeModel.tenant_id == user_id, KnowledgeModel.id.in_(klg_list)))
    if location:
        query = query.filter(KnowledgeModel.permission == "team")
        query = query.filter(or_(KnowledgeModel.id.in_(klg_list), KnowledgeModel.tenant_id == str(user_id)))
        if location:
            query = query.filter(or_(KnowledgeModel.permission == "team", KnowledgeModel.tenant_id == str(user_id)))
    if keyword:
        query = query.filter(KnowledgeModel.name.like('%{}%'.format(keyword)))
    total = query.count()
@@ -26,7 +30,7 @@
async def create_knowledge_service(db, klg_id, name, description, icon, klg_type, user_id):
    try:
        dialog_model = KnowledgeModel(id=klg_id,name=name, description=description,icon=icon, knowledge_type=klg_type, tenant_id=user_id)
        dialog_model = KnowledgeModel(id=klg_id,name=name, description=description,icon=icon, knowledge_type=klg_type, tenant_id=user_id,update_date=datetime.now(),create_date=datetime.now())
        db.add(dialog_model)
        db.commit()
        db.refresh(dialog_model)
@@ -48,6 +52,8 @@
                knowledge.permission = app_knowledge["permission"]
                knowledge.documents = app_knowledge["doc_num"]
                knowledge.status = app_knowledge["status"]
                knowledge.embd_id = app_knowledge["embd_id"]
                knowledge.update_date = datetime.now()
                db.add(knowledge)
                db.commit()
                db.refresh(knowledge)
@@ -69,3 +75,15 @@
        return False
    return True
async def update_knowledge_icon_service(db, klg_id, icon):
    try:
        db.query(KnowledgeModel).filter_by(id=klg_id).update({"icon":icon, "update_date": datetime.now()})
        db.commit()
    except Exception as e:
        logger.error(e)
        db.rollback()
        return False
    return True