You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.9 KiB
53 lines
1.9 KiB
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 TsmcbPageObject
|
|
from module_admin.entity.do.dataint_do import SysTsmcb
|
|
from sqlalchemy import select, text, cast, Integer, and_, or_, outerjoin, func, join
|
|
from utils.page_util import PageUtil
|
|
|
|
|
|
class TsmcbDao:
|
|
"""
|
|
菜单管理模块数据库操作层
|
|
"""
|
|
|
|
@classmethod
|
|
async def get_tsmcb_list(cls, db: AsyncSession, tsmcb_query: TsmcbPageObject):
|
|
query = (
|
|
select(SysTsmcb).where(
|
|
SysTsmcb.pos == tsmcb_query.pos if tsmcb_query.pos else True,
|
|
SysTsmcb.type == tsmcb_query.type if tsmcb_query.type else True,
|
|
SysTsmcb.std_rpl_str == tsmcb_query.std_rpl_str if tsmcb_query.std_rpl_str else True,
|
|
SysTsmcb.status == tsmcb_query.status if tsmcb_query.status else True
|
|
).distinct()
|
|
)
|
|
query_result = await PageUtil.paginate(db, query, tsmcb_query.page_num, tsmcb_query.page_size, True)
|
|
return query_result
|
|
|
|
@classmethod
|
|
async def insert_tsmcb(cls, db: AsyncSession, sysTsmcb: SysTsmcb):
|
|
db.add(sysTsmcb)
|
|
await db.flush()
|
|
return sysTsmcb
|
|
|
|
@classmethod
|
|
async def get_tsmcb_by_id(cls, db: AsyncSession, onum: str):
|
|
result = (
|
|
(
|
|
await db.execute(
|
|
select(SysTsmcb).where(SysTsmcb.onum == onum).distinct()
|
|
)
|
|
).scalars().first()
|
|
)
|
|
return result
|
|
|
|
@classmethod
|
|
async def update_tsmcb(cls, db: AsyncSession, saveObj: dict):
|
|
await db.execute(update(SysTsmcb), [saveObj])
|
|
|
|
@classmethod
|
|
async def delete_tsmcb(cls, db: AsyncSession, array: List[str]):
|
|
await db.execute(delete(SysTsmcb).where(SysTsmcb.onum.in_(array)))
|
|
|