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