From ca020a455cc1a767b3cd6324f04729de0dd05616 Mon Sep 17 00:00:00 2001 From: ktianc Date: Mon, 19 Jun 2023 14:46:41 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=88kinit-api=EF=BC=89=EF=BC=9Acore.cr?= =?UTF-8?q?ud.DalBase.get=5Fdata=E6=96=B9=E6=B3=95=E5=A2=9E=E5=8A=A0v=5For?= =?UTF-8?q?der=5Ffield=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kinit-api/core/crud.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/kinit-api/core/crud.py b/kinit-api/core/crud.py index 3a2057e..ee4cbdd 100644 --- a/kinit-api/core/crud.py +++ b/kinit-api/core/crud.py @@ -49,6 +49,7 @@ class DalBase: v_join_query: dict = None, v_or: List[tuple] = None, v_order: str = None, + v_order_field: str = None, v_return_none: bool = False, v_schema: Any = None, **kwargs @@ -61,6 +62,7 @@ class DalBase: :param v_join_query: 外键字段查询,内连接 :param v_or: 或逻辑查询 :param v_order: 排序,默认正序,为 desc 是倒叙 + :param v_order_field: 排序字段 :param v_return_none: 是否返回空 None,否认 抛出异常,默认抛出异常 :param v_schema: 指定使用的序列化对象 :param kwargs: 查询参数 @@ -69,7 +71,11 @@ class DalBase: if data_id: sql = sql.where(self.model.id == data_id) sql = self.add_filter_condition(sql, v_options, v_join_query, v_or, **kwargs) - if v_order and (v_order in self.ORDER_FIELD): + if v_order_field and (v_order in self.ORDER_FIELD): + sql = sql.order_by(getattr(self.model, v_order_field).desc(), self.model.id.desc()) + elif v_order_field: + sql = sql.order_by(getattr(self.model, v_order_field), self.model.id) + elif v_order and (v_order in self.ORDER_FIELD): sql = sql.order_by(self.model.create_datetime.desc()) queryset = await self.db.execute(sql) data = queryset.scalars().unique().first()