修改查询语句
This commit is contained in:
parent
7fb9cf2aa4
commit
0aef0ce193
@ -10,32 +10,32 @@ import datetime
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
@router.get("/events", response_model=List[EventList])
|
||||
async def get_events(
|
||||
db: AsyncSession = Depends(get_db),
|
||||
start_time: Optional[str] = None,
|
||||
end_time: Optional[str] = None,
|
||||
etypeName: Optional[str] = None,
|
||||
area: Optional[str] = None,
|
||||
skip: int = Query(0, ge=0),
|
||||
limit: int = Query(100, ge=1, le=1000)
|
||||
):
|
||||
"""
|
||||
获取事件列表
|
||||
- 支持时间范围查询
|
||||
- 支持事件类型和区域筛选
|
||||
- 支持分页
|
||||
"""
|
||||
query = EventQuery(
|
||||
start_time=start_time,
|
||||
end_time=end_time,
|
||||
etypeName=etypeName,
|
||||
area=area,
|
||||
skip=skip,
|
||||
limit=limit
|
||||
)
|
||||
events = await event.get_multi_with_query(db, query=query)
|
||||
return [EventList.model_validate(event) for event in events]
|
||||
# @router.get("/events", response_model=List[EventList])
|
||||
# async def get_events(
|
||||
# db: AsyncSession = Depends(get_db),
|
||||
# start_time: Optional[str] = None,
|
||||
# end_time: Optional[str] = None,
|
||||
# etypeName: Optional[str] = None,
|
||||
# area: Optional[str] = None,
|
||||
# skip: int = Query(0, ge=0),
|
||||
# limit: int = Query(100, ge=1, le=1000)
|
||||
# ):
|
||||
# """
|
||||
# 获取事件列表
|
||||
# - 支持时间范围查询
|
||||
# - 支持事件类型和区域筛选
|
||||
# - 支持分页
|
||||
# """
|
||||
# query = EventQuery(
|
||||
# start_time=start_time,
|
||||
# end_time=end_time,
|
||||
# etypeName=etypeName,
|
||||
# area=area,
|
||||
# skip=skip,
|
||||
# limit=limit
|
||||
# )
|
||||
# events = await event.get_multi_with_query(db, query=query)
|
||||
# return [EventList.model_validate(event) for event in events]
|
||||
|
||||
# 后台获取事件列表
|
||||
# @router.post("/backstageEventlist", response_model=List[BackStageEvent])
|
||||
@ -60,36 +60,36 @@ async def get_event_detail(
|
||||
|
||||
|
||||
|
||||
@router.get("/events/{event_id}", response_model=EventDetail)
|
||||
async def get_event(
|
||||
event_id: str,
|
||||
db: AsyncSession = Depends(get_db)
|
||||
):
|
||||
"""
|
||||
获取事件详情
|
||||
"""
|
||||
event_obj = await event.get_by_id(db, event_id=event_id)
|
||||
if not event_obj:
|
||||
raise HTTPException(status_code=404, detail="事件不存在")
|
||||
return EventDetail.model_validate(event_obj)
|
||||
# @router.get("/events/{event_id}", response_model=EventDetail)
|
||||
# async def get_event(
|
||||
# event_id: str,
|
||||
# db: AsyncSession = Depends(get_db)
|
||||
# ):
|
||||
# """
|
||||
# 获取事件详情
|
||||
# """
|
||||
# event_obj = await event.get_by_id(db, event_id=event_id)
|
||||
# if not event_obj:
|
||||
# raise HTTPException(status_code=404, detail="事件不存在")
|
||||
# return EventDetail.model_validate(event_obj)
|
||||
|
||||
@router.put("/events/{event_id}", response_model=EventDetail)
|
||||
async def update_event(
|
||||
event_id: str,
|
||||
event_in: EventUpdate,
|
||||
db: AsyncSession = Depends(get_db)
|
||||
):
|
||||
"""
|
||||
更新事件信息
|
||||
"""
|
||||
event_obj = await event.update_event(
|
||||
db,
|
||||
event_id=event_id,
|
||||
obj_in=event_in
|
||||
)
|
||||
if not event_obj:
|
||||
raise HTTPException(status_code=404, detail="事件不存在")
|
||||
return EventDetail.model_validate(event_obj)
|
||||
# @router.put("/events/{event_id}", response_model=EventDetail)
|
||||
# async def update_event(
|
||||
# event_id: str,
|
||||
# event_in: EventUpdate,
|
||||
# db: AsyncSession = Depends(get_db)
|
||||
# ):
|
||||
# """
|
||||
# 更新事件信息
|
||||
# """
|
||||
# event_obj = await event.update_event(
|
||||
# db,
|
||||
# event_id=event_id,
|
||||
# obj_in=event_in
|
||||
# )
|
||||
# if not event_obj:
|
||||
# raise HTTPException(status_code=404, detail="事件不存在")
|
||||
# return EventDetail.model_validate(event_obj)
|
||||
|
||||
@router.delete("/events/{event_id}", response_model=BaseResponse[EventDetail])
|
||||
async def delete_event(
|
||||
|
||||
@ -60,20 +60,30 @@ class CRUDEvent(CRUDBase[Event, EventUpdate, EventUpdate]):
|
||||
conditions.append(Temperature.createTime >= query.start_time)
|
||||
if query.end_time is not None:
|
||||
conditions.append(Temperature.createTime <= query.end_time)
|
||||
|
||||
|
||||
|
||||
stmt = (select(Event.eventId, Event.number, Event.name, Image.imageUrl, Image.localPath, Temperature.temperature, Temperature.confidence, Temperature.createTime, Temperature.status)
|
||||
.select_from(Event)
|
||||
.outerjoin(Image, Event.eventId==Image.eventId)
|
||||
.outerjoin(Temperature, Image.imageId == Temperature.imageId)
|
||||
.select_from(Temperature)
|
||||
.outerjoin(Event, Event.eventId==Temperature.eventId)
|
||||
.outerjoin(Image, Image.imageId == Temperature.imageId)
|
||||
.where(*conditions)
|
||||
.order_by(Temperature.createTime.desc())
|
||||
.offset(query.skip)
|
||||
.limit(query.limit))
|
||||
|
||||
result = await db.execute(stmt)
|
||||
results = await db.execute(stmt)
|
||||
|
||||
result = result.mappings().all()
|
||||
results = results.mappings().all()
|
||||
|
||||
back = list()
|
||||
|
||||
for result in results:
|
||||
# if result["temperature"] is not None:
|
||||
back.append(BackStageEvent(**result))
|
||||
|
||||
return back
|
||||
|
||||
return [BackStageEvent(**row) for row in result]
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user