Skip to content

Commit a4714c5

Browse files
committed
Update the dict plugin crud
1 parent 5243193 commit a4714c5

File tree

3 files changed

+18
-16
lines changed

3 files changed

+18
-16
lines changed

backend/plugin/dict/crud/crud_dict_data.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ async def get(self, db: AsyncSession, pk: int) -> DictData | None:
1919
:param pk: 字典数据 ID
2020
:return:
2121
"""
22-
return await self.select_model(db, pk, load_strategies={'type': 'noload'})
22+
return await self.select_model(db, pk)
2323

2424
async def get_by_type_code(self, db: AsyncSession, type_code: str) -> Sequence[DictData]:
2525
"""
@@ -34,7 +34,6 @@ async def get_by_type_code(self, db: AsyncSession, type_code: str) -> Sequence[D
3434
sort_columns='sort',
3535
sort_orders='desc',
3636
type_code=type_code,
37-
load_strategies={'type': 'noload'},
3837
)
3938

4039
async def get_all(self, db: AsyncSession) -> Sequence[DictData]:
@@ -44,7 +43,7 @@ async def get_all(self, db: AsyncSession) -> Sequence[DictData]:
4443
:param db: 数据库会话
4544
:return:
4645
"""
47-
return await self.select_models(db, load_strategies={'type': 'noload'})
46+
return await self.select_models(db)
4847

4948
async def get_select(
5049
self,
@@ -77,7 +76,7 @@ async def get_select(
7776
if type_id is not None:
7877
filters['type_id'] = type_id
7978

80-
return await self.select_order('id', 'desc', load_strategies={'type': 'noload'}, **filters)
79+
return await self.select_order('id', 'desc', **filters)
8180

8281
async def get_by_label_and_type_code(self, db: AsyncSession, label: str, type_code: str) -> DictData | None:
8382
"""
@@ -128,15 +127,15 @@ async def delete(self, db: AsyncSession, pks: list[int]) -> int:
128127
"""
129128
return await self.delete_model_by_column(db, allow_multiple=True, id__in=pks)
130129

131-
async def get_with_relation(self, db: AsyncSession, pk: int) -> DictData | None:
130+
async def delete_by_type_id(self, db: AsyncSession, type_ids: list[int]) -> int:
132131
"""
133-
获取字典数据及关联数据
132+
通过类型 ID 删除字典数据
134133
135134
:param db: 数据库会话
136-
:param pk: 字典数据 ID
135+
:param type_ids: 字典类型 ID 列表
137136
:return:
138137
"""
139-
return await self.select_model(db, pk, load_strategies=['type'])
138+
return await self.delete_model_by_column(db, allow_multiple=True, type_id__in=type_ids)
140139

141140

142141
dict_data_dao: CRUDDictData = CRUDDictData(DictData)

backend/plugin/dict/crud/crud_dict_type.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
from collections.abc import Sequence
2+
from typing import Any
23

3-
from sqlalchemy import Select
44
from sqlalchemy.ext.asyncio import AsyncSession
55
from sqlalchemy_crud_plus import CRUDPlus
66

7+
from backend.common.pagination import paging_data
8+
from backend.plugin.dict.crud.crud_dict_data import dict_data_dao
79
from backend.plugin.dict.model import DictType
810
from backend.plugin.dict.schema.dict_type import CreateDictTypeParam, UpdateDictTypeParam
911

@@ -28,12 +30,13 @@ async def get_all(self, db: AsyncSession) -> Sequence[DictType]:
2830
:param db: 数据库会话
2931
:return:
3032
"""
31-
return await self.select_models(db, load_strategies={'datas': 'noload'})
33+
return await self.select_models(db)
3234

33-
async def get_select(self, *, name: str | None, code: str | None) -> Select:
35+
async def get_paginated(self, db: AsyncSession, name: str | None, code: str | None) -> dict[str, Any]:
3436
"""
35-
获取字典类型列表查询表达式
37+
获取用户分页
3638
39+
:param db: 数据库会话
3740
:param name: 字典类型名称
3841
:param code: 字典类型编码
3942
:return:
@@ -45,7 +48,8 @@ async def get_select(self, *, name: str | None, code: str | None) -> Select:
4548
if code is not None:
4649
filters['code__like'] = f'%{code}%'
4750

48-
return await self.select_order('id', 'desc', load_strategies={'datas': 'noload'}, **filters)
51+
dict_type_select = await self.select_order('id', 'desc', **filters)
52+
return await paging_data(db, dict_type_select)
4953

5054
async def get_by_code(self, db: AsyncSession, code: str) -> DictType | None:
5155
"""
@@ -86,6 +90,7 @@ async def delete(self, db: AsyncSession, pks: list[int]) -> int:
8690
:param pks: 字典类型 ID 列表
8791
:return:
8892
"""
93+
await dict_data_dao.delete_by_type_id(db, pks)
8994
return await self.delete_model_by_column(db, allow_multiple=True, id__in=pks)
9095

9196

backend/plugin/dict/service/dict_type_service.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
from sqlalchemy.ext.asyncio import AsyncSession
55

66
from backend.common.exception import errors
7-
from backend.common.pagination import paging_data
87
from backend.plugin.dict.crud.crud_dict_type import dict_type_dao
98
from backend.plugin.dict.model import DictType
109
from backend.plugin.dict.schema.dict_type import CreateDictTypeParam, DeleteDictTypeParam, UpdateDictTypeParam
@@ -49,8 +48,7 @@ async def get_list(*, db: AsyncSession, name: str | None, code: str | None) -> d
4948
:param code: 字典类型编码
5049
:return:
5150
"""
52-
dict_type_select = await dict_type_dao.get_select(name=name, code=code)
53-
return await paging_data(db, dict_type_select)
51+
return await dict_type_dao.get_paginated(db=db, name=name, code=code)
5452

5553
@staticmethod
5654
async def create(*, db: AsyncSession, obj: CreateDictTypeParam) -> None:

0 commit comments

Comments
 (0)