feat:(REQ-3167) 修改端的添加和clone时的验证提示语

This commit is contained in:
李龙 2024-12-09 10:51:48 +08:00
parent 4987ba92ef
commit f5af6719df
5 changed files with 55 additions and 18 deletions

View File

@ -43,6 +43,9 @@ public class PageSaasFeatureResourceReq implements IPageReq {
@CriteriaField(field = "authType", operator = Operator.EQ)
private Integer authType;
@CriteriaField(field = "featureName", operator = Operator.EQ)
private String featureName;
/**
* 资源所属端
*/

View File

@ -28,9 +28,10 @@ public enum BizResultCode implements IResultCode {
PAGE_CODE_DUPLICATE("100018", "资源元素code重复,重复的code:{}"),
PARAM_ERROR("100019", "参数错误"),
FEATURE_NAME_EXIST("100020", "菜单组件名字已经存在:{}"),
TERMINAL_EXIST("100021", "新端已经存在:{}"),
TERMINAL_CODE_EXIST("100021", "端code已经存在请修改"),
TERMINAL_NOT_FOUND("100022", "原端不存在:{}"),
FEATURE_CODE_OVER_LENGTH("100023", "组件code不能超过100个字符:{}");
FEATURE_CODE_OVER_LENGTH("100023", "组件code不能超过100个字符:{}"),
TERMINAL_NAME_EXIST("100024", "端名字已经存在,请修改");
private String errorCode;

View File

@ -2,6 +2,7 @@ package cn.axzo.tyr.server.controller.terminal;
import cn.axzo.foundation.dao.support.mysql.MybatisPlusOperatorProcessor;
import cn.axzo.foundation.dao.support.wrapper.Operator;
import cn.axzo.foundation.exception.Axssert;
import cn.axzo.framework.auth.domain.TerminalInfo;
import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.tyr.client.common.enums.FeatureResourceType;
@ -22,7 +23,6 @@ import cn.axzo.tyr.client.model.res.TerminalRes;
import cn.axzo.tyr.server.service.SaasFeatureResourceService;
import cn.axzo.tyr.server.service.TerminalService;
import cn.hutool.json.JSONObject;
import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
@ -37,6 +37,7 @@ import java.util.function.Function;
import java.util.stream.Collectors;
import static cn.axzo.tyr.client.model.res.SaasFeatureResourceResp.ROOT_PARENT_ID;
import static cn.axzo.tyr.server.config.exception.BizResultCode.TERMINAL_NAME_EXIST;
@Slf4j
@RestController
@ -117,9 +118,19 @@ public class TerminalController implements TerminalApi {
.collect(Collectors.toList()));
}
private void checkTerminalName(CreateTerminalReq req) {
List<SaasFeatureResourceResp> newFeatureResources = featureResourceService.list(PageSaasFeatureResourceReq.builder()
.featureResourceTypes(Lists.newArrayList(FeatureResourceType.ROOT.getCode()))
.featureName(req.getName())
.build());
Axssert.check(CollectionUtils.isEmpty(newFeatureResources), TERMINAL_NAME_EXIST);
}
@Override
public ApiResult<Long> create(CreateTerminalReq req) {
checkTerminalName(req);
FeatureResourceTreeSaveReq featureResourceTreeSaveReq = FeatureResourceTreeSaveReq.builder()
.parentId(ROOT_PARENT_ID)
.featureName(req.getName())

View File

@ -96,7 +96,8 @@ import static cn.axzo.tyr.server.config.exception.BizResultCode.FEATURE_CODE_EXI
import static cn.axzo.tyr.server.config.exception.BizResultCode.FEATURE_CODE_OVER_LENGTH;
import static cn.axzo.tyr.server.config.exception.BizResultCode.FEATURE_NAME_EXIST;
import static cn.axzo.tyr.server.config.exception.BizResultCode.FEATURE_RESOURCE_NOT_FOUND;
import static cn.axzo.tyr.server.config.exception.BizResultCode.TERMINAL_EXIST;
import static cn.axzo.tyr.server.config.exception.BizResultCode.TERMINAL_CODE_EXIST;
import static cn.axzo.tyr.server.config.exception.BizResultCode.TERMINAL_NAME_EXIST;
import static cn.axzo.tyr.server.config.exception.BizResultCode.TERMINAL_NOT_FOUND;
import static cn.axzo.tyr.server.event.inner.EventTypeEnum.SAAS_FEATURE_RESOURCE_UPSERT;
import static cn.axzo.tyr.server.repository.entity.SaasFeatureResource.DEFAULT_WORKSPACE_TYPE;
@ -1187,16 +1188,7 @@ public class SaasFeatureResourceServiceImpl extends ServiceImpl<SaasFeatureResou
@CacheEvict(value = SaasFeatureResourceCacheService.CACHE_FEATURE_RESOURCE_TREE,allEntries = true)
public void clone(CloneTerminalReq req) {
List<SaasFeatureResourceResp> newFeatureResources = this.list(PageSaasFeatureResourceReq.builder()
.featureResourceTypes(Lists.newArrayList(FeatureResourceType.ROOT.getCode()))
.terminal(req.getNewTerminalCode())
.build());
Axssert.check(CollectionUtils.isEmpty(newFeatureResources), TERMINAL_EXIST, TERMINAL_EXIST.getErrorMessage(), req.getNewTerminalCode());
List<SaasFeatureResourceResp> fromTerminalFeatureResources = this.list(PageSaasFeatureResourceReq.builder()
.ids(Lists.newArrayList(req.getFromTerminalId()))
.build());
Axssert.checkNotEmpty(fromTerminalFeatureResources, TERMINAL_NOT_FOUND, TERMINAL_NOT_FOUND.getErrorMessage(), req.getFromTerminalId());
check(req);
PageSaasFeatureResourceReq pageSaasFeatureResourceReq = PageSaasFeatureResourceReq.builder()
.parentId(req.getFromTerminalId())
@ -1334,4 +1326,36 @@ public class SaasFeatureResourceServiceImpl extends ServiceImpl<SaasFeatureResou
Axssert.check(100 > newCode.length(), FEATURE_CODE_OVER_LENGTH, FEATURE_CODE_OVER_LENGTH.getErrorMessage(), newCode);
return newCode;
}
private void check(CloneTerminalReq req) {
checkTerminalCode(req);
checkTerminalName(req);
checkFromTerminal(req);
}
private void checkFromTerminal(CloneTerminalReq req) {
List<SaasFeatureResourceResp> fromTerminalFeatureResources = this.list(PageSaasFeatureResourceReq.builder()
.ids(Lists.newArrayList(req.getFromTerminalId()))
.build());
Axssert.checkNotEmpty(fromTerminalFeatureResources, TERMINAL_NOT_FOUND, TERMINAL_NOT_FOUND.getErrorMessage(), req.getFromTerminalId());
}
private void checkTerminalName(CloneTerminalReq req) {
List<SaasFeatureResourceResp> newFeatureResources = this.list(PageSaasFeatureResourceReq.builder()
.featureResourceTypes(Lists.newArrayList(FeatureResourceType.ROOT.getCode()))
.featureName(req.getNewTerminalName())
.build());
Axssert.check(CollectionUtils.isEmpty(newFeatureResources), TERMINAL_NAME_EXIST);
}
private void checkTerminalCode(CloneTerminalReq req) {
List<SaasFeatureResourceResp> newFeatureResources = this.list(PageSaasFeatureResourceReq.builder()
.featureResourceTypes(Lists.newArrayList(FeatureResourceType.ROOT.getCode()))
.terminal(req.getNewTerminalCode())
.build());
Axssert.check(CollectionUtils.isEmpty(newFeatureResources), TERMINAL_CODE_EXIST);
}
}

View File

@ -4,15 +4,13 @@ import cn.axzo.foundation.exception.BusinessException;
import cn.axzo.tyr.base.BaseTest;
import cn.axzo.tyr.base.MysqlDataLoader;
import cn.axzo.tyr.client.model.req.CloneTerminalReq;
import cn.axzo.tyr.client.model.req.SaveOrUpdatePageElementReq;
import cn.axzo.tyr.server.service.SaasFeatureResourceService;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.MockitoAnnotations;
import org.springframework.beans.factory.annotation.Autowired;
import static cn.axzo.tyr.server.config.exception.BizResultCode.PAGE_ELEMENT_ERROR;
import static cn.axzo.tyr.server.config.exception.BizResultCode.TERMINAL_EXIST;
import static cn.axzo.tyr.server.config.exception.BizResultCode.TERMINAL_CODE_EXIST;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
@ -45,7 +43,7 @@ class SaasFeatureResourceServiceImplTest extends BaseTest {
.build();
saasFeatureResourceService.clone(req);
});
assertEquals(businessException.getErrorCode(), TERMINAL_EXIST.getErrorCode());
assertEquals(businessException.getErrorCode(), TERMINAL_CODE_EXIST.getErrorCode());
assertEquals(businessException.getErrorMsg(), "新端已经存在:[3434]");
}
}