6 changed files with 672 additions and 5 deletions
@ -0,0 +1,106 @@ |
|||
from sqlalchemy import delete, select, update,and_ |
|||
from sqlalchemy.ext.asyncio import AsyncSession |
|||
from module_admin.entity.do.metadata_config_do import BatchBusiLabelConfig,BatchDataopLabelConfig,BatchDatatypeLabelConfig |
|||
|
|||
from utils.page_util import PageUtil |
|||
|
|||
class BatchLabelConfigDAO: |
|||
|
|||
# region === BatchBusiLabelConfig === |
|||
|
|||
@classmethod |
|||
async def get_busi_detail_by_id(cls, db: AsyncSession, onum: int): |
|||
result = await db.execute(select(BatchBusiLabelConfig).where(BatchBusiLabelConfig.onum == onum)) |
|||
return result.scalars().first() |
|||
|
|||
@classmethod |
|||
async def get_busi_list(cls, db: AsyncSession, query_object, is_page: bool = False): |
|||
query = select(BatchBusiLabelConfig).where( |
|||
BatchBusiLabelConfig.regex_name.like(f"%{query_object.regex_name}%") if query_object.regex_name else True, |
|||
BatchBusiLabelConfig.mdl_name == query_object.mdl_name if query_object.mdl_name else True, |
|||
).order_by(BatchBusiLabelConfig.upd_time.desc()) |
|||
|
|||
return await PageUtil.paginate(db, query, query_object.page_num, query_object.page_size, is_page) |
|||
|
|||
@classmethod |
|||
async def add_busi(cls, db: AsyncSession, obj): |
|||
db_obj = BatchBusiLabelConfig(**obj.model_dump()) |
|||
db.add(db_obj) |
|||
await db.flush() |
|||
return db_obj |
|||
|
|||
@classmethod |
|||
async def edit_busi(cls, db: AsyncSession, onum: int, update_data: dict): |
|||
await db.execute(update(BatchBusiLabelConfig).where(BatchBusiLabelConfig.onum == onum).values(**update_data)) |
|||
|
|||
@classmethod |
|||
async def delete_busi(cls, db: AsyncSession, onum_list: list[int]): |
|||
await db.execute(delete(BatchBusiLabelConfig).where(BatchBusiLabelConfig.onum.in_(onum_list))) |
|||
|
|||
# endregion |
|||
|
|||
# region === BatchDataopLabelConfig === |
|||
|
|||
@classmethod |
|||
async def get_dataop_detail_by_id(cls, db: AsyncSession, onum: int): |
|||
result = await db.execute(select(BatchDataopLabelConfig).where(BatchDataopLabelConfig.onum == onum)) |
|||
return result.scalars().first() |
|||
|
|||
@classmethod |
|||
async def get_dataop_list(cls, db: AsyncSession, query_object, is_page: bool = False): |
|||
query = select(BatchDataopLabelConfig).where( |
|||
BatchDataopLabelConfig.optype.like(f"%{query_object.optype}%") if query_object.optype else True, |
|||
BatchDataopLabelConfig.mdl_name == query_object.mdl_name if query_object.mdl_name else True, |
|||
) |
|||
|
|||
return await PageUtil.paginate(db, query, query_object.page_num, query_object.page_size, is_page) |
|||
|
|||
@classmethod |
|||
async def add_dataop(cls, db: AsyncSession, obj): |
|||
db_obj = BatchDataopLabelConfig(**obj.model_dump()) |
|||
db.add(db_obj) |
|||
await db.flush() |
|||
return db_obj |
|||
|
|||
@classmethod |
|||
async def edit_dataop(cls, db: AsyncSession, onum: int, update_data: dict): |
|||
await db.execute(update(BatchDataopLabelConfig).where(BatchDataopLabelConfig.onum == onum).values(**update_data)) |
|||
|
|||
@classmethod |
|||
async def delete_dataop(cls, db: AsyncSession, onum_list: list[int]): |
|||
await db.execute(delete(BatchDataopLabelConfig).where(BatchDataopLabelConfig.onum.in_(onum_list))) |
|||
|
|||
# endregion |
|||
|
|||
# region === BatchDatatypeLabelConfig === |
|||
|
|||
@classmethod |
|||
async def get_datatype_detail_by_id(cls, db: AsyncSession, onum: int): |
|||
result = await db.execute(select(BatchDatatypeLabelConfig).where(BatchDatatypeLabelConfig.onum == onum)) |
|||
return result.scalars().first() |
|||
|
|||
@classmethod |
|||
async def get_datatype_list(cls, db: AsyncSession, query_object, is_page: bool = False): |
|||
query = select(BatchDatatypeLabelConfig).where( |
|||
BatchDatatypeLabelConfig.datatype.like(f"%{query_object.datatype}%") if query_object.datatype else True, |
|||
BatchDatatypeLabelConfig.mdl_name == query_object.mdl_name if query_object.mdl_name else True, |
|||
).order_by(BatchDatatypeLabelConfig.upd_time.desc()) |
|||
|
|||
return await PageUtil.paginate(db, query, query_object.page_num, query_object.page_size, is_page) |
|||
|
|||
@classmethod |
|||
async def add_datatype(cls, db: AsyncSession, obj): |
|||
db_obj = BatchDatatypeLabelConfig(**obj.model_dump()) |
|||
db.add(db_obj) |
|||
await db.flush() |
|||
return db_obj |
|||
|
|||
@classmethod |
|||
async def edit_datatype(cls, db: AsyncSession, onum: int, update_data: dict): |
|||
await db.execute(update(BatchDatatypeLabelConfig).where(BatchDatatypeLabelConfig.onum == onum).values(**update_data)) |
|||
|
|||
@classmethod |
|||
async def delete_datatype(cls, db: AsyncSession, onum_list: list[int]): |
|||
await db.execute(delete(BatchDatatypeLabelConfig).where(BatchDatatypeLabelConfig.onum.in_(onum_list))) |
|||
|
|||
# endregion |
@ -0,0 +1,177 @@ |
|||
from sqlalchemy.ext.asyncio import AsyncSession |
|||
from module_admin.dao.batch_label_config_dao import BatchLabelConfigDAO |
|||
from module_admin.entity.vo.common_vo import CrudResponseModel |
|||
from module_admin.entity.vo.metadata_config_vo import BatchBusiLabelConfigModel,BatchDataopLabelConfigModel,BatchDatatypeLabelConfigModel |
|||
from exceptions.exception import ServiceException |
|||
import uuid |
|||
from utils.common_util import CamelCaseUtil |
|||
from typing import List |
|||
from datetime import datetime |
|||
|
|||
|
|||
class BatchLabelConfigService: |
|||
|
|||
# region === BatchBusiLabelConfig === |
|||
|
|||
@classmethod |
|||
async def get_busi_list_services(cls, db: AsyncSession, query_object, is_page: bool = False): |
|||
return await BatchLabelConfigDAO.get_busi_list(db, query_object, is_page) |
|||
|
|||
@classmethod |
|||
async def add_busi_services(cls, db: AsyncSession, page_object): |
|||
try: |
|||
page_object.onum = str(uuid.uuid4()) |
|||
await BatchLabelConfigDAO.add_busi(db, page_object) |
|||
await db.commit() |
|||
return CrudResponseModel(is_success=True, message="新增成功") |
|||
except Exception as e: |
|||
await db.rollback() |
|||
raise e |
|||
|
|||
@classmethod |
|||
async def edit_busi_services(cls, db: AsyncSession, page_object): |
|||
edit_data = page_object.model_dump(exclude_unset=True) |
|||
info = await cls.get_busi_detail_services(db, page_object.onum) |
|||
if info.onum: |
|||
try: |
|||
await BatchLabelConfigDAO.edit_busi(db, page_object.onum, edit_data) |
|||
await db.commit() |
|||
return CrudResponseModel(is_success=True, message="更新成功") |
|||
except Exception as e: |
|||
await db.rollback() |
|||
raise e |
|||
else: |
|||
raise ServiceException(message="业务标签配置不存在") |
|||
|
|||
@classmethod |
|||
async def delete_busi_services(cls, db: AsyncSession, onum_list: str): |
|||
id_list = [x.strip() for x in onum_list.split(",") if x.strip()] |
|||
if not id_list: |
|||
raise ServiceException(message="无效的编号列表") |
|||
|
|||
try: |
|||
await BatchLabelConfigDAO.delete_busi(db, id_list) |
|||
await db.commit() |
|||
return CrudResponseModel(is_success=True, message="删除成功") |
|||
except Exception as e: |
|||
await db.rollback() |
|||
raise e |
|||
|
|||
@classmethod |
|||
async def get_busi_detail_services(cls, db: AsyncSession, onum: str): |
|||
result = await BatchLabelConfigDAO.get_busi_detail_by_id(db, onum) |
|||
if result: |
|||
return BatchBusiLabelConfigModel(**CamelCaseUtil.transform_result(result)) |
|||
return BatchBusiLabelConfigModel(**dict()) |
|||
|
|||
# endregion |
|||
|
|||
# region === BatchDataopLabelConfig === |
|||
|
|||
@classmethod |
|||
async def get_dataop_list_services(cls, db: AsyncSession, query_object, is_page: bool = False): |
|||
return await BatchLabelConfigDAO.get_dataop_list(db, query_object, is_page) |
|||
|
|||
@classmethod |
|||
async def add_dataop_services(cls, db: AsyncSession, page_object): |
|||
try: |
|||
page_object.onum = str(uuid.uuid4()) |
|||
await BatchLabelConfigDAO.add_dataop(db, page_object) |
|||
await db.commit() |
|||
return CrudResponseModel(is_success=True, message="新增成功") |
|||
except Exception as e: |
|||
await db.rollback() |
|||
raise e |
|||
|
|||
@classmethod |
|||
async def edit_dataop_services(cls, db: AsyncSession, page_object): |
|||
edit_data = page_object.model_dump(exclude_unset=True) |
|||
info = await cls.get_dataop_detail_services(db, page_object.onum) |
|||
if info.onum: |
|||
try: |
|||
await BatchLabelConfigDAO.edit_dataop(db, page_object.onum, edit_data) |
|||
await db.commit() |
|||
return CrudResponseModel(is_success=True, message="更新成功") |
|||
except Exception as e: |
|||
await db.rollback() |
|||
raise e |
|||
else: |
|||
raise ServiceException(message="操作标签配置不存在") |
|||
|
|||
@classmethod |
|||
async def delete_dataop_services(cls, db: AsyncSession, onum_list: str): |
|||
id_list = [x.strip() for x in onum_list.split(",") if x.strip()] |
|||
if not id_list: |
|||
raise ServiceException(message="无效的编号列表") |
|||
|
|||
try: |
|||
await BatchLabelConfigDAO.delete_dataop(db, id_list) |
|||
await db.commit() |
|||
return CrudResponseModel(is_success=True, message="删除成功") |
|||
except Exception as e: |
|||
await db.rollback() |
|||
raise e |
|||
|
|||
@classmethod |
|||
async def get_dataop_detail_services(cls, db: AsyncSession, onum: str): |
|||
result = await BatchLabelConfigDAO.get_dataop_detail_by_id(db, onum) |
|||
if result: |
|||
return BatchDataopLabelConfigModel(**CamelCaseUtil.transform_result(result)) |
|||
return BatchDataopLabelConfigModel(**dict()) |
|||
|
|||
# endregion |
|||
|
|||
# region === BatchDatatypeLabelConfig === |
|||
|
|||
@classmethod |
|||
async def get_datatype_list_services(cls, db: AsyncSession, query_object, is_page: bool = False): |
|||
return await BatchLabelConfigDAO.get_datatype_list(db, query_object, is_page) |
|||
|
|||
@classmethod |
|||
async def add_datatype_services(cls, db: AsyncSession, page_object): |
|||
try: |
|||
page_object.onum = str(uuid.uuid4()) |
|||
await BatchLabelConfigDAO.add_datatype(db, page_object) |
|||
await db.commit() |
|||
return CrudResponseModel(is_success=True, message="新增成功") |
|||
except Exception as e: |
|||
await db.rollback() |
|||
raise e |
|||
|
|||
@classmethod |
|||
async def edit_datatype_services(cls, db: AsyncSession, page_object): |
|||
edit_data = page_object.model_dump(exclude_unset=True) |
|||
info = await cls.get_datatype_detail_services(db, page_object.onum) |
|||
if info.onum: |
|||
try: |
|||
await BatchLabelConfigDAO.edit_datatype(db, page_object.onum, edit_data) |
|||
await db.commit() |
|||
return CrudResponseModel(is_success=True, message="更新成功") |
|||
except Exception as e: |
|||
await db.rollback() |
|||
raise e |
|||
else: |
|||
raise ServiceException(message="数据类型标签配置不存在") |
|||
|
|||
@classmethod |
|||
async def delete_datatype_services(cls, db: AsyncSession, onum_list: str): |
|||
id_list = [x.strip() for x in onum_list.split(",") if x.strip()] |
|||
if not id_list: |
|||
raise ServiceException(message="无效的编号列表") |
|||
|
|||
try: |
|||
await BatchLabelConfigDAO.delete_datatype(db, id_list) |
|||
await db.commit() |
|||
return CrudResponseModel(is_success=True, message="删除成功") |
|||
except Exception as e: |
|||
await db.rollback() |
|||
raise e |
|||
|
|||
@classmethod |
|||
async def get_datatype_detail_services(cls, db: AsyncSession, onum: str): |
|||
result = await BatchLabelConfigDAO.get_datatype_detail_by_id(db, onum) |
|||
if result: |
|||
return BatchDatatypeLabelConfigModel(**CamelCaseUtil.transform_result(result)) |
|||
return BatchDatatypeLabelConfigModel(**dict()) |
|||
|
|||
# endregion |
Loading…
Reference in new issue