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'):