|
|
@@ -151,6 +151,7 @@ def get_warning_list(
|
|
|
page: int = Query(1, ge=1, description="页码"),
|
|
|
pageSize: int = Query(20, ge=1, le=100, description="每页条数", alias="pageSize"),
|
|
|
warningType: Optional[str] = Query(None, description="预警类型", alias="warningType"),
|
|
|
+ regionId: Optional[str] = Query(None, description="区域ID", alias="regionId"),
|
|
|
status: Optional[str] = Query(None, description="状态(pending/handled)"),
|
|
|
isResolved: Optional[bool] = Query(None, description="是否已解决", alias="isResolved"),
|
|
|
db: Session = Depends(get_db),
|
|
|
@@ -165,6 +166,15 @@ def get_warning_list(
|
|
|
if warningType:
|
|
|
query = query.filter(delivery_warning_crud.model.warning_type == warningType)
|
|
|
|
|
|
+ if regionId:
|
|
|
+ query = query.join(
|
|
|
+ BizDeliveryTask,
|
|
|
+ and_(
|
|
|
+ BizDeliveryTask.id == delivery_warning_crud.model.task_id,
|
|
|
+ BizDeliveryTask.is_del == 0
|
|
|
+ )
|
|
|
+ ).filter(BizDeliveryTask.region_id == regionId)
|
|
|
+
|
|
|
# 兼容前端传入的 isResolved 参数
|
|
|
if isResolved is not None:
|
|
|
query = query.filter(delivery_warning_crud.model.is_resolved == (1 if isResolved else 0))
|