from typing import List from sqlalchemy import desc, delete, func, select, update from sqlalchemy.ext.asyncio import AsyncSession from module_admin.entity.vo.user_vo import CurrentUserModel from module_admin.entity.vo.dataint_vo import CdplbPageObject from module_admin.entity.do.dataint_do import SysCdplb from sqlalchemy import select, text, cast, Integer, and_, or_, outerjoin, func, join from utils.page_util import PageUtil class CdplbDao: """ 菜单管理模块数据库操作层 """ @classmethod async def get_cdplb_list(cls, db: AsyncSession, cdplb_query: CdplbPageObject): query = ( select(SysCdplb).where( SysCdplb.bath_obj_tabName == cdplb_query.bath_obj_tabName if cdplb_query.bath_obj_tabName else True, SysCdplb.bath_obj_fldName == cdplb_query.bath_obj_fldName if cdplb_query.bath_obj_fldName else True, SysCdplb.pos_name == cdplb_query.pos_name if cdplb_query.pos_name else True, SysCdplb.status == cdplb_query.status if cdplb_query.status else True ).distinct() ) query_result = await PageUtil.paginate(db, query, cdplb_query.page_num, cdplb_query.page_size, True) return query_result @classmethod async def insert_cdplb(cls, db: AsyncSession, sysCdplb: SysCdplb): db.add(sysCdplb) await db.flush() return sysCdplb @classmethod async def get_cdplb_by_id(cls, db: AsyncSession, onum: str): result = ( ( await db.execute( select(SysCdplb).where(SysCdplb.onum == onum).distinct() ) ).scalars().first() ) return result @classmethod async def update_cdplb(cls, db: AsyncSession, saveObj: dict): await db.execute(update(SysCdplb), [saveObj]) @classmethod async def delete_cdplb(cls, db: AsyncSession, array: List[str]): await db.execute(delete(SysCdplb).where(SysCdplb.onum.in_(array)))