zhaoqingang
2024-12-24 ee8df9424fc4e3fb30a8b8e39436b26c902defb7
角色的资源过滤掉删除的
4个文件已修改
35 ■■■■■ 已修改文件
app/api/agent.py 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/api/dialog.py 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/models/role_model.py 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/service/dialog.py 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/api/agent.py
@@ -81,11 +81,15 @@
@router.get("/{agent_id}/{conversation_id}/session_log")
async def session_log(agent_id: str, conversation_id: str, db: Session = Depends(get_db), current_user: UserModel = Depends(get_current_user)):
    agent = db.query(AgentModel).filter(AgentModel.id == agent_id).first()
    # agent = db.query(AgentModel).filter(AgentModel.id == agent_id).first()
    # if not agent:
    #     return Response(code=404, msg="Agent not found")
    agent = db.query(MenuCapacityModel).filter(MenuCapacityModel.chat_id == agent_id).first()
    if not agent:
        return Response(code=404, msg="Agent not found")
        return ResponseList(code=404, msg="Agent not found")
    agent_type = int(agent.capacity_type)
    if agent.agent_type == AgentType.RAGFLOW:
    if agent_type == AgentType.RAGFLOW:
        ragflow_service = RagflowService(base_url=settings.fwr_base_url)
        try:
            token = await get_ragflow_token(db, current_user.id)
@@ -116,7 +120,7 @@
                return JSONResponse(status_code=200, content={"code": 400, "message": "Invalid result structure"})
        except Exception as e:
            raise HTTPException(status_code=500, detail=str(e))
    elif agent.agent_type == AgentType.BISHENG:
    elif agent_type == AgentType.BISHENG:
        is_join = False
        if agent.name == "报告生成":
            is_join = True
@@ -180,7 +184,7 @@
                            'answer': answer_str, 'files': files}]})
        except Exception as e:
            raise HTTPException(status_code=500, detail=str(e))
    elif agent.agent_type == AgentType.BASIC:
    elif agent_type == AgentType.BASIC:
        data = []
        session = db.query(SessionModel).filter(SessionModel.id == conversation_id).first()
        if session:
@@ -219,7 +223,7 @@
                data.append(tmp_data)
        return JSONResponse(status_code=200, content={"code": 200, "data": data})
    elif agent.agent_type == AgentType.DIFY:
    elif agent_type == AgentType.DIFY:
        data = []
        session = db.query(SessionModel).filter(SessionModel.id == conversation_id).first()
        if session:
app/api/dialog.py
@@ -20,7 +20,9 @@
                      current_user: UserModel = Depends(get_current_user),
                      db=Depends(get_db)):
    if current and not pageSize:
        return ResponseList(code=400, msg="缺少参数")
        return Response(code=400, msg="缺少参数")
    if status and status not in ["0", "1"]:
        return Response(code=400, msg="Parameter status exception")
    return Response(code=200, msg="", data=await get_dialog_list(db, current_user.id, keyword, label, status, pageSize, current))
app/models/role_model.py
@@ -5,6 +5,7 @@
from sqlalchemy import Column, Integer, String, DateTime, Table, ForeignKey
from sqlalchemy.orm import relationship, backref
from app.config.const import RESOURCE_STATUS_DELETE, DEPT_STATUS_DELETE
from app.models.base_model import Base
# 角色资源关联表
@@ -59,9 +60,9 @@
        }
        # if len(self.resources) > 0:
        json['resources'] = [resource.to_json() for resource in self.resources]
        json['resources'] = [resource.to_json() for resource in self.resources if resource.status != DEPT_STATUS_DELETE]
        json['dept'] = [dept.to_base_json() for dept in self.organizations]
        json['dept'] = [dept.to_base_json() for dept in self.organizationsif if dept.status != RESOURCE_STATUS_DELETE]
        return json
app/service/dialog.py
@@ -13,7 +13,11 @@
    user = db.query(UserModel).filter(UserModel.id == user_id).first()
    if user is None:
        return {"rows": []}
    query = db.query(DialogModel).filter(DialogModel.status != Dialog_STATSU_DELETE)
    query = db.query(DialogModel)
    if status:
        query = query.filter(DialogModel.status == status)
    else:
        query = query.filter(DialogModel.status != Dialog_STATSU_DELETE)
    id_list = []
    if label:
        id_list = [i.object_id for i in db.query(LabelWorkerModel).filter(LabelWorkerModel.label_id==label).all()]
@@ -27,9 +31,7 @@
    if keyword:
        query = query.filter(DialogModel.name.like('%{}%'.format(keyword)))
    if status:
        # print(status)
        query = query.filter(DialogModel.status == status)
    query = query.order_by(DialogModel.update_date.desc())
    total = query.count()
    if page_size: