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.
		
		
		
		
		
			
		
			
				
					
					
						
							171 lines
						
					
					
						
							6.4 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							171 lines
						
					
					
						
							6.4 KiB
						
					
					
				| from sqlalchemy import delete, select, update, desc | |
| from sqlalchemy.ext.asyncio import AsyncSession | |
| from module_admin.entity.do.metasecurity_do import MetaSecurityCol, MetaSecurityRow | |
| from module_admin.entity.vo.metasecurity_vo import MetaSecurityColModel, MetaSecurityRowModel | |
| from utils.page_util import PageUtil | |
| 
 | |
| 
 | |
| class MetaSecurityDao: | |
|     """ | |
|     数据源安全管理模块数据库操作层 | |
|     """ | |
| 
 | |
|     @classmethod | |
|     async def get_meta_security_col_list(cls, db: AsyncSession, query_object: MetaSecurityColModel, is_page: bool = False): | |
|      """ | |
|      获取 MetaSecurityCol 的列表信息,支持模糊查询和分页 | |
|      :param db: ORM对象 | |
|      :param query_object: 查询参数对象 | |
|      :param is_page: 是否开启分页 | |
|      :return: 列表信息 | |
|      """ | |
|      # 构建查询条件 | |
|      filters = [] | |
|      if query_object.dbCName: | |
|          filters.append(MetaSecurityCol.dbCName.like(f"%{query_object.dbCName}%")) | |
|      if query_object.obj_value: | |
|          filters.append(MetaSecurityCol.obj_value.like(f"%{query_object.obj_value}%")) | |
|      if query_object.dbTName: | |
|          filters.append(MetaSecurityCol.dbTName.like(f"%{query_object.dbTName}%")) | |
|      if query_object.obj_name: | |
|          filters.append(MetaSecurityCol.obj_name.like(f"%{query_object.obj_name}%")) | |
|      if query_object.dbSName: | |
|          filters.append(MetaSecurityCol.dbSName.like(f"%{query_object.dbSName}%")) | |
|      if query_object.dbRID: | |
|          filters.append(MetaSecurityCol.dbRID==query_object.dbRID)          | |
|      # 构建查询语句 | |
|      query = ( | |
|          select(MetaSecurityCol) | |
|          .where(*filters) | |
|          .order_by(desc(MetaSecurityCol.create_time))  # 按创建时间降序排序 | |
|      ) | |
| 
 | |
|      # 分页处理 | |
|      col_list = await PageUtil.paginate( | |
|          db, query, query_object.page_num, query_object.page_size, is_page | |
|      ) | |
|      return col_list | |
| 
 | |
| 
 | |
|     @classmethod | |
|     async def get_meta_security_row_list(cls, db: AsyncSession, query_object: MetaSecurityRowModel, is_page: bool = False): | |
|       """ | |
|       获取 MetaSecurityRow 的列表信息,支持模糊查询和分页 | |
|       :param db: ORM对象 | |
|       :param query_object: 查询参数对象 | |
|       :param is_page: 是否开启分页 | |
|       :return: 列表信息 | |
|       """ | |
|       # 构建查询条件 | |
|       filters = [] | |
|       if query_object.dbCName: | |
|           filters.append(MetaSecurityRow.dbCName.like(f"%{query_object.dbCName}%")) | |
|       if query_object.obj_value: | |
|           filters.append(MetaSecurityRow.obj_value.like(f"%{query_object.obj_value}%")) | |
|       if query_object.dbTName: | |
|           filters.append(MetaSecurityRow.dbTName.like(f"%{query_object.dbTName}%")) | |
|       if query_object.dbSName: | |
|          filters.append(MetaSecurityRow.dbSName.like(f"%{query_object.dbSName}%")) | |
|       if query_object.obj_name: | |
|          filters.append(MetaSecurityRow.obj_name.like(f"%{query_object.obj_name}%")) | |
|       if query_object.dbRID: | |
|          filters.append(MetaSecurityRow.dbRID==query_object.dbRID)               | |
|       # 构建查询语句 | |
|       query = ( | |
|           select(MetaSecurityRow) | |
|           .where(*filters) | |
|           .order_by(desc(MetaSecurityRow.create_time))  # 按创建时间降序排序 | |
|       ) | |
|    | |
|       # 分页处理 | |
|       row_list = await PageUtil.paginate( | |
|           db, query, query_object.page_num, query_object.page_size, is_page | |
|       ) | |
|       return row_list | |
|      | |
|     @classmethod | |
|     async def get_api_col_list(cls, db: AsyncSession, dbRCode: str,dbSName: str,dbTname:str,objType:str,objValue:str): | |
|         colList = ( | |
|             await db.execute( | |
|                 select(MetaSecurityCol) | |
|                 .where( | |
|                 (MetaSecurityCol.isStop == 0) & | |
|                 (MetaSecurityCol.dbRName == dbRCode) & | |
|                 (MetaSecurityCol.obj_type == objType) & | |
|                 (MetaSecurityCol.dbSName == dbSName) & | |
|                 (MetaSecurityCol.dbTName == dbTname) & | |
|                 (MetaSecurityCol.obj_value == objValue) | |
|                 ) | |
|             ) | |
|         ).scalars().all() | |
|         return colList | |
|     @classmethod | |
|     async def get_api_row_list(cls, db: AsyncSession, dbRCode: str,dbSName: str,dbTname:str,objType:str,objValue:str): | |
|         colList = ( | |
|             await db.execute( | |
|                 select(MetaSecurityRow) | |
|                 .where( | |
|                 (MetaSecurityRow.isStop == 0) & | |
|                 (MetaSecurityRow.dbRName == dbRCode) & | |
|                 (MetaSecurityRow.obj_type == objType) & | |
|                 (MetaSecurityRow.dbSName == dbSName) & | |
|                 (MetaSecurityRow.dbTName == dbTname) & | |
|                 (MetaSecurityRow.obj_value == objValue) | |
|                 ) | |
|             ) | |
|         ).scalars().all() | |
|         return colList   | |
| 
 | |
|     @classmethod | |
|     async def get_meta_security_col_by_id(cls, db: AsyncSession, colId: str): | |
|         col = ( | |
|             await db.execute( | |
|                 select(MetaSecurityCol) | |
|                 .where(MetaSecurityCol.colId == colId) | |
|             ) | |
|         ).scalars().first() | |
|         return col | |
| 
 | |
|     @classmethod | |
|     async def get_meta_security_row_by_id(cls, db: AsyncSession, rowId: str): | |
|         row = ( | |
|             await db.execute( | |
|                 select(MetaSecurityRow) | |
|                 .where(MetaSecurityRow.rowId == rowId) | |
|             ) | |
|         ).scalars().first() | |
|         return row | |
| 
 | |
|     @classmethod | |
|     async def add_meta_security_col(cls, db: AsyncSession,colModel:MetaSecurityColModel): | |
|         col = MetaSecurityCol( | |
|            **colModel.model_dump() | |
|         ) | |
|         db.add(col) | |
|         await db.flush() | |
|         return col | |
|     @classmethod | |
|     async def add_meta_security_row(cls, db: AsyncSession,rowModel:MetaSecurityRowModel): | |
|         row = MetaSecurityRow(**rowModel.model_dump()) | |
|         db.add(row) | |
|         await db.flush() | |
|         return row | |
| 
 | |
|     @classmethod | |
|     async def delete_meta_security_col(cls, db: AsyncSession, colId: str): | |
|         await db.execute(delete(MetaSecurityCol).where(MetaSecurityCol.colId == colId)) | |
| 
 | |
|     @classmethod | |
|     async def delete_meta_security_row(cls, db: AsyncSession, rowId: str): | |
|         await db.execute(delete(MetaSecurityRow).where(MetaSecurityRow.rowId == rowId)) | |
| 
 | |
|     @classmethod | |
|     async def update_meta_security_col(cls, db: AsyncSession, update_data: MetaSecurityColModel): | |
|      | |
|         await db.execute(update(MetaSecurityCol), [update_data]) | |
|         await db.flush() | |
| 
 | |
|     @classmethod | |
|     async def update_meta_security_row(cls, db: AsyncSession,  update_data: MetaSecurityRowModel): | |
|        await db.execute(update(MetaSecurityRow), [update_data]) | |
|        await db.flush()
 | |
| 
 |