feat(系统管理): 新增钉钉登陆以及修复脑图新增用例重复问题
This commit is contained in:
parent
22ba5f9f90
commit
18c713238d
|
@ -14,7 +14,7 @@ public class FilterChainUtils {
|
||||||
filterChainDefinitionMap.put("/we_com/info", "anon");
|
filterChainDefinitionMap.put("/we_com/info", "anon");
|
||||||
filterChainDefinitionMap.put("/ding_talk/info", "anon");
|
filterChainDefinitionMap.put("/ding_talk/info", "anon");
|
||||||
filterChainDefinitionMap.put("/sso/callback/we_com", "anon");
|
filterChainDefinitionMap.put("/sso/callback/we_com", "anon");
|
||||||
filterChainDefinitionMap.put("/auth", "anon");
|
filterChainDefinitionMap.put("/sso/callback/ding_talk", "anon");
|
||||||
filterChainDefinitionMap.put("/setting/get/platform/param", "anon");
|
filterChainDefinitionMap.put("/setting/get/platform/param", "anon");
|
||||||
filterChainDefinitionMap.put("/signout", "anon");
|
filterChainDefinitionMap.put("/signout", "anon");
|
||||||
filterChainDefinitionMap.put("/is-login", "anon");
|
filterChainDefinitionMap.put("/is-login", "anon");
|
||||||
|
|
|
@ -301,15 +301,7 @@ public class FunctionalCaseMinderService {
|
||||||
Map<String, String> customFieldNameMap = getCustomFieldNameMap(request);
|
Map<String, String> customFieldNameMap = getCustomFieldNameMap(request);
|
||||||
List<FunctionalCaseChangeRequest> addList = resourceMap.get(OperationLogType.ADD.toString());
|
List<FunctionalCaseChangeRequest> addList = resourceMap.get(OperationLogType.ADD.toString());
|
||||||
List<FunctionalCase> updatePosList = new ArrayList<>();
|
List<FunctionalCase> updatePosList = new ArrayList<>();
|
||||||
CustomFieldExample customFieldExample = new CustomFieldExample();
|
Map<String, Object> defaultValueMap = getDefaultValueMap(request);
|
||||||
customFieldExample.createCriteria().andNameEqualTo("functional_priority").andSceneEqualTo(TemplateScene.FUNCTIONAL.toString()).andInternalEqualTo(true);
|
|
||||||
List<CustomField> defaultCustomFields = customFieldMapper.selectByExample(customFieldExample);
|
|
||||||
CustomField customField = defaultCustomFields.get(0);
|
|
||||||
TemplateDTO defaultTemplateDTO = projectTemplateService.getDefaultTemplateDTO(request.getProjectId(), TemplateScene.FUNCTIONAL.toString());
|
|
||||||
List<TemplateCustomFieldDTO> customFields = defaultTemplateDTO.getCustomFields();
|
|
||||||
Map<String, Object> defaultValueMap = customFields.stream().filter(t -> t.getDefaultValue() != null).collect(Collectors.toMap(TemplateCustomFieldDTO::getFieldId, TemplateCustomFieldDTO::getDefaultValue));
|
|
||||||
defaultValueMap.putIfAbsent(customField.getId(), "P0");
|
|
||||||
|
|
||||||
if (CollectionUtils.isNotEmpty(addList)) {
|
if (CollectionUtils.isNotEmpty(addList)) {
|
||||||
Map<String, List<FunctionalCase>> moduleCaseMap = getModuleCaseMap(addList);
|
Map<String, List<FunctionalCase>> moduleCaseMap = getModuleCaseMap(addList);
|
||||||
for (FunctionalCaseChangeRequest functionalCaseChangeRequest : addList) {
|
for (FunctionalCaseChangeRequest functionalCaseChangeRequest : addList) {
|
||||||
|
@ -399,6 +391,24 @@ public class FunctionalCaseMinderService {
|
||||||
commonNoticeSendService.sendNotice(NoticeConstants.TaskType.FUNCTIONAL_CASE_TASK, NoticeConstants.Event.UPDATE, resources, user, request.getProjectId());
|
commonNoticeSendService.sendNotice(NoticeConstants.TaskType.FUNCTIONAL_CASE_TASK, NoticeConstants.Event.UPDATE, resources, user, request.getProjectId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private Map<String, Object> getDefaultValueMap(FunctionalCaseMinderEditRequest request) {
|
||||||
|
TemplateDTO defaultTemplateDTO = projectTemplateService.getDefaultTemplateDTO(request.getProjectId(), TemplateScene.FUNCTIONAL.toString());
|
||||||
|
List<TemplateCustomFieldDTO> customFields = defaultTemplateDTO.getCustomFields();
|
||||||
|
Map<String, Object> defaultValueMap = new HashMap<>();
|
||||||
|
for (TemplateCustomFieldDTO field : customFields) {
|
||||||
|
if (StringUtils.equalsIgnoreCase(field.getFieldName(), "functional_priority")) {
|
||||||
|
if (field.getDefaultValue() == null) {
|
||||||
|
field.setDefaultValue("P0");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (field.getDefaultValue() != null) {
|
||||||
|
defaultValueMap.put(field.getFieldId(), field.getDefaultValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return defaultValueMap;
|
||||||
|
}
|
||||||
|
|
||||||
private void dealAdditionalNode(FunctionalCaseMinderEditRequest request, String userId, MindAdditionalNodeMapper additionalNodeMapper, Map<String, String> newModuleMap) {
|
private void dealAdditionalNode(FunctionalCaseMinderEditRequest request, String userId, MindAdditionalNodeMapper additionalNodeMapper, Map<String, String> newModuleMap) {
|
||||||
if (CollectionUtils.isNotEmpty(request.getAdditionalNodeList())) {
|
if (CollectionUtils.isNotEmpty(request.getAdditionalNodeList())) {
|
||||||
List<MindAdditionalNode> updatePosList = new ArrayList<>();
|
List<MindAdditionalNode> updatePosList = new ArrayList<>();
|
||||||
|
|
|
@ -30,4 +30,4 @@ export const GetWeComInfoUrl = '/we_com/info'; // 获取企业微信登陆的配
|
||||||
export const GetWeComCallbackUrl = '/sso/callback/we_com'; // 获取企业微信登陆的回调信息
|
export const GetWeComCallbackUrl = '/sso/callback/we_com'; // 获取企业微信登陆的回调信息
|
||||||
export const GetPlatformParamUrl = '/setting/get/platform/param';
|
export const GetPlatformParamUrl = '/setting/get/platform/param';
|
||||||
export const GeDingInfoUrl = '/ding_talk/info'; // 获取企业微信登陆的配置信息
|
export const GeDingInfoUrl = '/ding_talk/info'; // 获取企业微信登陆的配置信息
|
||||||
export const GetDingCallbackUrl = '/auth'; // 获取企业微信登陆的回调信息
|
export const GetDingCallbackUrl = '/sso/callback/ding_talk'; // 获取企业微信登陆的回调信息
|
||||||
|
|
|
@ -23,7 +23,7 @@ export interface WecomInfo {
|
||||||
|
|
||||||
// 企业微信对接信息
|
// 企业微信对接信息
|
||||||
export interface DingInfo {
|
export interface DingInfo {
|
||||||
agentId?: string;
|
appKey?: string;
|
||||||
state?: string;
|
state?: string;
|
||||||
callBack?: string;
|
callBack?: string;
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
redirect_uri: url,
|
redirect_uri: url,
|
||||||
client_id: data.agentId ? data.agentId : '',
|
client_id: data.appKey ? data.appKey : '',
|
||||||
scope: 'openid',
|
scope: 'openid',
|
||||||
response_type: 'code',
|
response_type: 'code',
|
||||||
state: 'fit2cloud-ding-qr',
|
state: 'fit2cloud-ding-qr',
|
||||||
|
@ -45,6 +45,8 @@
|
||||||
},
|
},
|
||||||
async (loginResult) => {
|
async (loginResult) => {
|
||||||
const { redirectUrl, authCode, state } = loginResult;
|
const { redirectUrl, authCode, state } = loginResult;
|
||||||
|
console.log('authCode');
|
||||||
|
console.log(authCode);
|
||||||
const dingCallback = getDingCallback(authCode);
|
const dingCallback = getDingCallback(authCode);
|
||||||
userStore.qrCodeLogin(await dingCallback);
|
userStore.qrCodeLogin(await dingCallback);
|
||||||
Message.success(t('login.form.login.success'));
|
Message.success(t('login.form.login.success'));
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<a-radio-group v-model:active-key="activeName" type="button" class="tabPlatform" @change="handleClick">
|
<a-radio-group v-model:active-key="activeName" type="button" class="tabPlatform" @change="handleClick">
|
||||||
<a-radio value="wecom">{{ t('project.messageManagement.WE_COM') }}</a-radio>
|
<a-radio value="wecom" class="radioOneButton">{{ t('project.messageManagement.WE_COM') }}</a-radio>
|
||||||
<a-radio value="dingtalk">{{ t('project.messageManagement.DING_TALK') }}</a-radio>
|
<a-radio value="dingtalk" class="radioOneButton">{{ t('project.messageManagement.DING_TALK') }}</a-radio>
|
||||||
<!-- <a-tab-pane key="lark" :title="t('project.messageManagement.LARK')"></a-tab-pane>
|
<!-- <a-tab-pane key="lark" :title="t('project.messageManagement.LARK')"></a-tab-pane>
|
||||||
<a-tab-pane key="larksuite" :title="t('project.messageManagement.LARK_SUITE')"></a-tab-pane>-->
|
<a-tab-pane key="larksuite" :title="t('project.messageManagement.LARK_SUITE')"></a-tab-pane>-->
|
||||||
</a-radio-group>
|
</a-radio-group>
|
||||||
|
@ -59,6 +59,8 @@
|
||||||
function handleClick(val: string | number | boolean) {
|
function handleClick(val: string | number | boolean) {
|
||||||
if (typeof val === 'string') {
|
if (typeof val === 'string') {
|
||||||
activeName.value = val;
|
activeName.value = val;
|
||||||
|
} else {
|
||||||
|
activeName.value = 'wecom';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
@ -103,4 +105,13 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.radioOneButton {
|
||||||
|
width: 200px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
align-items: center;
|
||||||
|
font-size: 16px;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
Loading…
Reference in New Issue