feat: 综合平台services多服务支持+SW网络优先缓存修复+适配层/定时任务完善
This commit is contained in:
@@ -6,6 +6,7 @@ from fastapi import HTTPException, status
|
||||
from sqlmodel import Session, select
|
||||
|
||||
from app.core import crypto
|
||||
from app.models.asset import Asset
|
||||
from app.models.provider import Provider, ProviderCategory
|
||||
from app.schemas.provider import ProviderCreate, ProviderRead, ProviderUpdate
|
||||
|
||||
@@ -73,6 +74,15 @@ def delete_provider(session: Session, provider_id: int) -> None:
|
||||
provider = session.get(Provider, provider_id)
|
||||
if not provider:
|
||||
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="平台不存在")
|
||||
# 数据完整性:存在关联资产时禁止删除,避免 provider_id 悬空引用
|
||||
linked = session.exec(
|
||||
select(Asset.id).where(Asset.provider_id == provider_id).limit(1)
|
||||
).first()
|
||||
if linked is not None:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_409_CONFLICT,
|
||||
detail="该平台下仍有关联资产,请先迁移或删除相关资产",
|
||||
)
|
||||
session.delete(provider)
|
||||
session.commit()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user