feat(功能用例): 取消关联用例记录日志
This commit is contained in:
parent
58c27af024
commit
e9d1c73a46
|
@ -7,12 +7,15 @@ import io.metersphere.functional.dto.FunctionalCaseTestDTO;
|
||||||
import io.metersphere.functional.request.AssociateCaseModuleRequest;
|
import io.metersphere.functional.request.AssociateCaseModuleRequest;
|
||||||
import io.metersphere.functional.request.DisassociateOtherCaseRequest;
|
import io.metersphere.functional.request.DisassociateOtherCaseRequest;
|
||||||
import io.metersphere.functional.request.FunctionalCaseTestRequest;
|
import io.metersphere.functional.request.FunctionalCaseTestRequest;
|
||||||
|
import io.metersphere.functional.service.FunctionalCaseLogService;
|
||||||
import io.metersphere.functional.service.FunctionalTestCaseService;
|
import io.metersphere.functional.service.FunctionalTestCaseService;
|
||||||
import io.metersphere.request.AssociateCaseModuleProviderRequest;
|
import io.metersphere.request.AssociateCaseModuleProviderRequest;
|
||||||
import io.metersphere.request.AssociateOtherCaseRequest;
|
import io.metersphere.request.AssociateOtherCaseRequest;
|
||||||
import io.metersphere.request.TestCasePageProviderRequest;
|
import io.metersphere.request.TestCasePageProviderRequest;
|
||||||
import io.metersphere.sdk.constants.PermissionConstants;
|
import io.metersphere.sdk.constants.PermissionConstants;
|
||||||
import io.metersphere.system.dto.sdk.BaseTreeNode;
|
import io.metersphere.system.dto.sdk.BaseTreeNode;
|
||||||
|
import io.metersphere.system.log.annotation.Log;
|
||||||
|
import io.metersphere.system.log.constants.OperationLogType;
|
||||||
import io.metersphere.system.security.CheckOwner;
|
import io.metersphere.system.security.CheckOwner;
|
||||||
import io.metersphere.system.utils.PageUtils;
|
import io.metersphere.system.utils.PageUtils;
|
||||||
import io.metersphere.system.utils.Pager;
|
import io.metersphere.system.utils.Pager;
|
||||||
|
@ -76,6 +79,7 @@ public class FunctionalTestCaseController {
|
||||||
|
|
||||||
@PostMapping("/disassociate/case")
|
@PostMapping("/disassociate/case")
|
||||||
@Operation(summary = "用例管理-功能用例-关联其他用例-取消关联用例")
|
@Operation(summary = "用例管理-功能用例-关联其他用例-取消关联用例")
|
||||||
|
@Log(type = OperationLogType.DISASSOCIATE, expression = "#msClass.disassociateCaseLog(#request)", msClass = FunctionalCaseLogService.class)
|
||||||
@RequiresPermissions(PermissionConstants.PROJECT_API_DEFINITION_READ)
|
@RequiresPermissions(PermissionConstants.PROJECT_API_DEFINITION_READ)
|
||||||
@CheckOwner(resourceId = "#request.projectId", resourceType = "project")
|
@CheckOwner(resourceId = "#request.projectId", resourceType = "project")
|
||||||
public void disassociateCase(@Validated @RequestBody DisassociateOtherCaseRequest request) {
|
public void disassociateCase(@Validated @RequestBody DisassociateOtherCaseRequest request) {
|
||||||
|
@ -88,8 +92,7 @@ public class FunctionalTestCaseController {
|
||||||
@RequiresPermissions(value = {PermissionConstants.FUNCTIONAL_CASE_READ_ADD, PermissionConstants.FUNCTIONAL_CASE_READ_UPDATE, PermissionConstants.FUNCTIONAL_CASE_READ_DELETE}, logical = Logical.OR)
|
@RequiresPermissions(value = {PermissionConstants.FUNCTIONAL_CASE_READ_ADD, PermissionConstants.FUNCTIONAL_CASE_READ_UPDATE, PermissionConstants.FUNCTIONAL_CASE_READ_DELETE}, logical = Logical.OR)
|
||||||
@CheckOwner(resourceId = "#request.getProjectId()", resourceType = "project")
|
@CheckOwner(resourceId = "#request.getProjectId()", resourceType = "project")
|
||||||
public Pager<List<FunctionalCaseTestDTO>> getAssociateOtherCaseList(@Validated @RequestBody FunctionalCaseTestRequest request) {
|
public Pager<List<FunctionalCaseTestDTO>> getAssociateOtherCaseList(@Validated @RequestBody FunctionalCaseTestRequest request) {
|
||||||
Page<Object> page = PageHelper.startPage(request.getCurrent(), request.getPageSize(),
|
Page<Object> page = PageHelper.startPage(request.getCurrent(), request.getPageSize());
|
||||||
StringUtils.isNotBlank(request.getSortString()) ? request.getSortString() : "create_time desc");
|
|
||||||
return PageUtils.setPageInfo(page, functionalTestCaseService.hasAssociatePage(request));
|
return PageUtils.setPageInfo(page, functionalTestCaseService.hasAssociatePage(request));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package io.metersphere.functional.service;
|
package io.metersphere.functional.service;
|
||||||
|
|
||||||
|
import io.metersphere.api.mapper.ApiTestCaseMapper;
|
||||||
import io.metersphere.functional.domain.*;
|
import io.metersphere.functional.domain.*;
|
||||||
import io.metersphere.functional.dto.BaseFunctionalCaseBatchDTO;
|
import io.metersphere.functional.dto.BaseFunctionalCaseBatchDTO;
|
||||||
import io.metersphere.functional.dto.FunctionalCaseHistoryLogDTO;
|
import io.metersphere.functional.dto.FunctionalCaseHistoryLogDTO;
|
||||||
|
@ -46,6 +47,9 @@ public class FunctionalCaseLogService {
|
||||||
@Resource
|
@Resource
|
||||||
private FileAssociationMapper fileAssociationMapper;
|
private FileAssociationMapper fileAssociationMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ApiTestCaseMapper apiTestCaseMapper;
|
||||||
|
|
||||||
|
|
||||||
//TODO 日志(需要修改)
|
//TODO 日志(需要修改)
|
||||||
|
|
||||||
|
@ -282,6 +286,32 @@ public class FunctionalCaseLogService {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取消关联
|
||||||
|
*
|
||||||
|
* @param request request
|
||||||
|
* @return 日志详情
|
||||||
|
*/
|
||||||
|
public LogDTO disassociateCaseLog(DisassociateOtherCaseRequest request) {
|
||||||
|
FunctionalCase functionalCase = functionalCaseMapper.selectByPrimaryKey(request.getCaseId());
|
||||||
|
if (functionalCase != null) {
|
||||||
|
LogDTO dto = new LogDTO(
|
||||||
|
functionalCase.getProjectId(),
|
||||||
|
null,
|
||||||
|
functionalCase.getId(),
|
||||||
|
functionalCase.getCreateUser(),
|
||||||
|
OperationLogType.DISASSOCIATE.name(),
|
||||||
|
OperationLogModule.FUNCTIONAL_CASE,
|
||||||
|
functionalCase.getName());
|
||||||
|
|
||||||
|
dto.setPath("/functional/case/test/disassociate/case");
|
||||||
|
dto.setMethod(HttpMethodConstants.POST.name());
|
||||||
|
dto.setOriginalValue(JSON.toJSONBytes(functionalCase));
|
||||||
|
return dto;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public List<LogDTO> batchEditFunctionalCaseLog(FunctionalCaseBatchEditRequest request) {
|
public List<LogDTO> batchEditFunctionalCaseLog(FunctionalCaseBatchEditRequest request) {
|
||||||
List<String> ids = functionalCaseService.doSelectIds(request, request.getProjectId());
|
List<String> ids = functionalCaseService.doSelectIds(request, request.getProjectId());
|
||||||
|
|
|
@ -5,8 +5,11 @@ import io.metersphere.api.domain.ApiTestCase;
|
||||||
import io.metersphere.api.mapper.ApiDefinitionModuleMapper;
|
import io.metersphere.api.mapper.ApiDefinitionModuleMapper;
|
||||||
import io.metersphere.dto.TestCaseProviderDTO;
|
import io.metersphere.dto.TestCaseProviderDTO;
|
||||||
import io.metersphere.functional.constants.AssociateCaseType;
|
import io.metersphere.functional.constants.AssociateCaseType;
|
||||||
|
import io.metersphere.functional.constants.FunctionalCaseReviewStatus;
|
||||||
|
import io.metersphere.functional.domain.FunctionalCase;
|
||||||
import io.metersphere.functional.domain.FunctionalCaseTest;
|
import io.metersphere.functional.domain.FunctionalCaseTest;
|
||||||
import io.metersphere.functional.dto.FunctionalCaseTestDTO;
|
import io.metersphere.functional.dto.FunctionalCaseTestDTO;
|
||||||
|
import io.metersphere.functional.mapper.FunctionalCaseMapper;
|
||||||
import io.metersphere.functional.mapper.FunctionalCaseTestMapper;
|
import io.metersphere.functional.mapper.FunctionalCaseTestMapper;
|
||||||
import io.metersphere.functional.request.AssociateCaseModuleRequest;
|
import io.metersphere.functional.request.AssociateCaseModuleRequest;
|
||||||
import io.metersphere.functional.request.DisassociateOtherCaseRequest;
|
import io.metersphere.functional.request.DisassociateOtherCaseRequest;
|
||||||
|
@ -15,6 +18,7 @@ import io.metersphere.provider.BaseAssociateApiProvider;
|
||||||
import io.metersphere.request.AssociateCaseModuleProviderRequest;
|
import io.metersphere.request.AssociateCaseModuleProviderRequest;
|
||||||
import io.metersphere.request.AssociateOtherCaseRequest;
|
import io.metersphere.request.AssociateOtherCaseRequest;
|
||||||
import io.metersphere.request.TestCasePageProviderRequest;
|
import io.metersphere.request.TestCasePageProviderRequest;
|
||||||
|
import io.metersphere.sdk.constants.FunctionalCaseExecuteResult;
|
||||||
import io.metersphere.sdk.util.JSON;
|
import io.metersphere.sdk.util.JSON;
|
||||||
import io.metersphere.system.base.BaseTest;
|
import io.metersphere.system.base.BaseTest;
|
||||||
import io.metersphere.system.controller.handler.ResultHolder;
|
import io.metersphere.system.controller.handler.ResultHolder;
|
||||||
|
@ -59,6 +63,9 @@ public class FunctionalTestCaseControllerTests extends BaseTest {
|
||||||
@Resource
|
@Resource
|
||||||
private FunctionalCaseTestMapper functionalCaseTestMapper;
|
private FunctionalCaseTestMapper functionalCaseTestMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private FunctionalCaseMapper functionalCaseMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ApiDefinitionModuleMapper apiDefinitionModuleMapper;
|
private ApiDefinitionModuleMapper apiDefinitionModuleMapper;
|
||||||
|
|
||||||
|
@ -166,6 +173,7 @@ public class FunctionalTestCaseControllerTests extends BaseTest {
|
||||||
@Test
|
@Test
|
||||||
@Order(5)
|
@Order(5)
|
||||||
public void disassociateCaseSuccess() throws Exception {
|
public void disassociateCaseSuccess() throws Exception {
|
||||||
|
addFunctionalCase();
|
||||||
addFunctionalCaseTest();
|
addFunctionalCaseTest();
|
||||||
DisassociateOtherCaseRequest request = new DisassociateOtherCaseRequest();
|
DisassociateOtherCaseRequest request = new DisassociateOtherCaseRequest();
|
||||||
request.setSourceType(AssociateCaseType.API);
|
request.setSourceType(AssociateCaseType.API);
|
||||||
|
@ -261,4 +269,28 @@ public class FunctionalTestCaseControllerTests extends BaseTest {
|
||||||
functionalCaseTestMapper.insert(functionalCaseTest);
|
functionalCaseTestMapper.insert(functionalCaseTest);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void addFunctionalCase() {
|
||||||
|
FunctionalCase functionalCase = new FunctionalCase();
|
||||||
|
functionalCase.setName("测试关联");
|
||||||
|
functionalCase.setNum(100001l);
|
||||||
|
functionalCase.setModuleId("module");
|
||||||
|
functionalCase.setProjectId("gyq-organization-associate-case-test");
|
||||||
|
functionalCase.setDeleted(false);
|
||||||
|
functionalCase.setTemplateId("default_template");
|
||||||
|
functionalCase.setId("gyq_associate_functional_case_id_1");
|
||||||
|
functionalCase.setReviewStatus(FunctionalCaseReviewStatus.UN_REVIEWED.name());
|
||||||
|
functionalCase.setCaseEditType("Text");
|
||||||
|
functionalCase.setPos(500L);
|
||||||
|
functionalCase.setVersionId("12335");
|
||||||
|
functionalCase.setRefId(functionalCase.getId());
|
||||||
|
functionalCase.setLastExecuteResult(FunctionalCaseExecuteResult.UN_EXECUTED.name());
|
||||||
|
functionalCase.setPublicCase(false);
|
||||||
|
functionalCase.setLatest(true);
|
||||||
|
functionalCase.setCreateUser("gyq");
|
||||||
|
functionalCase.setCreateTime(System.currentTimeMillis());
|
||||||
|
functionalCase.setUpdateUser("gyq");
|
||||||
|
functionalCase.setUpdateTime(System.currentTimeMillis());
|
||||||
|
functionalCaseMapper.insertSelective(functionalCase);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue