fix: 重命名通知渠道模型避免与 alert 模块冲突
All checks were successful
continuous-integration/drone/push Build is passing

- NotificationChannel -> TaskNotifyChannel
- platform_notification_channels -> platform_task_notify_channels
This commit is contained in:
2026-01-28 17:06:28 +08:00
parent 2fbba63884
commit b8e19dcde6
4 changed files with 23 additions and 23 deletions

View File

@@ -9,7 +9,7 @@ from .logs import PlatformLog
from .alert import AlertRule, AlertRecord, NotificationChannel
from .pricing import ModelPricing, TenantBilling
from .scheduled_task import ScheduledTask, TaskLog, ScriptVar, Secret
from .notification_channel import NotificationChannel
from .notification_channel import TaskNotifyChannel
__all__ = [
"Tenant",
@@ -31,5 +31,5 @@ __all__ = [
"TaskLog",
"ScriptVar",
"Secret",
"NotificationChannel"
"TaskNotifyChannel"
]

View File

@@ -1,12 +1,12 @@
"""通知渠道模型"""
"""任务通知渠道模型"""
from datetime import datetime
from sqlalchemy import Column, Integer, String, Enum, Boolean, DateTime
from ..database import Base
class NotificationChannel(Base):
"""通知渠道表"""
__tablename__ = "platform_notification_channels"
class TaskNotifyChannel(Base):
"""任务通知渠道表(用于定时任务推送)"""
__tablename__ = "platform_task_notify_channels"
id = Column(Integer, primary_key=True, autoincrement=True)
tenant_id = Column(String(50), nullable=False)

View File

@@ -6,7 +6,7 @@ from sqlalchemy.orm import Session
from sqlalchemy import desc
from ..database import get_db
from ..models.notification_channel import NotificationChannel
from ..models.notification_channel import TaskNotifyChannel
router = APIRouter(prefix="/api/notification-channels", tags=["notification-channels"])
@@ -42,17 +42,17 @@ async def list_channels(
db: Session = Depends(get_db)
):
"""获取通知渠道列表"""
query = db.query(NotificationChannel)
query = db.query(TaskNotifyChannel)
if tenant_id:
query = query.filter(NotificationChannel.tenant_id == tenant_id)
query = query.filter(TaskNotifyChannel.tenant_id == tenant_id)
if channel_type:
query = query.filter(NotificationChannel.channel_type == channel_type)
query = query.filter(TaskNotifyChannel.channel_type == channel_type)
if is_enabled is not None:
query = query.filter(NotificationChannel.is_enabled == is_enabled)
query = query.filter(TaskNotifyChannel.is_enabled == is_enabled)
total = query.count()
items = query.order_by(desc(NotificationChannel.created_at)).offset((page - 1) * size).limit(size).all()
items = query.order_by(desc(TaskNotifyChannel.created_at)).offset((page - 1) * size).limit(size).all()
return {
"total": total,
@@ -63,7 +63,7 @@ async def list_channels(
@router.get("/{channel_id}")
async def get_channel(channel_id: int, db: Session = Depends(get_db)):
"""获取渠道详情"""
channel = db.query(NotificationChannel).filter(NotificationChannel.id == channel_id).first()
channel = db.query(TaskNotifyChannel).filter(TaskNotifyChannel.id == channel_id).first()
if not channel:
raise HTTPException(status_code=404, detail="渠道不存在")
return format_channel(channel)
@@ -72,7 +72,7 @@ async def get_channel(channel_id: int, db: Session = Depends(get_db)):
@router.post("")
async def create_channel(data: ChannelCreate, db: Session = Depends(get_db)):
"""创建通知渠道"""
channel = NotificationChannel(
channel = TaskNotifyChannel(
tenant_id=data.tenant_id,
channel_name=data.channel_name,
channel_type=data.channel_type,
@@ -91,7 +91,7 @@ async def create_channel(data: ChannelCreate, db: Session = Depends(get_db)):
@router.put("/{channel_id}")
async def update_channel(channel_id: int, data: ChannelUpdate, db: Session = Depends(get_db)):
"""更新通知渠道"""
channel = db.query(NotificationChannel).filter(NotificationChannel.id == channel_id).first()
channel = db.query(TaskNotifyChannel).filter(TaskNotifyChannel.id == channel_id).first()
if not channel:
raise HTTPException(status_code=404, detail="渠道不存在")
@@ -113,7 +113,7 @@ async def update_channel(channel_id: int, data: ChannelUpdate, db: Session = Dep
@router.delete("/{channel_id}")
async def delete_channel(channel_id: int, db: Session = Depends(get_db)):
"""删除通知渠道"""
channel = db.query(NotificationChannel).filter(NotificationChannel.id == channel_id).first()
channel = db.query(TaskNotifyChannel).filter(TaskNotifyChannel.id == channel_id).first()
if not channel:
raise HTTPException(status_code=404, detail="渠道不存在")
@@ -127,7 +127,7 @@ async def test_channel(channel_id: int, db: Session = Depends(get_db)):
"""测试通知渠道"""
import httpx
channel = db.query(NotificationChannel).filter(NotificationChannel.id == channel_id).first()
channel = db.query(TaskNotifyChannel).filter(TaskNotifyChannel.id == channel_id).first()
if not channel:
raise HTTPException(status_code=404, detail="渠道不存在")
@@ -166,7 +166,7 @@ async def test_channel(channel_id: int, db: Session = Depends(get_db)):
# ==================== Helpers ====================
def format_channel(channel: NotificationChannel) -> dict:
def format_channel(channel: TaskNotifyChannel) -> dict:
"""格式化渠道数据"""
return {
"id": channel.id,

View File

@@ -10,7 +10,7 @@ from sqlalchemy.orm import Session
from ..database import SessionLocal
from ..models.scheduled_task import ScheduledTask, TaskLog
from ..models.notification_channel import NotificationChannel
from ..models.notification_channel import TaskNotifyChannel
from .script_executor import ScriptExecutor
@@ -260,9 +260,9 @@ class SchedulerService:
# 发送到通知渠道
for channel_id in channel_ids:
try:
channel = db.query(NotificationChannel).filter(
NotificationChannel.id == channel_id,
NotificationChannel.is_enabled == True
channel = db.query(TaskNotifyChannel).filter(
TaskNotifyChannel.id == channel_id,
TaskNotifyChannel.is_enabled == True
).first()
if not channel:
@@ -280,7 +280,7 @@ class SchedulerService:
except Exception as e:
print(f"发送企微应用消息失败: {e}")
async def _send_to_channel(self, channel: NotificationChannel, content: str, title: str):
async def _send_to_channel(self, channel: TaskNotifyChannel, content: str, title: str):
"""发送消息到通知渠道"""
if channel.channel_type == 'dingtalk_bot':
payload = {