From 0c24e60d049203bf2fca0c57ab931257796c5474 Mon Sep 17 00:00:00 2001 From: jingrow Date: Mon, 16 Mar 2026 21:18:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dpagetype=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E9=A1=B5=E6=8E=92=E5=BA=8F=E6=97=A0=E6=95=88=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/jingrow/jingrow/__init__.py | 4 ++-- apps/jingrow/jingrow/api/page.py | 3 ++- apps/jingrow/jingrow/core/adapters/api_adapter.py | 5 ++++- apps/jingrow/jingrow/model/page.py | 5 +++-- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/apps/jingrow/jingrow/__init__.py b/apps/jingrow/jingrow/__init__.py index 31abec7..f368330 100644 --- a/apps/jingrow/jingrow/__init__.py +++ b/apps/jingrow/jingrow/__init__.py @@ -106,10 +106,10 @@ def delete_pg(pagetype: str, name: str) -> bool: return bool(isinstance(res, dict) and res.get('success')) -def get_list(pagetype: str, filters: List[List[Any]] = None, fields: List[str] = None, limit: int = None): +def get_list(pagetype: str, filters: List[List[Any]] = None, fields: List[str] = None, limit: int = None, order_by: str = None): """获取记录列表,返回对象列表;失败返回空列表。""" pg = get_page_instance(pagetype) - res = pg.list(filters=filters, fields=fields, limit=limit) + res = pg.list(filters=filters, fields=fields, limit=limit, order_by=order_by) if not isinstance(res, dict) or not res.get('success'): return [] items = res.get('data') or [] diff --git a/apps/jingrow/jingrow/api/page.py b/apps/jingrow/jingrow/api/page.py index b370e61..c7b285c 100644 --- a/apps/jingrow/jingrow/api/page.py +++ b/apps/jingrow/jingrow/api/page.py @@ -45,7 +45,8 @@ async def get_records( pagetype=pagetype, filters=filters_list, fields=fields_list, - limit=limit + limit=limit, + order_by=order_by ) except Exception: raise diff --git a/apps/jingrow/jingrow/core/adapters/api_adapter.py b/apps/jingrow/jingrow/core/adapters/api_adapter.py index ccaae89..8b54d34 100644 --- a/apps/jingrow/jingrow/core/adapters/api_adapter.py +++ b/apps/jingrow/jingrow/core/adapters/api_adapter.py @@ -262,7 +262,8 @@ class ApiAdapter: def get_pg_list(self, pagetype: str, filters: Optional[List[List[Any]]] = None, - fields: Optional[List[str]] = None, limit: Optional[int] = None) -> Dict[str, Any]: + fields: Optional[List[str]] = None, limit: Optional[int] = None, + order_by: Optional[str] = None) -> Dict[str, Any]: try: base_url = f"{self.api_url}/api/data/{pagetype}" params: Dict[str, str] = {} @@ -272,6 +273,8 @@ class ApiAdapter: params['fields'] = json.dumps(fields, ensure_ascii=False) if isinstance(limit, int) and limit > 0: params['limit'] = str(limit) + if order_by: + params['order_by'] = order_by # PageType 列表也应该使用 API Key 获取 if pagetype == 'PageType': diff --git a/apps/jingrow/jingrow/model/page.py b/apps/jingrow/jingrow/model/page.py index 244eb9b..f89919c 100644 --- a/apps/jingrow/jingrow/model/page.py +++ b/apps/jingrow/jingrow/model/page.py @@ -101,8 +101,9 @@ class Page: def list(self, filters: Optional[List[List[Any]]] = None, fields: Optional[List[str]] = None, - limit: Optional[int] = None) -> Dict[str, Any]: - return self.adapter.get_pg_list(self.pagetype, filters=filters, fields=fields, limit=limit) + limit: Optional[int] = None, + order_by: Optional[str] = None) -> Dict[str, Any]: + return self.adapter.get_pg_list(self.pagetype, filters=filters, fields=fields, limit=limit, order_by=order_by) def create(self, data: Dict[str, Any]) -> Dict[str, Any]: result = self.adapter.create_pg(self.pagetype, data)