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)