22# -*- coding: utf-8 -*-
33from typing import Sequence
44
5- from sqlalchemy import Select
5+ from sqlalchemy import Select , desc , select
66from sqlalchemy .ext .asyncio import AsyncSession
77from sqlalchemy_crud_plus import CRUDPlus
88
1313class CRUDDataRule (CRUDPlus [DataRule ]):
1414 async def get (self , db : AsyncSession , pk : int ) -> DataRule | None :
1515 """
16- 获取 DataRule
16+ 获取数据权限规则
1717
1818 :param db:
1919 :param pk:
2020 :return:
2121 """
2222 return await self .select_model (db , pk )
2323
24- async def get_list (self ) -> Select :
24+ async def get_list (self , name : str = None ) -> Select :
2525 """
26- 获取 DataRule 列表
26+ 获取数据权限规则列表
2727
2828 :return:
2929 """
30- return await self .select_order ('created_time' , 'desc' )
30+ stmt = select (self .model ).order_by (desc (self .model .created_time ))
31+ where_list = []
32+ if name is not None :
33+ where_list .append (self .model .name .like (f'%{ name } %' ))
34+ if where_list :
35+ stmt = stmt .where (* where_list )
36+ return stmt
37+
38+ async def get_by_name (self , db : AsyncSession , name : str ):
39+ """
40+ 通过 name 获取数据权限规则
41+
42+ :param db:
43+ :param name:
44+ :return:
45+ """
46+ return await self .select_model_by_column (db , name = name )
3147
3248 async def get_all (self , db : AsyncSession ) -> Sequence [DataRule ]:
3349 """
34- 获取所有 DataRule
50+ 获取所有数据权限规则
3551
3652 :param db:
3753 :return:
@@ -40,7 +56,7 @@ async def get_all(self, db: AsyncSession) -> Sequence[DataRule]:
4056
4157 async def create (self , db : AsyncSession , obj_in : CreateDataRuleParam ) -> None :
4258 """
43- 创建 DataRule
59+ 创建数据权限规则
4460
4561 :param db:
4662 :param obj_in:
@@ -50,7 +66,7 @@ async def create(self, db: AsyncSession, obj_in: CreateDataRuleParam) -> None:
5066
5167 async def update (self , db : AsyncSession , pk : int , obj_in : UpdateDataRuleParam ) -> int :
5268 """
53- 更新 DataRule
69+ 更新数据权限规则
5470
5571 :param db:
5672 :param pk:
@@ -61,7 +77,7 @@ async def update(self, db: AsyncSession, pk: int, obj_in: UpdateDataRuleParam) -
6177
6278 async def delete (self , db : AsyncSession , pk : list [int ]) -> int :
6379 """
64- 删除 DataRule
80+ 删除数据权限规则
6581
6682 :param db:
6783 :param pk:
0 commit comments