Fix/interface home (#182)
* [fix]Fix the interface for statistics of recent activities and applications * [changes]Modify the code based on the AI review 1.Use the boolean auxiliary methods provided by SQLAlchemy instead of using == True in the is_active filter. 2.The calculation of the "PROJECT_ROOT" has now been hardcoded with five levels of nested os.path.dirname calls. * [fix]Fix the interface for statistics of recent activities and applications * [changes]Modify the code based on the AI review 1.Use the boolean auxiliary methods provided by SQLAlchemy instead of using == True in the is_active filter. 2.The calculation of the "PROJECT_ROOT" has now been hardcoded with five levels of nested os.path.dirname calls.
This commit is contained in:
@@ -15,9 +15,13 @@ class AppRepository:
|
||||
self.db = db
|
||||
|
||||
def get_apps_by_workspace_id(self, workspace_id: uuid.UUID) -> list[App]:
|
||||
"""根据工作空间ID查询应用"""
|
||||
"""根据工作空间ID查询应用(仅返回未删除的应用)"""
|
||||
try:
|
||||
apps = self.db.query(App).filter(App.workspace_id == workspace_id).all()
|
||||
apps = (
|
||||
self.db.query(App)
|
||||
.filter(App.workspace_id == workspace_id, App.is_active.is_(True))
|
||||
.all()
|
||||
)
|
||||
db_logger.info(f"成功查询工作空间 {workspace_id} 下的 {len(apps)} 个应用")
|
||||
return apps
|
||||
except Exception as e:
|
||||
@@ -26,7 +30,7 @@ class AppRepository:
|
||||
|
||||
def get_apps_by_id(self, app_id: uuid.UUID) -> App:
|
||||
try:
|
||||
app = self.db.query(App).filter(App.id == app_id, App.is_active == True).first()
|
||||
app = self.db.query(App).filter(App.id == app_id, App.is_active.is_(True)).first()
|
||||
return app
|
||||
except Exception as e:
|
||||
raise
|
||||
|
||||
@@ -17,24 +17,24 @@ class HomePageRepository:
|
||||
"""获取模型统计数据"""
|
||||
total_models = db.query(ModelConfig).filter(
|
||||
ModelConfig.tenant_id == tenant_id,
|
||||
ModelConfig.is_active == True
|
||||
ModelConfig.is_active.is_(True)
|
||||
).count()
|
||||
|
||||
total_llm = db.query(ModelConfig).filter(
|
||||
ModelConfig.tenant_id == tenant_id,
|
||||
ModelConfig.is_active == True,
|
||||
ModelConfig.is_active.is_(True),
|
||||
ModelConfig.type == "llm"
|
||||
).count()
|
||||
|
||||
total_embedding = db.query(ModelConfig).filter(
|
||||
ModelConfig.tenant_id == tenant_id,
|
||||
ModelConfig.is_active == True,
|
||||
ModelConfig.is_active.is_(True),
|
||||
ModelConfig.type == "embedding"
|
||||
).count()
|
||||
|
||||
new_models_this_week = db.query(ModelConfig).filter(
|
||||
ModelConfig.tenant_id == tenant_id,
|
||||
ModelConfig.is_active == True,
|
||||
ModelConfig.is_active.is_(True),
|
||||
ModelConfig.created_at >= week_start
|
||||
).count()
|
||||
|
||||
@@ -56,12 +56,12 @@ class HomePageRepository:
|
||||
"""获取工作空间统计数据"""
|
||||
active_workspaces = db.query(Workspace).filter(
|
||||
Workspace.tenant_id == tenant_id,
|
||||
Workspace.is_active == True
|
||||
Workspace.is_active.is_(True)
|
||||
).count()
|
||||
|
||||
new_workspaces_this_week = db.query(Workspace).filter(
|
||||
Workspace.tenant_id == tenant_id,
|
||||
Workspace.is_active == True,
|
||||
Workspace.is_active.is_(True),
|
||||
Workspace.created_at >= week_start
|
||||
).count()
|
||||
|
||||
@@ -83,7 +83,7 @@ class HomePageRepository:
|
||||
"""获取用户统计数据"""
|
||||
workspace_ids = db.query(Workspace.id).filter(
|
||||
Workspace.tenant_id == tenant_id,
|
||||
Workspace.is_active == True
|
||||
Workspace.is_active.is_(True)
|
||||
).subquery()
|
||||
|
||||
total_users = db.query(EndUser).join(
|
||||
@@ -91,7 +91,7 @@ class HomePageRepository:
|
||||
EndUser.app_id == App.id
|
||||
).filter(
|
||||
App.workspace_id.in_(workspace_ids),
|
||||
App.is_active == True,
|
||||
App.is_active.is_(True),
|
||||
App.status == "active"
|
||||
).count()
|
||||
|
||||
@@ -100,7 +100,7 @@ class HomePageRepository:
|
||||
EndUser.app_id == App.id
|
||||
).filter(
|
||||
App.workspace_id.in_(workspace_ids),
|
||||
App.is_active == True,
|
||||
App.is_active.is_(True),
|
||||
App.status == "active",
|
||||
EndUser.created_at >= week_start
|
||||
).count()
|
||||
@@ -123,18 +123,18 @@ class HomePageRepository:
|
||||
"""获取应用统计数据"""
|
||||
workspace_ids = db.query(Workspace.id).filter(
|
||||
Workspace.tenant_id == tenant_id,
|
||||
Workspace.is_active == True
|
||||
Workspace.is_active.is_(True)
|
||||
).subquery()
|
||||
|
||||
running_apps = db.query(App).filter(
|
||||
App.workspace_id.in_(workspace_ids),
|
||||
App.is_active == True,
|
||||
App.is_active.is_(True),
|
||||
App.status == "active"
|
||||
).count()
|
||||
|
||||
new_apps_this_week = db.query(App).filter(
|
||||
App.workspace_id.in_(workspace_ids),
|
||||
App.is_active == True,
|
||||
App.is_active.is_(True),
|
||||
App.status == "active",
|
||||
App.created_at >= week_start
|
||||
).count()
|
||||
@@ -158,7 +158,7 @@ class HomePageRepository:
|
||||
# 获取工作空间列表
|
||||
workspaces = db.query(Workspace).filter(
|
||||
Workspace.tenant_id == tenant_id,
|
||||
Workspace.is_active == True
|
||||
Workspace.is_active.is_(True)
|
||||
).all()
|
||||
|
||||
workspace_ids = [ws.id for ws in workspaces]
|
||||
@@ -169,7 +169,7 @@ class HomePageRepository:
|
||||
func.count(App.id).label('count')
|
||||
).filter(
|
||||
App.workspace_id.in_(workspace_ids),
|
||||
App.is_active,
|
||||
App.is_active.is_(True),
|
||||
App.status == "active"
|
||||
).group_by(App.workspace_id).all()
|
||||
|
||||
@@ -184,7 +184,7 @@ class HomePageRepository:
|
||||
EndUser.app_id == App.id
|
||||
).filter(
|
||||
App.workspace_id.in_(workspace_ids),
|
||||
App.is_active,
|
||||
App.is_active.is_(True),
|
||||
App.status == "active"
|
||||
).group_by(App.workspace_id).all()
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ class UserRepository:
|
||||
db_logger.debug("查询超级用户")
|
||||
|
||||
try:
|
||||
user = self.db.query(User).options(joinedload(User.tenant)).filter(User.is_active == True).filter(User.is_superuser == True).first()
|
||||
user = self.db.query(User).options(joinedload(User.tenant)).filter(User.is_active.is_(True)).filter(User.is_superuser.is_(True)).first()
|
||||
if user:
|
||||
db_logger.debug(f"超级用户查询成功: {user.username}")
|
||||
else:
|
||||
@@ -82,7 +82,7 @@ class UserRepository:
|
||||
db_logger.debug("检查是否只有一个超级用户")
|
||||
|
||||
try:
|
||||
count = self.db.query(User).options(joinedload(User.tenant)).filter(User.is_active == True).filter(User.is_superuser == True).count()
|
||||
count = self.db.query(User).options(joinedload(User.tenant)).filter(User.is_active.is_(True)).filter(User.is_superuser.is_(True)).count()
|
||||
return count == 1
|
||||
except Exception as e:
|
||||
db_logger.error(f"检查超级用户数量失败: {str(e)}")
|
||||
|
||||
@@ -33,7 +33,7 @@ class WorkflowConfigRepository:
|
||||
"""
|
||||
return self.db.query(WorkflowConfig).filter(
|
||||
WorkflowConfig.app_id == app_id,
|
||||
WorkflowConfig.is_active == True
|
||||
WorkflowConfig.is_active.is_(True)
|
||||
).first()
|
||||
|
||||
def create_or_update(
|
||||
|
||||
@@ -103,7 +103,7 @@ class WorkspaceRepository:
|
||||
workspaces = (
|
||||
self.db.query(Workspace)
|
||||
.filter(Workspace.tenant_id == user.tenant_id)
|
||||
.filter(Workspace.is_active == True)
|
||||
.filter(Workspace.is_active.is_(True))
|
||||
.order_by(Workspace.updated_at.desc())
|
||||
.all()
|
||||
)
|
||||
@@ -115,7 +115,7 @@ class WorkspaceRepository:
|
||||
self.db.query(Workspace)
|
||||
.join(WorkspaceMember, Workspace.id == WorkspaceMember.workspace_id)
|
||||
.filter(WorkspaceMember.user_id == user_id)
|
||||
.filter(Workspace.is_active == True)
|
||||
.filter(Workspace.is_active.is_(True))
|
||||
.order_by(Workspace.updated_at.desc())
|
||||
.all()
|
||||
)
|
||||
@@ -134,7 +134,7 @@ class WorkspaceRepository:
|
||||
workspaces = (
|
||||
self.db.query(Workspace)
|
||||
.filter(Workspace.tenant_id == tenant_id)
|
||||
.filter(Workspace.is_active == True)
|
||||
.filter(Workspace.is_active.is_(True))
|
||||
.all()
|
||||
)
|
||||
db_logger.debug(f"租户工作空间查询成功: tenant_id={tenant_id}, 数量={len(workspaces)}")
|
||||
@@ -169,7 +169,7 @@ class WorkspaceRepository:
|
||||
member = self.db.query(WorkspaceMember).filter(
|
||||
WorkspaceMember.user_id == user_id,
|
||||
WorkspaceMember.workspace_id == workspace_id,
|
||||
WorkspaceMember.is_active == True,
|
||||
WorkspaceMember.is_active.is_(True),
|
||||
).first()
|
||||
if member:
|
||||
db_logger.debug(f"工作空间成员查询成功: user_id={user_id}, workspace_id={workspace_id}, role={member.role}")
|
||||
@@ -189,8 +189,8 @@ class WorkspaceRepository:
|
||||
.join(User, WorkspaceMember.user_id == User.id)
|
||||
.options(joinedload(WorkspaceMember.user), joinedload(WorkspaceMember.workspace))
|
||||
.filter(WorkspaceMember.workspace_id == workspace_id)
|
||||
.filter(WorkspaceMember.is_active == True)
|
||||
.filter(User.is_active == True)
|
||||
.filter(WorkspaceMember.is_active.is_(True))
|
||||
.filter(User.is_active.is_(True))
|
||||
.all()
|
||||
)
|
||||
db_logger.debug(f"成员列表查询成功: workspace_id={workspace_id}, 数量={len(members)}")
|
||||
@@ -208,8 +208,8 @@ class WorkspaceRepository:
|
||||
.join(User, WorkspaceMember.user_id == User.id)
|
||||
.options(joinedload(WorkspaceMember.user), joinedload(WorkspaceMember.workspace))
|
||||
.filter(WorkspaceMember.id == member_id)
|
||||
.filter(WorkspaceMember.is_active == True)
|
||||
.filter(User.is_active == True)
|
||||
.filter(WorkspaceMember.is_active.is_(True))
|
||||
.filter(User.is_active.is_(True))
|
||||
.first()
|
||||
)
|
||||
if member:
|
||||
@@ -226,7 +226,7 @@ class WorkspaceRepository:
|
||||
member = self.db.query(WorkspaceMember).filter(
|
||||
WorkspaceMember.workspace_id == workspace_id,
|
||||
WorkspaceMember.user_id == user_id,
|
||||
WorkspaceMember.is_active == True,
|
||||
WorkspaceMember.is_active.is_(True),
|
||||
).first()
|
||||
if not member:
|
||||
return None
|
||||
@@ -243,7 +243,7 @@ class WorkspaceRepository:
|
||||
member = self.db.query(WorkspaceMember).filter(
|
||||
WorkspaceMember.workspace_id == workspace_id,
|
||||
WorkspaceMember.user_id == user_id,
|
||||
WorkspaceMember.is_active == True,
|
||||
WorkspaceMember.is_active.is_(True),
|
||||
).first()
|
||||
if not member:
|
||||
return None
|
||||
@@ -259,7 +259,7 @@ class WorkspaceRepository:
|
||||
try:
|
||||
member = self.db.query(WorkspaceMember).filter(
|
||||
WorkspaceMember.id == member_id,
|
||||
WorkspaceMember.is_active == True,
|
||||
WorkspaceMember.is_active.is_(True),
|
||||
).first()
|
||||
if not member:
|
||||
return None
|
||||
@@ -275,7 +275,7 @@ class WorkspaceRepository:
|
||||
try:
|
||||
member = self.db.query(WorkspaceMember).filter(
|
||||
WorkspaceMember.id == id,
|
||||
WorkspaceMember.is_active == True,
|
||||
WorkspaceMember.is_active.is_(True),
|
||||
).first()
|
||||
if not member:
|
||||
return None
|
||||
|
||||
Reference in New Issue
Block a user