feat(kinit-api):core.crud.DalBase.get_data方法增加v_order_field参数

This commit is contained in:
ktianc 2023-06-19 14:46:41 +08:00
parent 63ee93a94b
commit ca020a455c

View File

@ -49,6 +49,7 @@ class DalBase:
v_join_query: dict = None, v_join_query: dict = None,
v_or: List[tuple] = None, v_or: List[tuple] = None,
v_order: str = None, v_order: str = None,
v_order_field: str = None,
v_return_none: bool = False, v_return_none: bool = False,
v_schema: Any = None, v_schema: Any = None,
**kwargs **kwargs
@ -61,6 +62,7 @@ class DalBase:
:param v_join_query: 外键字段查询内连接 :param v_join_query: 外键字段查询内连接
:param v_or: 或逻辑查询 :param v_or: 或逻辑查询
:param v_order: 排序默认正序 desc 是倒叙 :param v_order: 排序默认正序 desc 是倒叙
:param v_order_field: 排序字段
:param v_return_none: 是否返回空 None否认 抛出异常默认抛出异常 :param v_return_none: 是否返回空 None否认 抛出异常默认抛出异常
:param v_schema: 指定使用的序列化对象 :param v_schema: 指定使用的序列化对象
:param kwargs: 查询参数 :param kwargs: 查询参数
@ -69,7 +71,11 @@ class DalBase:
if data_id: if data_id:
sql = sql.where(self.model.id == data_id) sql = sql.where(self.model.id == data_id)
sql = self.add_filter_condition(sql, v_options, v_join_query, v_or, **kwargs) 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()) sql = sql.order_by(self.model.create_datetime.desc())
queryset = await self.db.execute(sql) queryset = await self.db.execute(sql)
data = queryset.scalars().unique().first() data = queryset.scalars().unique().first()