from .base import BaseMySQLClient class Patterns(BaseMySQLClient): """ 模式管理类,继承自基础MySQL客户端 用于处理维度、模式和产物的数据库操作 """ async def insert_dimensions(self, dimensions): """ 批量插入维度数据到数据库 Args: dimensions: 维度数据列表,每个元素包含(dim_name, dim_description, level) - dim_name: 维度名称 - dim_description: 维度描述 - level: 维度层级 Returns: awaitable: 异步数据库操作结果 """ query = """ INSERT IGNORE INTO dimensions (dim_name, dim_description, level) VALUES (%s, %s, %s); """ return await self.pool.async_save(query=query, params=dimensions, batch=True) async def update_dimension_status(self, dimension_id, ori_status, new_status): """ 更新维度状态 Args: dimension_id: 维度ID ori_status: 原始状态(用于条件检查) new_status: 新状态 Returns: awaitable: 异步数据库操作结果 """ query = """ UPDATE dimensions SET status = %s WHERE id = %s AND status = %s; """ return await self.pool.async_save( query=query, params=(new_status, dimension_id, ori_status) ) async def insert_modes(self, modes): """ 批量插入模式数据到数据库 Args: modes: 模式数据列表,每个元素包含(mode_id, name, mode_percentage, description, detail, output_id, dim_name) - mode_id: 模式ID - name: 模式名称 - mode_percentage: 模式占比 - description: 模式描述 - detail: 模式详情 - output_id: 关联的产物ID - dim_name: 所属维度名称 Returns: awaitable: 异步数据库操作结果 """ query = """ INSERT IGNORE INTO modes (mode_id, name, mode_percentage, description, detail, output_id, dim_name) VALUES (%s, %s, %s, %s, %s, %s, %s); """ return await self.pool.async_save(query=query, params=modes, batch=True) async def insert_outputs(self, outputs): """ 批量插入产物数据到数据库 Args: outputs: 产物数据列表,每个元素包含(output_id, output_type, description, content, constrains) - output_id: 产物ID - output_type: 产物类型 - description: 产物描述 - content: 产物内容 - constrains: 产物约束条件 Returns: awaitable: 异步数据库操作结果 """ query = """ INSERT IGNORE INTO outputs (output_id, output_type, description, content, constrains) VALUES (%s, %s, %s, %s, %s); """ return await self.pool.async_save(query=query, params=outputs, batch=True)