实现和前端交互的接口
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=200, msg="success", data=EventDetail.model_validate(event_obj))
|
||||
|
||||
# 获取告警消息列表
|
||||
@router.get("/events/messages", response_model=BaseResponse[List[OcrAlertMessage]])
|
||||
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_
|
||||
获取告警消息列表
|
||||
"""
|
||||
message = await event.get_messages(db)
|
||||
message = await event.get_messages(db, skip=skip, limit=limit)
|
||||
return BaseResponse(code=200, msg="success", data=message)
|
||||
|
||||
# 批量处理告警数据--传递messageId List
|
||||
@ -160,6 +163,19 @@ async def handle_ocr_alert(
|
||||
if flag:
|
||||
return BaseResponse(code=200, msg="success")
|
||||
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):
|
||||
# 数据库配置
|
||||
DB_HOST: str = "10.0.0.17"
|
||||
DB_HOST: str = "14.103.162.172"
|
||||
DB_PORT: int = 3306
|
||||
DB_USER: str = "root"
|
||||
DB_PASSWORD: str = "root"
|
||||
DB_PASSWORD: str = "dnxxkj"
|
||||
|
||||
DB_NAME: str = "kangda"
|
||||
# DB_NAME: str = "kangda_test" # 测试数据库
|
||||
|
||||
@ -190,6 +190,8 @@ class CRUDEvent(CRUDBase[Event, EventUpdate, EventUpdate]):
|
||||
async def get_messages(
|
||||
self,
|
||||
db: AsyncSession,
|
||||
skip:int,
|
||||
limit:int
|
||||
) -> Optional[List[OcrAlertMessage]]:
|
||||
query_stmt = (
|
||||
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(Image, Message.eventId == Image.eventId)
|
||||
.outerjoin(Temperature, Message.eventId == Temperature.eventId)
|
||||
.offset(skip)
|
||||
.limit(limit)
|
||||
)
|
||||
|
||||
messages = await db.execute(query_stmt)
|
||||
@ -293,9 +297,33 @@ class CRUDEvent(CRUDBase[Event, EventUpdate, EventUpdate]):
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f"处理单个消息失败: {str(e)}")
|
||||
print(f"处理单个消息失败: {e}")
|
||||
await db.rollback()
|
||||
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