From e1e6563276126b57b064f2c6fc8833dfe382512a Mon Sep 17 00:00:00 2001 From: qiaoxinjiu Date: Mon, 18 May 2026 14:44:44 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=E7=94=A8=E4=BE=8B?= =?UTF-8?q?=E6=8E=A7=E5=88=B6=E5=99=A8=20caseController.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/controller/caseController.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/app/api/controller/caseController.py b/app/api/controller/caseController.py index aef146a..43dbda2 100644 --- a/app/api/controller/caseController.py +++ b/app/api/controller/caseController.py @@ -97,8 +97,10 @@ class CaseController(BaseCrudController): if value not in (None, ''): filters.append(column == int(value)) is_ai_generated = self._get(self.req_data, 'isAiGenerated', 'is_ai_generated') + is_ai_generated_val = None if is_ai_generated not in (None, ''): - filters.append(TestCase.is_ai_generated == int(is_ai_generated)) + is_ai_generated_val = int(is_ai_generated) + filters.append(TestCase.is_ai_generated == is_ai_generated_val) status = self._get(self.req_data, 'status') if status not in (None, ''): filters.append(TestCase.status == int(status)) @@ -117,7 +119,7 @@ class CaseController(BaseCrudController): if created_by_name: filters.append(User.real_name.like('%{}%'.format(created_by_name))) - query = self.session.query(TestCase, Project.name.label('project_name'), Module.name.label('module_name'), Module.path.label('module_path'), User.real_name.label('created_by_name')).\ + query = self.session.query(TestCase, Project.name.label('project_name'), Module.name.label('module_name'), Module.path.label('module_path'), Module.status.label('module_status'), User.real_name.label('created_by_name')).\ join(Project, TestCase.project_id == Project.id, isouter=True).\ join(Module, TestCase.module_id == Module.id, isouter=True).\ join(User, TestCase.created_by == User.id, isouter=True).\ @@ -131,8 +133,11 @@ class CaseController(BaseCrudController): query = query.filter(or_(Module.is_delete == 0, Module.is_delete.is_(None))) if hasattr(Module, 'status'): module_status = self._get(self.req_data, 'moduleStatus', 'module_status') - if module_status not in (None, ''): - # 如果传入了module_status参数,按指定状态过滤 + # AI 用例列表需要展示对应模块数据,不能因为模块状态变化把用例隐藏掉 + if is_ai_generated_val == 1: + pass + elif module_status not in (None, ''): + # 非 AI 场景下,仍支持按模块状态过滤 query = query.filter(Module.status == int(module_status)) else: # 默认只查询状态为1的模块 @@ -149,11 +154,13 @@ class CaseController(BaseCrudController): items = query.offset((page_num - 1) * page_size).limit(page_size).all() result_list = [] - for case, project_name, module_name, module_path, created_by_name in items: + for case, project_name, module_name, module_path, module_status, created_by_name in items: case_dict = self.serialize(case, ['is_delete']) case_dict['project_name'] = project_name or '' case_dict['module_name'] = module_name or '' case_dict['module_path'] = module_path or '' + case_dict['module_id'] = case.module_id + case_dict['module_status'] = module_status case_dict['case_key'] = case_dict.get('case_key', '') case_dict['created_by_name'] = created_by_name or '' if not case_dict.get('steps'):