增加项目的各个功能
This commit is contained in:
47
app/api/controller/reportController.py
Normal file
47
app/api/controller/reportController.py
Normal file
@@ -0,0 +1,47 @@
|
||||
# encoding: UTF-8
|
||||
from .baseCrudController import BaseCrudController
|
||||
from ..model.planModel import TestPlan
|
||||
from ..model.reportModel import Report
|
||||
from ..service.reportService import ReportService
|
||||
|
||||
|
||||
class ReportController(BaseCrudController):
|
||||
"""测试报告相关接口控制器。"""
|
||||
|
||||
def report_list(self):
|
||||
"""分页查询报告列表,可按产品、项目、计划过滤。"""
|
||||
filters = []
|
||||
product_id = self._get(self.req_data, 'productId', 'product_id')
|
||||
if product_id:
|
||||
filters.append(Report.product_id == int(product_id))
|
||||
project_id = self._get(self.req_data, 'projectId', 'project_id')
|
||||
if project_id:
|
||||
filters.append(Report.project_id == int(project_id))
|
||||
plan_id = self._get(self.req_data, 'planId', 'plan_id')
|
||||
if plan_id:
|
||||
filters.append(Report.plan_id == int(plan_id))
|
||||
items, total = ReportService.list_by_filters(self.session, Report, filters, self._get(self.req_data, 'pageNo', default=1), self._get(self.req_data, 'pageSize', default=20), Report.generated_time)
|
||||
result_list = []
|
||||
for item in items:
|
||||
item_dict = self.serialize(item)
|
||||
plan = self.session.query(TestPlan).filter(TestPlan.id == item.plan_id).first()
|
||||
item_dict['plan_name'] = plan.name if plan else None
|
||||
result_list.append(item_dict)
|
||||
return {'list': result_list, 'total': total}
|
||||
|
||||
def report_detail(self):
|
||||
"""查询报告详情,返回 summary 和 HTML content。"""
|
||||
report_id = self._get(self.req_data, 'reportId', 'report_id', 'id')
|
||||
if not report_id:
|
||||
return {}, 'reportId 为必传参数'
|
||||
item = ReportService.get_by_id(self.session, Report, report_id)
|
||||
if not item:
|
||||
return {}, '未查询到对应报告!'
|
||||
return self.serialize(item), ''
|
||||
|
||||
def report_generate(self):
|
||||
"""同步生成报告:聚合计划执行数据并落库。"""
|
||||
plan_id = self._get(self.req_data, 'planId', 'plan_id')
|
||||
if not plan_id:
|
||||
return 0, 'planId 为必传参数'
|
||||
return ReportService.generate_report(self.session, plan_id, self._get(self.req_data, 'generatedBy', 'generated_by'))
|
||||
Reference in New Issue
Block a user