|  |  |  | 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 VecsetPageObject | 
					
						
							|  |  |  | from module_admin.entity.do.dataint_do import SysVecset | 
					
						
							|  |  |  | from sqlalchemy import select, text, cast, Integer, and_, or_, outerjoin, func, join | 
					
						
							|  |  |  | from utils.page_util import PageUtil | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class VecsetDao: | 
					
						
							|  |  |  |     """
 | 
					
						
							|  |  |  |     菜单管理模块数据库操作层 | 
					
						
							|  |  |  |     """
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @classmethod | 
					
						
							|  |  |  |     async def get_vecset_list(cls, db: AsyncSession, vecset_query: VecsetPageObject): | 
					
						
							|  |  |  |         query = ( | 
					
						
							|  |  |  |             select(SysVecset).where( | 
					
						
							|  |  |  |                 SysVecset.dasset_id == vecset_query.dasset_id if vecset_query.dasset_id else True, | 
					
						
							|  |  |  |                 SysVecset.stab_name == vecset_query.stab_name if vecset_query.stab_name else True, | 
					
						
							|  |  |  |                 SysVecset.squery == vecset_query.squery if vecset_query.squery else True, | 
					
						
							|  |  |  |                 SysVecset.sanal_plan == vecset_query.sanal_plan if vecset_query.sanal_plan else True, | 
					
						
							|  |  |  |                 SysVecset.status == vecset_query.status if vecset_query.status else True, | 
					
						
							|  |  |  |                 SysVecset.data_domain == vecset_query.data_domain if vecset_query.data_domain else True, | 
					
						
							|  |  |  |             ).distinct() | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  |         query_result = await PageUtil.paginate(db, query, vecset_query.page_num, vecset_query.page_size, True) | 
					
						
							|  |  |  |         return query_result | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @classmethod | 
					
						
							|  |  |  |     async def insert_vecset(cls, db: AsyncSession, sysVecset: SysVecset): | 
					
						
							|  |  |  |         db.add(sysVecset) | 
					
						
							|  |  |  |         await db.flush() | 
					
						
							|  |  |  |         return sysVecset | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @classmethod | 
					
						
							|  |  |  |     async def get_vecset_by_id(cls, db: AsyncSession, onum: str): | 
					
						
							|  |  |  |         result = ( | 
					
						
							|  |  |  |             ( | 
					
						
							|  |  |  |                 await db.execute( | 
					
						
							|  |  |  |                     select(SysVecset).where(SysVecset.onum == onum).distinct() | 
					
						
							|  |  |  |                 ) | 
					
						
							|  |  |  |             ).scalars().first() | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  |         return result | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @classmethod | 
					
						
							|  |  |  |     async def update_vecset(cls, db: AsyncSession, saveObj: dict): | 
					
						
							|  |  |  |         await db.execute(update(SysVecset), [saveObj]) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @classmethod | 
					
						
							|  |  |  |     async def delete_vecset(cls, db: AsyncSession, array: List[str]): | 
					
						
							|  |  |  |         await db.execute(delete(SysVecset).where(SysVecset.onum.in_(array))) |