diff --git a/models/tone_model.py b/models/tone_model.py index 036e01d82f83bba9ab7a379fcd1ca6ec111e5466..c32f697a5bec19e45c2ea309845137562b959d1f 100644 --- a/models/tone_model.py +++ b/models/tone_model.py @@ -1,4 +1,5 @@ from sqlalchemy import Integer, Column, String, select, func +from sqlalchemy.dialects.mysql import insert from app import db from models import CommonModel @@ -32,11 +33,21 @@ async def query_tone_case_type(): async def query_tone_suite(page_num, page_size, condition): - select_orm = select(ToneCase.suite_id, ToneCase.suite_name, func.count(ToneCase.suite_name)) + select_orm = select(ToneCase.suite_id, ToneCase.suite_name, ToneCase.test_type, func.count(ToneCase.suite_name)) if len(condition) > 0: select_orm = select_orm.where(*condition) select_orm = select_orm.group_by(ToneCase.suite_name) select_orm = select_orm.limit(page_size).offset((page_num - 1) * page_size) async with db.conn() as session: results = await session.execute(select_orm) - return [{'suite_id': result[0], 'suite_name': result[1], 'nums': result[2]} for result in results] + return [{'suite_id': result[0], 'suite_name': result[1], 'test_type': result[2], 'nums': result[3]} for result in + results] + + +async def batch_insert_or_update_case(data): + insert_orm = insert(ToneCase).values(data) + on_duplicate_key_stmt = insert_orm.on_duplicate_key_update( + tone_case_id=insert_orm.inserted.tone_case_id + ) + await ToneCase.exec_orm(on_duplicate_key_stmt) + return