|
@@ -224,8 +224,10 @@ async def check(
|
|
|
@router.get('/list')
|
|
|
async def get_event_list(
|
|
|
event_id: str,
|
|
|
- page: int = Query(1, gt=0, description='页码'),
|
|
|
- page_size: int = Query(10, gt=0, description='pageSize'),
|
|
|
+ page: int = Query(0, gt=0, description='页码'),
|
|
|
+ page_size: int = Query(0, gt=0, description='pageSize'),
|
|
|
+ sort_by: str = Query('sign_time', description="排序字段"),
|
|
|
+ sort_order: str = Query('desc', description="排序顺序"),
|
|
|
db: Session = Depends(get_db)
|
|
|
):
|
|
|
try:
|
|
@@ -235,11 +237,20 @@ async def get_event_list(
|
|
|
q = db.query(func.count(EventCheckin.id))
|
|
|
q = q.filter(where)
|
|
|
total = q.scalar()
|
|
|
-
|
|
|
+ if page==0 or page_size==0:
|
|
|
+ page = 1
|
|
|
+ page_size=total
|
|
|
# 执行分页查询
|
|
|
q = db.query(EventCheckin)
|
|
|
q = q.filter(where)
|
|
|
- rows = q.order_by(EventCheckin.id.desc()).offset((page - 1) * page_size).limit(page_size).all()
|
|
|
+
|
|
|
+ # # 应用排序条件
|
|
|
+ q = q.order_by(EventCheckin.dept_name)
|
|
|
+ if hasattr(EventCheckin, sort_by):
|
|
|
+ sort_attr = getattr(EventCheckin, sort_by)
|
|
|
+ q = q.order_by(sort_attr.asc() if sort_order == 'asc' else sort_attr.desc())
|
|
|
+
|
|
|
+ rows = q.offset((page - 1) * page_size).limit(page_size).all()
|
|
|
data = [
|
|
|
{
|
|
|
"event_id": row.event_id,
|