实现和前端交互的接口
This commit is contained in:
parent
df4d65a3a5
commit
4e72ed491a
@ -104,14 +104,17 @@ async def delete_event(
|
|||||||
return BaseResponse(code=404,msg="事件不存在")
|
return BaseResponse(code=404,msg="事件不存在")
|
||||||
return BaseResponse(code=200, msg="success", data=EventDetail.model_validate(event_obj))
|
return BaseResponse(code=200, msg="success", data=EventDetail.model_validate(event_obj))
|
||||||
|
|
||||||
|
# 获取告警消息列表
|
||||||
@router.get("/events/messages", response_model=BaseResponse[List[OcrAlertMessage]])
|
@router.get("/events/messages", response_model=BaseResponse[List[OcrAlertMessage]])
|
||||||
async def get_messages(
|
async def get_messages(
|
||||||
db: AsyncSession = Depends(get_db)
|
db: AsyncSession = Depends(get_db),
|
||||||
|
skip: int = Query(0, ge=0),
|
||||||
|
limit: int = Query(100, ge=1, le=1000)
|
||||||
):
|
):
|
||||||
"""_summary_
|
"""_summary_
|
||||||
获取告警消息列表
|
获取告警消息列表
|
||||||
"""
|
"""
|
||||||
message = await event.get_messages(db)
|
message = await event.get_messages(db, skip=skip, limit=limit)
|
||||||
return BaseResponse(code=200, msg="success", data=message)
|
return BaseResponse(code=200, msg="success", data=message)
|
||||||
|
|
||||||
# 批量处理告警数据--传递messageId List
|
# 批量处理告警数据--传递messageId List
|
||||||
@ -162,6 +165,19 @@ async def handle_ocr_alert(
|
|||||||
return BaseResponse(code=500, msg="fail to update data")
|
return BaseResponse(code=500, msg="fail to update data")
|
||||||
|
|
||||||
|
|
||||||
|
# 查看告警详情
|
||||||
|
@router.get("/events/alert/{messageId}", response_model=BaseResponse[OcrAlertMessage])
|
||||||
|
async def get_alert_detail(
|
||||||
|
messageId:int,
|
||||||
|
db: AsyncSession = Depends(get_db),
|
||||||
|
):
|
||||||
|
|
||||||
|
alert_message = await event.get_alert_detail(db, messageId=messageId)
|
||||||
|
|
||||||
|
return BaseResponse(code=200, msg="success", data=alert_message)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -2,10 +2,10 @@ from pydantic_settings import BaseSettings
|
|||||||
|
|
||||||
class Settings(BaseSettings):
|
class Settings(BaseSettings):
|
||||||
# 数据库配置
|
# 数据库配置
|
||||||
DB_HOST: str = "10.0.0.17"
|
DB_HOST: str = "14.103.162.172"
|
||||||
DB_PORT: int = 3306
|
DB_PORT: int = 3306
|
||||||
DB_USER: str = "root"
|
DB_USER: str = "root"
|
||||||
DB_PASSWORD: str = "root"
|
DB_PASSWORD: str = "dnxxkj"
|
||||||
|
|
||||||
DB_NAME: str = "kangda"
|
DB_NAME: str = "kangda"
|
||||||
# DB_NAME: str = "kangda_test" # 测试数据库
|
# DB_NAME: str = "kangda_test" # 测试数据库
|
||||||
|
|||||||
@ -190,6 +190,8 @@ class CRUDEvent(CRUDBase[Event, EventUpdate, EventUpdate]):
|
|||||||
async def get_messages(
|
async def get_messages(
|
||||||
self,
|
self,
|
||||||
db: AsyncSession,
|
db: AsyncSession,
|
||||||
|
skip:int,
|
||||||
|
limit:int
|
||||||
) -> Optional[List[OcrAlertMessage]]:
|
) -> Optional[List[OcrAlertMessage]]:
|
||||||
query_stmt = (
|
query_stmt = (
|
||||||
select(Message.messageId,Message.eventId ,Message.messageType, Message.eventType, Message.handle, Message.remark, Message.createTime,
|
select(Message.messageId,Message.eventId ,Message.messageType, Message.eventType, Message.handle, Message.remark, Message.createTime,
|
||||||
@ -200,6 +202,8 @@ class CRUDEvent(CRUDBase[Event, EventUpdate, EventUpdate]):
|
|||||||
.outerjoin(Event, Message.eventId == Event.eventId)
|
.outerjoin(Event, Message.eventId == Event.eventId)
|
||||||
.outerjoin(Image, Message.eventId == Image.eventId)
|
.outerjoin(Image, Message.eventId == Image.eventId)
|
||||||
.outerjoin(Temperature, Message.eventId == Temperature.eventId)
|
.outerjoin(Temperature, Message.eventId == Temperature.eventId)
|
||||||
|
.offset(skip)
|
||||||
|
.limit(limit)
|
||||||
)
|
)
|
||||||
|
|
||||||
messages = await db.execute(query_stmt)
|
messages = await db.execute(query_stmt)
|
||||||
@ -293,10 +297,34 @@ class CRUDEvent(CRUDBase[Event, EventUpdate, EventUpdate]):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"处理单个消息失败: {str(e)}")
|
print(f"处理单个消息失败: {e}")
|
||||||
await db.rollback()
|
await db.rollback()
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
async def get_alert_detail(
|
||||||
|
self,
|
||||||
|
db: AsyncSession,
|
||||||
|
messageId: int
|
||||||
|
) ->Optional[OcrAlertMessage]:
|
||||||
|
try:
|
||||||
|
select_stmt = (
|
||||||
|
select(Message.messageId,Message.eventId ,Message.messageType, Message.eventType, Message.handle, Message.remark, Message.createTime,
|
||||||
|
Event.number,Event.name,
|
||||||
|
Image.imageUrl, Image.localPath,
|
||||||
|
Temperature.temperature)
|
||||||
|
.select_from(Message)
|
||||||
|
.outerjoin(Event, Message.eventId == Event.eventId)
|
||||||
|
.outerjoin(Image, Message.eventId == Image.eventId)
|
||||||
|
.outerjoin(Temperature, Message.eventId == Temperature.eventId)
|
||||||
|
.where(Message.messageId == messageId)
|
||||||
|
)
|
||||||
|
|
||||||
|
result = await db.execute(select_stmt)
|
||||||
|
return result.mappings().first()
|
||||||
|
except Exception as e:
|
||||||
|
print(f"获取告警详情失败: {e}")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user