@@ -94,13 +94,12 @@ async def create(*, db: AsyncSession, obj: CreateDictDataParam) -> None:
9494 :param obj: 字典数据创建参数
9595 :return:
9696 """
97-
98- dict_data = await dict_data_dao .get_by_label (db , obj .label )
99- if dict_data :
100- raise errors .ConflictError (msg = '字典数据已存在' )
10197 dict_type = await dict_type_dao .get (db , obj .type_id )
10298 if not dict_type :
10399 raise errors .NotFoundError (msg = '字典类型不存在' )
100+ dict_data = await dict_data_dao .get_by_label_and_type_code (db , obj .label , dict_type .code )
101+ if dict_data :
102+ raise errors .ConflictError (msg = '字典数据已存在' )
104103 await dict_data_dao .create (db , obj , dict_type .code )
105104
106105 @staticmethod
@@ -117,11 +116,13 @@ async def update(*, db: AsyncSession, pk: int, obj: UpdateDictDataParam) -> int:
117116 dict_data = await dict_data_dao .get (db , pk )
118117 if not dict_data :
119118 raise errors .NotFoundError (msg = '字典数据不存在' )
120- if dict_data .label != obj .label and await dict_data_dao .get_by_label (db , obj .label ):
121- raise errors .ConflictError (msg = '字典数据已存在' )
122119 dict_type = await dict_type_dao .get (db , obj .type_id )
123120 if not dict_type :
124121 raise errors .NotFoundError (msg = '字典类型不存在' )
122+ if dict_data .label != obj .label and await dict_data_dao .get_by_label_and_type_code (
123+ db , obj .label , dict_type .code
124+ ):
125+ raise errors .ConflictError (msg = '字典数据已存在' )
125126 count = await dict_data_dao .update (db , pk , obj , dict_type .code )
126127 return count
127128
0 commit comments