refactor(项目设置): 优化查询是否开启项目模板接口
This commit is contained in:
parent
c45bca97fc
commit
ae5cdab4b8
|
@ -22,6 +22,7 @@ import org.springframework.validation.annotation.Validated;
|
|||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author : jianxing
|
||||
|
@ -82,10 +83,17 @@ public class ProjectTemplateController {
|
|||
}
|
||||
|
||||
@GetMapping("/set-default/{projectId}/{id}")
|
||||
@Operation(summary = "设置模板模板")
|
||||
@RequiresPermissions(PermissionConstants.ORGANIZATION_TEMPLATE_UPDATE)
|
||||
@Operation(summary = "设置默认模板")
|
||||
@RequiresPermissions(PermissionConstants.PROJECT_TEMPLATE_UPDATE)
|
||||
@Log(type = OperationLogType.UPDATE, expression = "#msClass.setDefaultTemplateLog(#id)", msClass = ProjectTemplateLogService.class)
|
||||
public void setDefaultTemplate(@PathVariable String projectId, @PathVariable String id) {
|
||||
projectTemplateservice.setDefaultTemplate(projectId, id);
|
||||
}
|
||||
|
||||
@GetMapping("/enable/config/{projectId}")
|
||||
@Operation(summary = "是否启用组织模版")
|
||||
@RequiresPermissions(PermissionConstants.PROJECT_TEMPLATE_READ)
|
||||
public Map<String, Boolean> getProjectTemplateEnableConfig(@PathVariable String projectId) {
|
||||
return projectTemplateservice.getProjectTemplateEnableConfig(projectId);
|
||||
}
|
||||
}
|
|
@ -29,10 +29,7 @@ import org.pf4j.PluginWrapper;
|
|||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
@ -369,4 +366,19 @@ public class ProjectTemplateService extends BaseTemplateService {
|
|||
throw new MSException(PROJECT_TEMPLATE_PERMISSION);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 一个接口返回各个模板是否启用项目模板
|
||||
* @param projectId
|
||||
* @return
|
||||
*/
|
||||
public Map<String, Boolean> getProjectTemplateEnableConfig(String projectId) {
|
||||
ProjectService.checkResourceExist(projectId);
|
||||
ProjectDTO project = projectService.getProjectById(projectId);
|
||||
HashMap<String, Boolean> templateEnableConfig = new HashMap<>();
|
||||
Arrays.stream(TemplateScene.values())
|
||||
.forEach(scene ->
|
||||
templateEnableConfig.put(scene.name(), !isOrganizationTemplateEnable(project.getOrganizationId(), scene.name())));
|
||||
return templateEnableConfig;
|
||||
}
|
||||
}
|
|
@ -56,6 +56,7 @@ public class ProjectTemplateControllerTests extends BaseTest {
|
|||
private static final String BASE_PATH = "/project/template/";
|
||||
private static final String LIST = "list/{0}/{1}";
|
||||
private static final String SET_DEFAULT = "set-default/{0}/{1}";
|
||||
protected static final String PROJECT_TEMPLATE_ENABLE_CONFIG = "enable/config/{0}";
|
||||
|
||||
@Resource
|
||||
private TemplateMapper templateMapper;
|
||||
|
@ -382,7 +383,7 @@ public class ProjectTemplateControllerTests extends BaseTest {
|
|||
// @@校验日志
|
||||
checkLog(addTemplate.getId(), OperationLogType.UPDATE);
|
||||
// @@校验权限
|
||||
requestGetPermissionTest(PermissionConstants.ORGANIZATION_TEMPLATE_UPDATE, SET_DEFAULT, DEFAULT_PROJECT_ID, addTemplate.getId());
|
||||
requestGetPermissionTest(PermissionConstants.PROJECT_TEMPLATE_UPDATE, SET_DEFAULT, DEFAULT_PROJECT_ID, addTemplate.getId());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -418,6 +419,27 @@ public class ProjectTemplateControllerTests extends BaseTest {
|
|||
requestGetPermissionTest(PermissionConstants.PROJECT_TEMPLATE_DELETE, DEFAULT_DELETE, addTemplate.getId());
|
||||
}
|
||||
|
||||
@Test
|
||||
@Order(7)
|
||||
public void getProjectTemplateEnableConfig() throws Exception {
|
||||
changeOrgTemplateEnable(true);
|
||||
// @@请求成功
|
||||
MvcResult mvcResult = this.requestGetWithOkAndReturn(PROJECT_TEMPLATE_ENABLE_CONFIG, DEFAULT_PROJECT_ID);
|
||||
Map resultData = getResultData(mvcResult, Map.class);
|
||||
Assertions.assertEquals(resultData.size(), TemplateScene.values().length);
|
||||
Assertions.assertFalse((Boolean) resultData.get(TemplateScene.FUNCTIONAL.name()));
|
||||
changeOrgTemplateEnable(false);
|
||||
mvcResult = this.requestGetWithOkAndReturn(PROJECT_TEMPLATE_ENABLE_CONFIG, DEFAULT_PROJECT_ID);
|
||||
Assertions.assertTrue((Boolean) getResultData(mvcResult, Map.class).get(TemplateScene.FUNCTIONAL.name()));
|
||||
changeOrgTemplateEnable(true);
|
||||
|
||||
// @@校验 NOT_FOUND 异常
|
||||
assertErrorCode(this.requestGet(PROJECT_TEMPLATE_ENABLE_CONFIG,"1111"), NOT_FOUND);
|
||||
|
||||
// @@校验权限
|
||||
requestGetPermissionTest(PermissionConstants.PROJECT_TEMPLATE_READ, PROJECT_TEMPLATE_ENABLE_CONFIG, DEFAULT_PROJECT_ID);
|
||||
}
|
||||
|
||||
private void assertSetDefaultTemplate(Template template) {
|
||||
String defaultTemplateId = projectTemplateService.getDefaultTemplateId(template.getScopeId(), template.getScene());
|
||||
Assertions.assertEquals(defaultTemplateId, template.getId());
|
||||
|
|
|
@ -21,6 +21,7 @@ import org.springframework.validation.annotation.Validated;
|
|||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @author : jianxing
|
||||
|
@ -88,10 +89,10 @@ public class OrganizationTemplateController {
|
|||
organizationTemplateService.disableOrganizationTemplate(organizationId, scene);
|
||||
}
|
||||
|
||||
@GetMapping("/is-enable/{organizationId}/{scene}")
|
||||
@GetMapping("/enable/config/{organizationId}")
|
||||
@Operation(summary = "是否启用组织模版")
|
||||
@RequiresPermissions(PermissionConstants.ORGANIZATION_TEMPLATE_READ)
|
||||
public boolean isOrganizationTemplateEnable(@PathVariable String organizationId, @PathVariable String scene) {
|
||||
return organizationTemplateService.isOrganizationTemplateEnable(organizationId, scene);
|
||||
public Map<String, Boolean> getOrganizationTemplateEnableConfig(@PathVariable String organizationId) {
|
||||
return organizationTemplateService.getOrganizationTemplateEnableConfig(organizationId);
|
||||
}
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
package io.metersphere.system.service;
|
||||
|
||||
import io.metersphere.sdk.constants.TemplateScene;
|
||||
import io.metersphere.sdk.constants.TemplateScopeType;
|
||||
import io.metersphere.system.dto.sdk.TemplateDTO;
|
||||
import io.metersphere.system.dto.sdk.request.TemplateCustomFieldRequest;
|
||||
|
@ -17,7 +18,10 @@ import org.apache.commons.lang3.StringUtils;
|
|||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static io.metersphere.system.controller.result.SystemResultCode.ORGANIZATION_TEMPLATE_PERMISSION;
|
||||
|
||||
|
@ -175,4 +179,18 @@ public class OrganizationTemplateService extends BaseTemplateService {
|
|||
baseOrganizationParameterService.add(organizationParameter);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 一个接口返回各个模板是否启用组织模板
|
||||
* @param organizationId
|
||||
* @return
|
||||
*/
|
||||
public Map<String, Boolean> getOrganizationTemplateEnableConfig(String organizationId) {
|
||||
OrganizationService.checkResourceExist(organizationId);
|
||||
HashMap<String, Boolean> templateEnableConfig = new HashMap<>();
|
||||
Arrays.stream(TemplateScene.values())
|
||||
.forEach(scene ->
|
||||
templateEnableConfig.put(scene.name(), isOrganizationTemplateEnable(organizationId, scene.name())));
|
||||
return templateEnableConfig;
|
||||
}
|
||||
}
|
|
@ -45,7 +45,7 @@ public class OrganizationTemplateControllerTests extends BaseTest {
|
|||
private static final String BASE_PATH = "/organization/template/";
|
||||
private static final String LIST = "list/{0}/{1}";
|
||||
private static final String DISABLE_ORG_TEMPLATE = "disable/{0}/{1}";
|
||||
protected static final String IS_ORGANIZATION_TEMPLATE_ENABLE = "is-enable/{0}/{1}";
|
||||
protected static final String ORGANIZATION_TEMPLATE_ENABLE_CONFIG = "enable/config/{0}";
|
||||
|
||||
@Resource
|
||||
private TemplateMapper templateMapper;
|
||||
|
@ -159,12 +159,6 @@ public class OrganizationTemplateControllerTests extends BaseTest {
|
|||
});
|
||||
}
|
||||
|
||||
private List<Template> getTemplateByScopeId(String scopeId) {
|
||||
TemplateExample example = new TemplateExample();
|
||||
example.createCriteria().andScopeIdEqualTo(scopeId);
|
||||
return templateMapper.selectByExample(example);
|
||||
}
|
||||
|
||||
private void changeOrgTemplateEnable(boolean enable) {
|
||||
if (enable) {
|
||||
organizationParameterMapper.deleteByPrimaryKey(DEFAULT_ORGANIZATION_ID, OrganizationParameterConstants.ORGANIZATION_FUNCTIONAL_TEMPLATE_ENABLE_KEY);
|
||||
|
@ -386,17 +380,22 @@ public class OrganizationTemplateControllerTests extends BaseTest {
|
|||
|
||||
@Test
|
||||
@Order(8)
|
||||
public void isOrganizationTemplateEnable() throws Exception {
|
||||
public void getOrganizationTemplateEnableConfig() throws Exception {
|
||||
// @@请求成功
|
||||
MvcResult mvcResult = this.requestGetWithOkAndReturn(IS_ORGANIZATION_TEMPLATE_ENABLE, DEFAULT_ORGANIZATION_ID, TemplateScene.FUNCTIONAL.name());
|
||||
Assertions.assertTrue(getResultData(mvcResult, Boolean.class));
|
||||
MvcResult mvcResult = this.requestGetWithOkAndReturn(ORGANIZATION_TEMPLATE_ENABLE_CONFIG, DEFAULT_ORGANIZATION_ID);
|
||||
Map resultData = getResultData(mvcResult, Map.class);
|
||||
Assertions.assertEquals(resultData.size(), TemplateScene.values().length);
|
||||
Assertions.assertTrue((Boolean) resultData.get(TemplateScene.FUNCTIONAL.name()));
|
||||
changeOrgTemplateEnable(false);
|
||||
mvcResult = this.requestGetWithOkAndReturn(IS_ORGANIZATION_TEMPLATE_ENABLE, DEFAULT_ORGANIZATION_ID, TemplateScene.FUNCTIONAL.name());
|
||||
Assertions.assertFalse(getResultData(mvcResult, Boolean.class));
|
||||
mvcResult = this.requestGetWithOkAndReturn(ORGANIZATION_TEMPLATE_ENABLE_CONFIG, DEFAULT_ORGANIZATION_ID);
|
||||
Assertions.assertFalse((Boolean) getResultData(mvcResult, Map.class).get(TemplateScene.FUNCTIONAL.name()));
|
||||
changeOrgTemplateEnable(true);
|
||||
|
||||
// @@校验 NOT_FOUND 异常
|
||||
assertErrorCode(this.requestGet(ORGANIZATION_TEMPLATE_ENABLE_CONFIG,"1111"), NOT_FOUND);
|
||||
|
||||
// @@校验权限
|
||||
requestGetPermissionTest(PermissionConstants.ORGANIZATION_TEMPLATE_READ, IS_ORGANIZATION_TEMPLATE_ENABLE, DEFAULT_ORGANIZATION_ID, TemplateScene.FUNCTIONAL.name());
|
||||
requestGetPermissionTest(PermissionConstants.ORGANIZATION_TEMPLATE_READ, ORGANIZATION_TEMPLATE_ENABLE_CONFIG, DEFAULT_ORGANIZATION_ID);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue