From 5ef590b70cc8e2de16083af2ee2d977daae5587c Mon Sep 17 00:00:00 2001 From: zhaoqingang <zhaoqg0118@163.com> Date: 星期二, 19 十一月 2024 16:34:29 +0800 Subject: [PATCH] 会话缓存本地数据库 --- app/service/group.py | 27 +++++++++++++++++++++------ 1 files changed, 21 insertions(+), 6 deletions(-) diff --git a/app/service/group.py b/app/service/group.py index cc05127..af95c76 100644 --- a/app/service/group.py +++ b/app/service/group.py @@ -1,16 +1,17 @@ from app.config.config import settings +from app.models import CanvasModel, DialogModel, KnowledgeModel from app.models.group_model import GroupModel from app.models.user_model import UserModel from app.service.ragflow import RagflowService -from app.service.token import get_ragflow_token +from app.service.service_token import get_ragflow_token from Log import logger async def group_list(db, page_size: int, page_index: int, keyword: str, role_key:str, user_id): logger.info("-------------------------group_list----------------------------------") - query = db.query(GroupModel) - if role_key != "admin": - query.filter(GroupModel.creator==user_id) + query = db.query(GroupModel).filter(GroupModel.creator==user_id) + # if role_key != "admin": + # query.filter(GroupModel.creator==user_id) if keyword: query = query.filter(GroupModel.group_name.like('%{}%'.format(keyword))) items = query.order_by(GroupModel.id.desc()).limit(page_size).offset( @@ -59,7 +60,7 @@ in_group_user = [] user_list = [u.id for i in db.query(GroupModel).filter(GroupModel.id.__eq__(group_id)).all() for u in i.users] - for u in db.query(UserModel.id, UserModel.username).order_by(UserModel.id.desc()).all(): + for u in db.query(UserModel.id, UserModel.username).filter(UserModel.permission!="admin").order_by(UserModel.id.desc()).all(): if u.id in user_list: in_group_user.append({"user_id": u.id, "user_name": u.username}) else: @@ -70,14 +71,15 @@ async def save_user_to_group(db, user_id, group_id, user_list): group_user_list = [u.id for i in db.query(GroupModel).filter(GroupModel.id.__eq__(group_id)).all() for u in i.users] - # print(group_user_list) new_users = set([i for i in user_list if i not in group_user_list]) delete_user = [i for i in group_user_list if i not in user_list] + print(new_users) if new_users: user_dict = {i.id: {"rg_id": i.ragflow_id, "email": i.email} for i in db.query(UserModel.id, UserModel.email, UserModel.ragflow_id).filter( UserModel.id.in_(user_list)).all()} + print(user_dict) ragflow_service = RagflowService(settings.fwr_base_url) token = get_ragflow_token(db, user_id) @@ -93,6 +95,7 @@ for user1 in new_users: for user2 in new_users: if user1 != user2: + print(user1, user2) await ragflow_service.add_user_tenant(token, user_dict[user1]["rg_id"], user_dict[user2]["email"], user_dict[user2]["rg_id"]) @@ -107,4 +110,16 @@ except Exception as e: logger.error(e) return False + return True + +async def save_group_resource(db, user_id, group_id, agents, dialogs, knowledges): + try: + group = db.query(GroupModel).filter(GroupModel.id.__eq__(group_id)).first() + group.agents = [db.get(CanvasModel, user) for user in agents] + group.dialogs = [db.get(DialogModel, user) for user in dialogs] + group.knowledges = [db.get(KnowledgeModel, user) for user in knowledges] + db.commit() + except Exception as e: + logger.error(e) + return False return True \ No newline at end of file -- Gitblit v1.8.0