|
@@ -3,7 +3,7 @@ from sqlalchemy.exc import IntegrityError
|
|
|
from fastapi.responses import HTMLResponse, FileResponse
|
|
|
from fastapi.responses import JSONResponse
|
|
|
from database import get_db
|
|
|
-from sqlalchemy import text, exists, and_, or_, not_
|
|
|
+from sqlalchemy import text, exists, and_, or_, not_, extract
|
|
|
from sqlalchemy.orm import Session
|
|
|
from models import *
|
|
|
import json
|
|
@@ -134,7 +134,7 @@ async def get_event_list(
|
|
|
event_time: str = Query('', description='事发时间'),
|
|
|
region_code: str = Query('', description='行政区划代码'),
|
|
|
keyword: str = Query('', description='根据事件标题或描述中的关键字进行模糊搜索'),
|
|
|
-
|
|
|
+ year: str = Query('', description='年份'),
|
|
|
sort_by: str = Query('', description='排序字段'),
|
|
|
sort_order: str = Query("asc", description='排序方式'),
|
|
|
page: int = Query(1, gt=0, description='页码'),
|
|
@@ -158,6 +158,8 @@ async def get_event_list(
|
|
|
where = and_(where, EventBase.region_code.like('{}%'.format(region_code)))
|
|
|
if keyword != '':
|
|
|
where = and_(where, or_(EventBase.event_title.like('%{}%'.format(keyword)), EventBase.address.like('%{}%'.format(keyword))))
|
|
|
+ if year != '':
|
|
|
+ where = and_(where, extract('year', EventBase.event_time) == int(year))
|
|
|
print(where)
|
|
|
|
|
|
# 计算总条目数
|
|
@@ -181,6 +183,8 @@ async def get_event_list(
|
|
|
"address": row.address,
|
|
|
"event_time": get_datetime_str(row.event_time),
|
|
|
"create_time": get_datetime_str(row.create_time),
|
|
|
+ "injuries": db_event_management.get_injuries_count(db, row.event_code),
|
|
|
+ "deaths": db_event_management.get_deaths_count(db, row.event_code),
|
|
|
}
|
|
|
for row in rows
|
|
|
]
|
|
@@ -540,7 +544,9 @@ async def notice_bar(
|
|
|
'msg': '查询成功',
|
|
|
'data': {
|
|
|
'event_id': row.event_code,
|
|
|
- 'event_title': row.event_title
|
|
|
+ 'event_title': row.event_title,
|
|
|
+ 'event_time': get_datetime_str(row.event_time),
|
|
|
+ 'event_description': row.event_description
|
|
|
}
|
|
|
}
|
|
|
else:
|