fix(测试计划): 测试计划组查询

This commit is contained in:
Jianguo-Genius 2024-06-05 10:40:13 +08:00 committed by Craftsman
parent 8e9bf6fc0d
commit 22ba5f9f90
3 changed files with 32 additions and 2 deletions

View File

@ -54,6 +54,15 @@ public class TestPlanController {
return testPlanManagementService.page(request); return testPlanManagementService.page(request);
} }
@GetMapping("/group-list/{projectId}")
@Operation(summary = "测试计划-测试计划组查询")
@RequiresPermissions(PermissionConstants.TEST_PLAN_READ)
@CheckOwner(resourceId = "#projectId", resourceType = "project")
public List<TestPlan> groupList(@PathVariable String projectId) {
testPlanManagementService.checkModuleIsOpen(projectId, TestPlanResourceConfig.CHECK_TYPE_PROJECT, Collections.singletonList(TestPlanResourceConfig.CONFIG_TEST_PLAN));
return testPlanManagementService.groupList(projectId);
}
@GetMapping("/list-in-group/{groupId}") @GetMapping("/list-in-group/{groupId}")
@Operation(summary = "测试计划-表格分页查询") @Operation(summary = "测试计划-表格分页查询")
@RequiresPermissions(PermissionConstants.TEST_PLAN_READ) @RequiresPermissions(PermissionConstants.TEST_PLAN_READ)

View File

@ -3,10 +3,13 @@ package io.metersphere.plan.service;
import com.github.pagehelper.Page; import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import io.metersphere.plan.constants.TestPlanResourceConfig; import io.metersphere.plan.constants.TestPlanResourceConfig;
import io.metersphere.plan.domain.TestPlan;
import io.metersphere.plan.domain.TestPlanExample;
import io.metersphere.plan.dto.request.TestPlanTableRequest; import io.metersphere.plan.dto.request.TestPlanTableRequest;
import io.metersphere.plan.dto.response.TestPlanResponse; import io.metersphere.plan.dto.response.TestPlanResponse;
import io.metersphere.plan.mapper.ExtTestPlanMapper; import io.metersphere.plan.mapper.ExtTestPlanMapper;
import io.metersphere.plan.mapper.ExtTestPlanModuleMapper; import io.metersphere.plan.mapper.ExtTestPlanModuleMapper;
import io.metersphere.plan.mapper.TestPlanMapper;
import io.metersphere.project.domain.Project; import io.metersphere.project.domain.Project;
import io.metersphere.project.dto.ModuleCountDTO; import io.metersphere.project.dto.ModuleCountDTO;
import io.metersphere.project.mapper.ProjectMapper; import io.metersphere.project.mapper.ProjectMapper;
@ -41,6 +44,8 @@ public class TestPlanManagementService {
private TestPlanModuleService testPlanModuleService; private TestPlanModuleService testPlanModuleService;
@Resource @Resource
private TestPlanStatisticsService testPlanStatisticsService; private TestPlanStatisticsService testPlanStatisticsService;
@Resource
private TestPlanMapper testPlanMapper;
public Map<String, Long> moduleCount(TestPlanTableRequest request) { public Map<String, Long> moduleCount(TestPlanTableRequest request) {
//查出每个模块节点下的资源数量 不需要按照模块进行筛选 //查出每个模块节点下的资源数量 不需要按照模块进行筛选
@ -61,15 +66,21 @@ public class TestPlanManagementService {
public Pager<List<TestPlanResponse>> page(TestPlanTableRequest request) { public Pager<List<TestPlanResponse>> page(TestPlanTableRequest request) {
Page<Object> page = PageHelper.startPage(request.getCurrent(), request.getPageSize(), Page<Object> page = PageHelper.startPage(request.getCurrent(), request.getPageSize(),
MapUtils.isEmpty(request.getSort()) ? "t.num desc" : request.getSortString()); MapUtils.isEmpty(request.getSort()) ? "t.num desc" : request.getSortString());
return PageUtils.setPageInfo(page, this.getTableList(request)); return PageUtils.setPageInfo(page, this.list(request));
} }
private List<TestPlanResponse> getTableList(TestPlanTableRequest request) { public List<TestPlanResponse> list(TestPlanTableRequest request) {
List<TestPlanResponse> testPlanResponses = extTestPlanMapper.selectByConditions(request); List<TestPlanResponse> testPlanResponses = extTestPlanMapper.selectByConditions(request);
handChildren(testPlanResponses,request.getProjectId()); handChildren(testPlanResponses,request.getProjectId());
return testPlanResponses; return testPlanResponses;
} }
public List<TestPlan> groupList(String projectId) {
TestPlanExample example = new TestPlanExample();
example.createCriteria().andTypeEqualTo(TestPlanConstants.TEST_PLAN_TYPE_GROUP).andProjectIdEqualTo(projectId).andStatusNotEqualTo(TestPlanConstants.TEST_PLAN_STATUS_ARCHIVED);
return testPlanMapper.selectByExample(example);
}
/** /**
* 计划组子节点 * 计划组子节点
*/ */

View File

@ -114,6 +114,7 @@ public class TestPlanTests extends BaseTest {
private static final String URL_GET_TEST_PLAN_DELETE = "/test-plan/delete/%s"; private static final String URL_GET_TEST_PLAN_DELETE = "/test-plan/delete/%s";
private static final String URL_POST_TEST_PLAN_PAGE = "/test-plan/page"; private static final String URL_POST_TEST_PLAN_PAGE = "/test-plan/page";
private static final String URL_POST_TEST_PLAN_GROUP_LIST = "/test-plan/group-list/%s";
private static final String URL_POST_TEST_PLAN_STATISTICS = "/test-plan/statistics"; private static final String URL_POST_TEST_PLAN_STATISTICS = "/test-plan/statistics";
private static final String URL_POST_TEST_PLAN_MODULE_COUNT = "/test-plan/module/count"; private static final String URL_POST_TEST_PLAN_MODULE_COUNT = "/test-plan/module/count";
private static final String URL_GET_TEST_PLAN_LIST_IN_GROUP = "/test-plan/list-in-group/%s"; private static final String URL_GET_TEST_PLAN_LIST_IN_GROUP = "/test-plan/list-in-group/%s";
@ -667,6 +668,15 @@ public class TestPlanTests extends BaseTest {
Assertions.assertNotNull(JSON.parseObject(JSON.toJSONString(holder.getData()), TestPlan.class).getId()); Assertions.assertNotNull(JSON.parseObject(JSON.toJSONString(holder.getData()), TestPlan.class).getId());
} }
//校验Group数量
List<TestPlan> groupList = JSON.parseArray(
JSON.toJSONString(
JSON.parseObject(
this.requestGetWithOkAndReturn(String.format(URL_POST_TEST_PLAN_GROUP_LIST, project.getId()))
.getResponse().getContentAsString(), ResultHolder.class).getData()),
TestPlan.class);
Assertions.assertEquals(groupList.size(), 2);
/* /*
反例 反例
1.参数校验 name为空 1.参数校验 name为空