@@ -24,33 +24,38 @@ async def get(self, db: AsyncSession, pk: int) -> Config | None:
2424
2525 async def get_by_type (self , db : AsyncSession , type : str ) -> Sequence [Config ]:
2626 """
27- 通过 type 获取系统配置参数
27+ 通过 type 获取内置系统配置
2828
2929 :param db:
3030 :param type:
3131 :return:
3232 """
3333 return await self .select_models (db , type = type )
3434
35- async def get_by_name (self , db : AsyncSession , name : str ) -> Config | None :
35+ async def get_by_key_and_type (self , db : AsyncSession , key : str , type : str ) -> Config | None :
3636 """
37- 通过 name 获取系统配置参数
37+ 通过 name 和 type 获取内置系统配置
3838
3939 :param db:
40- :param name:
40+ :param key:
41+ :param type:
4142 :return:
4243 """
43- return await self .select_model_by_column (db , name = name , type__not_in = admin_settings . CONFIG_BUILT_IN_TYPES )
44+ return await self .select_model_by_column (db , key = key , type = type )
4445
45- async def get_by_key (self , db : AsyncSession , key : str ) -> Config | None :
46+ async def get_by_key (self , db : AsyncSession , key : str , built_in : bool = False ) -> Config | None :
4647 """
4748 通过 key 获取系统配置参数
4849
4950 :param db:
5051 :param key:
52+ :param built_in:
5153 :return:
5254 """
53- return await self .select_model_by_column (db , key = key , type__not_in = admin_settings .CONFIG_BUILT_IN_TYPES )
55+ filters = {'key' : key }
56+ if not built_in :
57+ filters .update ({'type__not_in' : admin_settings .CONFIG_BUILT_IN_TYPES })
58+ return await self .select_model_by_column (db , ** filters )
5459
5560 async def get_list (self , name : str = None , type : str = None ) -> Select :
5661 """
@@ -60,7 +65,7 @@ async def get_list(self, name: str = None, type: str = None) -> Select:
6065 :param type:
6166 :return:
6267 """
63- filters = {'name__not_in ' : admin_settings .CONFIG_BUILT_IN_TYPES }
68+ filters = {'type__not_in ' : admin_settings .CONFIG_BUILT_IN_TYPES }
6469 if name is not None :
6570 filters .update (name__like = f'%{ name } %' )
6671 if type is not None :
@@ -96,7 +101,9 @@ async def delete(self, db: AsyncSession, pk: list[int]) -> int:
96101 :param pk:
97102 :return:
98103 """
99- return await self .delete_model_by_column (db , allow_multiple = True , id__in = pk )
104+ return await self .delete_model_by_column (
105+ db , allow_multiple = True , id__in = pk , type__not_in = admin_settings .CONFIG_BUILT_IN_TYPES
106+ )
100107
101108
102109config_dao : CRUDConfig = CRUDConfig (Config )
0 commit comments