From ee8df9424fc4e3fb30a8b8e39436b26c902defb7 Mon Sep 17 00:00:00 2001
From: zhaoqingang <zhaoqg0118@163.com>
Date: 星期二, 24 十二月 2024 13:37:15 +0800
Subject: [PATCH] 角色的资源过滤掉删除的

---
 app/models/role_model.py |    5 +++--
 app/service/dialog.py    |   10 ++++++----
 app/api/dialog.py        |    4 +++-
 app/api/agent.py         |   16 ++++++++++------
 4 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/app/api/agent.py b/app/api/agent.py
index fb1ad87..0fb5f10 100644
--- a/app/api/agent.py
+++ b/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:
diff --git a/app/api/dialog.py b/app/api/dialog.py
index 799d7ea..45db470 100644
--- a/app/api/dialog.py
+++ b/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))
 
 
diff --git a/app/models/role_model.py b/app/models/role_model.py
index 42895df..23231de 100644
--- a/app/models/role_model.py
+++ b/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
 
diff --git a/app/service/dialog.py b/app/service/dialog.py
index bfc1fc0..0e79270 100644
--- a/app/service/dialog.py
+++ b/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:

--
Gitblit v1.8.0