zhaoqingang
2024-12-31 b2a5cf3f47b86ec6b69053dfb2a12d02e3980720
Merge branch 'master' of http://192.168.5.5:10010/r/rag-gateway
5个文件已修改
1个文件已添加
52 ■■■■ 已修改文件
app/service/role.py 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/service/user.py 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/task/delete_execl_file.py 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/task/fetch_agent.py 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/utils/excelmerge/conformity.py 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
main.py 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/service/role.py
@@ -1,6 +1,7 @@
import uuid
from Log import logger
from app.config.const import DEPT_STATUS_ON
from app.models import OrganizationModel
from app.models.resource_model import ResourceModel
from app.models.role_model import RoleModel
@@ -16,7 +17,7 @@
    total = query.count()
    roles = query.order_by(RoleModel.created_at.desc()).limit(page_size).offset(
        (page_index - 1) * page_size).all()
    return {"total": total, "rows":  [role.to_json() for role in roles]}
    return {"total": total, "rows":  [role.to_json() for role in roles if role.status == DEPT_STATUS_ON]}
async def create_role(db, role_name: str, description: str, role_key, data_scope, user_id):
app/service/user.py
@@ -332,8 +332,8 @@
    knowledge_dict = {}
    user = db.query(UserModel).filter_by(id=user_id).first()
    parent_id = ""
    # print(111111111111111)
    async def role_resource(role_set, permissions, roles):
    async def role_resource_type(role_set, permissions, roles, type):
        nonlocal parent_id
        for role in roles:
            if role.id not in role_set:
@@ -341,20 +341,19 @@
                for r in role.resources:
                    if r.resource_type_id != "1":
                    #     if not r.resource_id:
                    #         parent_id = r.id
                    #         continue
                        permissions[r.id] = r.to_router_dict()
                        permission_dict = r.to_router_dict()
                        permission_dict["type"] = type
                        permissions[r.id] = permission_dict
    await role_resource(role_set, permissions, user.roles)
    await role_resource_type(role_set, permissions, user.roles, "user")
    for ogt in user.organizations:
        if ogt.roles:
            await role_resource(role_set, permissions, ogt.roles)
            await role_resource_type(role_set, permissions, ogt.roles, "org")
        parent_ogt = ogt.parent
        while parent_ogt:
            if parent_ogt.id not in dept_set:
                await role_resource(role_set, permissions, parent_ogt.roles)
                await role_resource_type(role_set, permissions, parent_ogt.roles, "org")
                dept_set.add(parent_ogt.id)
                parent_ogt = parent_ogt.parent
@@ -385,7 +384,7 @@
async def get_user_dept(db, user_id):
    res = {}
    user = db.query(UserModel).filter_by(id=user_id).first()
    res["rows"] = [i.to_dict() for i in user.organizations]
    res["rows"] = [i.to_dict() for i in user.organizations if i.status == DEPT_STATUS_ON]
    return res
app/task/delete_execl_file.py
New file
@@ -0,0 +1,21 @@
import os.path
from datetime import datetime, timedelta
def delete_file_after_delay():
    path = "data/output"
    data_dir = os.path.dirname(path)
    if not os.path.exists(data_dir):
        return
    if not os.path.exists(path):
        return
    now = datetime.now()
    five_minutes_ago = now - timedelta(minutes=5)
    for filename in os.listdir(path):
        file_path = os.path.join(path, filename)
        if os.path.isfile(file_path):
            creation_time = os.path.getctime(file_path)
            file_creation_datetime = datetime.fromtimestamp(creation_time)
            if file_creation_datetime < five_minutes_ago:
                os.remove(file_path)
                print(f"定时删除文件: {file_path}")
app/task/fetch_agent.py
@@ -483,7 +483,7 @@
                import_type_table(db, node)
            print("add resourceType record successfully")
        else:
            print("sync resources successfully")
            print("sync resourcesType successfully")
        if db.query(ResourceModel).count() == 0:
            with open(os.path.join(ENV_CONF_PATH, "resource.json"), 'r', encoding='utf-8') as file:
                json_data = json.load(file)
app/utils/excelmerge/conformity.py
@@ -2,8 +2,8 @@
import random
import shutil
import string
from datetime import datetime
from datetime import datetime
from openpyxl import load_workbook
@@ -65,10 +65,9 @@
        template_excel.save(output_path)
        template_excel.close()
        # 合并完成后删除无用文件
        try:
        for filename in os.listdir(file_path):
            file_path_full = os.path.join(file_path, filename)
            try:
                if os.path.isfile(file_path_full) or os.path.islink(file_path_full):
                    os.unlink(file_path_full)
                elif os.path.isdir(file_path_full):
main.py
@@ -23,6 +23,7 @@
from app.api.group import group_router
from app.api.role import role_router
from app.models.base_model import init_db
from app.task.delete_execl_file import delete_file_after_delay
# from app.models.base_model import init_db
from app.task.fetch_agent import sync_agents, initialize_agents, sync_agents_v2, sync_knowledge, \
    sync_resources_from_json
@@ -66,6 +67,7 @@
# 创建调度器
scheduler = BackgroundScheduler()
scheduler.add_job(sync_agents_v2, 'interval', minutes=60, id="sync_resource_data")
scheduler.add_job(delete_file_after_delay, 'interval', minutes=10, id="delete_file_after_delay")
scheduler.start()
app.include_router(auth_router, prefix='/api/auth', tags=["auth"])