From aa8768b18af5e9440be67814bb3071dd810822f4 Mon Sep 17 00:00:00 2001 From: sowevo Date: Fri, 22 Aug 2025 03:00:50 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=85=BC=E5=AE=B9=E4=B8=A4=E7=A7=8D?= =?UTF-8?q?=E5=BA=93=E5=AF=B9=E8=B4=9F=E6=95=B0=E7=9A=84=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/db/models/transferhistory.py | 80 +++++++++++++++++++------------- 1 file changed, 48 insertions(+), 32 deletions(-) diff --git a/app/db/models/transferhistory.py b/app/db/models/transferhistory.py index a72695fb..8de50def 100644 --- a/app/db/models/transferhistory.py +++ b/app/db/models/transferhistory.py @@ -65,76 +65,92 @@ class TransferHistory(Base): def list_by_title(cls, db: Session, title: str, page: Optional[int] = 1, count: Optional[int] = 30, status: bool = None): if status is not None: - return db.query(cls).filter( + query = db.query(cls).filter( cls.status == status ).order_by( cls.date.desc() - ).offset((page - 1) * count).limit(count).all() + ) else: - return db.query(cls).filter(or_( + query = db.query(cls).filter(or_( cls.title.like(f'%{title}%'), cls.src.like(f'%{title}%'), cls.dest.like(f'%{title}%'), )).order_by( cls.date.desc() - ).offset((page - 1) * count).limit(count).all() + ) + + # 当count为-1时,不限制页数查询所有 + if count != -1: + query = query.offset((page - 1) * count).limit(count) + + return query.all() @classmethod @async_db_query async def async_list_by_title(cls, db: AsyncSession, title: str, page: Optional[int] = 1, count: Optional[int] = 30, status: bool = None): if status is not None: - result = await db.execute( - select(cls).filter( - cls.status == status - ).order_by( - cls.date.desc() - ).offset((page - 1) * count).limit(count) + query = select(cls).filter( + cls.status == status + ).order_by( + cls.date.desc() ) else: - result = await db.execute( - select(cls).filter(or_( - cls.title.like(f'%{title}%'), - cls.src.like(f'%{title}%'), - cls.dest.like(f'%{title}%'), - )).order_by( - cls.date.desc() - ).offset((page - 1) * count).limit(count) + query = select(cls).filter(or_( + cls.title.like(f'%{title}%'), + cls.src.like(f'%{title}%'), + cls.dest.like(f'%{title}%'), + )).order_by( + cls.date.desc() ) + + # 当count为-1时,不限制页数查询所有 + if count != -1: + query = query.offset((page - 1) * count).limit(count) + + result = await db.execute(query) return result.scalars().all() @classmethod @db_query def list_by_page(cls, db: Session, page: Optional[int] = 1, count: Optional[int] = 30, status: bool = None): if status is not None: - return db.query(cls).filter( + query = db.query(cls).filter( cls.status == status ).order_by( cls.date.desc() - ).offset((page - 1) * count).limit(count).all() + ) else: - return db.query(cls).order_by( + query = db.query(cls).order_by( cls.date.desc() - ).offset((page - 1) * count).limit(count).all() + ) + + # 当count为-1时,不限制页数查询所有 + if count != -1: + query = query.offset((page - 1) * count).limit(count) + + return query.all() @classmethod @async_db_query async def async_list_by_page(cls, db: AsyncSession, page: Optional[int] = 1, count: Optional[int] = 30, status: bool = None): if status is not None: - result = await db.execute( - select(cls).filter( - cls.status == status - ).order_by( - cls.date.desc() - ).offset((page - 1) * count).limit(count) + query = select(cls).filter( + cls.status == status + ).order_by( + cls.date.desc() ) else: - result = await db.execute( - select(cls).order_by( - cls.date.desc() - ).offset((page - 1) * count).limit(count) + query = select(cls).order_by( + cls.date.desc() ) + + # 当count为-1时,不限制页数查询所有 + if count != -1: + query = query.offset((page - 1) * count).limit(count) + + result = await db.execute(query) return result.scalars().all() @classmethod From 5261ed7c4cf5271f5469ce9112c010701d5a5d55 Mon Sep 17 00:00:00 2001 From: sowevo Date: Fri, 22 Aug 2025 03:32:26 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=85=BC=E5=AE=B9=E4=B8=A4=E7=A7=8D?= =?UTF-8?q?=E5=BA=93=E5=AF=B9=E8=B4=9F=E6=95=B0=E7=9A=84=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/db/models/transferhistory.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/db/models/transferhistory.py b/app/db/models/transferhistory.py index 8de50def..7399da6c 100644 --- a/app/db/models/transferhistory.py +++ b/app/db/models/transferhistory.py @@ -79,8 +79,8 @@ class TransferHistory(Base): cls.date.desc() ) - # 当count为-1时,不限制页数查询所有 - if count != -1: + # 当count为负数时,不限制页数查询所有 + if count >= 0: query = query.offset((page - 1) * count).limit(count) return query.all() @@ -104,8 +104,8 @@ class TransferHistory(Base): cls.date.desc() ) - # 当count为-1时,不限制页数查询所有 - if count != -1: + # 当count为负数时,不限制页数查询所有 + if count >= 0: query = query.offset((page - 1) * count).limit(count) result = await db.execute(query) @@ -125,8 +125,8 @@ class TransferHistory(Base): cls.date.desc() ) - # 当count为-1时,不限制页数查询所有 - if count != -1: + # 当count为负数时,不限制页数查询所有 + if count >= 0: query = query.offset((page - 1) * count).limit(count) return query.all() @@ -146,8 +146,8 @@ class TransferHistory(Base): cls.date.desc() ) - # 当count为-1时,不限制页数查询所有 - if count != -1: + # 当count为负数时,不限制页数查询所有 + if count >= 0: query = query.offset((page - 1) * count).limit(count) result = await db.execute(query)