Merge branch 'develop-mark' into develop

This commit is contained in:
Mark
2025-12-26 10:25:56 +08:00
7 changed files with 161 additions and 136 deletions

View File

@@ -9,8 +9,9 @@
"""
import datetime
import uuid
from typing import Optional, List, Dict, Any, Tuple, Type
from typing import Optional, List, Dict, Any, Tuple, Annotated
from fastapi import Depends
from sqlalchemy import select, func, or_, and_
from sqlalchemy.orm import Session
@@ -20,6 +21,7 @@ from app.core.exceptions import (
BusinessException,
)
from app.core.logging_config import get_business_logger
from app.db import get_db
from app.models import App, AgentConfig, AppRelease, MultiAgentConfig, WorkflowConfig
from app.models.app_model import AppStatus, AppType
from app.repositories.app_repository import get_apps_by_id
@@ -27,6 +29,7 @@ from app.repositories.workflow_repository import WorkflowConfigRepository
from app.schemas import app_schema
from app.schemas.workflow_schema import WorkflowConfigUpdate
from app.services.agent_config_converter import AgentConfigConverter
from app.models import AppShare, Workspace
# 获取业务日志器
logger = get_business_logger()
@@ -1390,7 +1393,7 @@ class AppService:
target_workspace_ids: List[uuid.UUID],
user_id: uuid.UUID,
workspace_id: Optional[uuid.UUID] = None
) -> List["AppShare"]:
) -> AppShare:
"""分享应用到其他工作空间
Args:
@@ -1406,7 +1409,7 @@ class AppService:
ResourceNotFoundException: 当应用不存在时
BusinessException: 当应用不在指定工作空间或目标工作空间无效时
"""
from app.models import AppShare, Workspace
logger.info(
"分享应用",
@@ -1548,7 +1551,7 @@ class AppService:
*,
app_id: uuid.UUID,
workspace_id: Optional[uuid.UUID] = None
) -> List["AppShare"]:
) -> List[AppShare]:
"""列出应用的所有分享记录
Args:
@@ -2094,3 +2097,14 @@ async def draft_run_stream(
workspace_id=workspace_id
):
yield event
# ==================== 依赖注入函数 ====================
def get_app_service(
db: Annotated[Session, Depends(get_db)]
) -> AppService:
"""获取工作流服务(依赖注入)"""
return AppService(db)

View File

@@ -1,16 +1,18 @@
"""会话服务"""
import uuid
from typing import Optional, List, Tuple, Annotated
from typing import Annotated
from typing import Optional, List, Tuple
from fastapi import Depends
from sqlalchemy.orm import Session
from sqlalchemy import select, desc
from sqlalchemy.orm import Session
from app.core.error_codes import BizCode
from app.core.exceptions import BusinessException
from app.core.exceptions import ResourceNotFoundException
from app.core.logging_config import get_business_logger
from app.db import get_db
from app.models import Conversation, Message
from app.core.exceptions import ResourceNotFoundException, BusinessException
from app.core.error_codes import BizCode
from app.core.logging_config import get_business_logger
logger = get_business_logger()

View File

@@ -11,31 +11,26 @@ from app.core.exceptions import BusinessException, PermissionDeniedException
from app.core.logging_config import get_business_logger
from app.models.user_model import User
# 获取业务逻辑专用日志器
business_logger = get_business_logger()
from app.models.workspace_model import (
InviteStatus,
Workspace,
WorkspaceMember,
WorkspaceRole,
from app.schemas.workspace_schema import (
WorkspaceModelsUpdate,
)
from sqlalchemy.orm import Session
from app.models.workspace_model import Workspace, WorkspaceRole, InviteStatus, WorkspaceMember
from app.repositories import workspace_repository
from app.repositories.workspace_invite_repository import WorkspaceInviteRepository
from app.schemas.workspace_schema import (
InviteAcceptRequest,
InviteValidateResponse,
WorkspaceCreate,
WorkspaceUpdate,
WorkspaceInviteCreate,
WorkspaceInviteResponse,
WorkspaceMemberUpdate,
WorkspaceModelsUpdate,
WorkspaceUpdate,
InviteValidateResponse,
InviteAcceptRequest,
WorkspaceMemberUpdate
)
from dotenv import load_dotenv
from sqlalchemy.orm import Session
# 获取业务逻辑专用日志器
business_logger = get_business_logger()
from dotenv import load_dotenv
load_dotenv()
def switch_workspace(
db: Session,
@@ -329,7 +324,7 @@ def _check_workspace_admin_permission(db: Session, workspace_id: uuid.UUID, user
)
# 使用统一权限服务检查管理权限
from app.core.permissions import Action, Resource, Subject, permission_service
from app.core.permissions import permission_service, Subject, Resource, Action
# 获取用户的工作空间成员关系
member = workspace_repository.get_member_in_workspace(