| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- 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)
|