From 3a9e0802c20fe177d0d8f441d404eefd003010df Mon Sep 17 00:00:00 2001 From: "1462719985@qq.com" <1462719985@qq.com> Date: Sun, 28 Apr 2024 21:06:58 +0800 Subject: [PATCH 01/13] =?UTF-8?q?[Improvement][ui]=20improving=20to=20find?= =?UTF-8?q?=20current=20version=20identifier=EF=BC=88#15815=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/UiPluginController.java | 31 ++++++++++---- .../dolphinscheduler/api/enums/Status.java | 1 + .../api/service/UiPluginService.java | 4 ++ .../api/service/impl/UiPluginServiceImpl.java | 33 +++++++++++++++ .../controller/UiPluginControllerTest.java | 39 ++++++++++++++++++ .../dolphinscheduler/dao/entity/Version.java | 38 +++++++++++++++++ .../dao/mapper/VersionMapper.java | 41 +++++++++++++++++++ 7 files changed, 178 insertions(+), 9 deletions(-) create mode 100644 dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/Version.java create mode 100644 dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/VersionMapper.java diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java index 462db26253..6a678edd00 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java @@ -17,8 +17,6 @@ package org.apache.dolphinscheduler.api.controller; -import static org.apache.dolphinscheduler.api.enums.Status.QUERY_PLUGINS_ERROR; - import org.apache.dolphinscheduler.api.exceptions.ApiException; import org.apache.dolphinscheduler.api.service.UiPluginService; import org.apache.dolphinscheduler.api.utils.Result; @@ -30,13 +28,7 @@ import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestAttribute; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseStatus; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -44,6 +36,8 @@ import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.tags.Tag; +import static org.apache.dolphinscheduler.api.enums.Status.*; + /** * ui plugin controller * Some plugins (such as alert plugin) need to provide UI interfaces to users. @@ -85,4 +79,23 @@ public class UiPluginController extends BaseController { Map result = uiPluginService.queryUiPluginDetailById(pluginId); return returnDataList(result); } + + /** + * obtain project version and address + * +// * @param loginUser login user +// * @param userId token for user + * @return product info + */ + @Operation(summary = "queryProductInfo", description = "QUERY_PRODUCT_INFO") + @PostMapping(value = "/queryProductInfo") + @ResponseStatus(HttpStatus.OK) + @ApiException(VERSION_INFO_STATE_ERROR) + public Result queryProductInfo( + @Parameter(hidden = true) @RequestAttribute(value = Constants.SESSION_USER) User loginUser, + @RequestParam(value = "userId") int userId) { + loginUser.setId(1); + Map result = uiPluginService.queryProductInfo(loginUser, userId); + return returnDataList(result); + } } diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/enums/Status.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/enums/Status.java index 9dc12d9ba0..8dd6d78938 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/enums/Status.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/enums/Status.java @@ -298,6 +298,7 @@ public enum Status { QUERY_PROJECT_PREFERENCE_ERROR(10302, "query project preference error", "查询项目偏好设置错误"), UPDATE_PROJECT_PREFERENCE_STATE_ERROR(10303, "Failed to update the state of the project preference", "更新项目偏好设置错误"), + VERSION_INFO_STATE_ERROR(10304, "Failed to obtain project version and address", "获取版本信息错误"), UDF_FUNCTION_NOT_EXIST(20001, "UDF function not found", "UDF函数不存在"), UDF_FUNCTION_EXISTS(20002, "UDF function already exists", "UDF函数已存在"), RESOURCE_NOT_EXIST(20004, "resource not exist", "资源不存在"), diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UiPluginService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UiPluginService.java index 325f1672c4..69b6bd0475 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UiPluginService.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UiPluginService.java @@ -17,7 +17,9 @@ package org.apache.dolphinscheduler.api.service; +import org.apache.dolphinscheduler.api.utils.Result; import org.apache.dolphinscheduler.common.enums.PluginType; +import org.apache.dolphinscheduler.dao.entity.User; import java.util.Map; @@ -30,4 +32,6 @@ public interface UiPluginService { Map queryUiPluginDetailById(int id); + Map queryProductInfo(User loginUser, int userId); + } diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java index a444d11c99..6387b9cbc7 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java @@ -17,11 +17,17 @@ package org.apache.dolphinscheduler.api.service.impl; +import org.apache.commons.lang3.StringUtils; import org.apache.dolphinscheduler.api.enums.Status; +import org.apache.dolphinscheduler.api.exceptions.ServiceException; import org.apache.dolphinscheduler.api.service.UiPluginService; import org.apache.dolphinscheduler.common.constants.Constants; +import org.apache.dolphinscheduler.common.enums.AuthorizationType; import org.apache.dolphinscheduler.common.enums.PluginType; +import org.apache.dolphinscheduler.common.utils.EncryptionUtils; import org.apache.dolphinscheduler.dao.entity.PluginDefine; +import org.apache.dolphinscheduler.dao.entity.User; +import org.apache.dolphinscheduler.dao.entity.Version; import org.apache.dolphinscheduler.dao.mapper.PluginDefineMapper; import org.apache.commons.collections4.CollectionUtils; @@ -32,9 +38,13 @@ import java.util.Map; import lombok.extern.slf4j.Slf4j; + +import org.apache.dolphinscheduler.dao.mapper.VersionMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.ACCESS_TOKEN_CREATE; + /** * ui plugin service impl */ @@ -45,6 +55,9 @@ public class UiPluginServiceImpl extends BaseServiceImpl implements UiPluginServ @Autowired PluginDefineMapper pluginDefineMapper; + @Autowired + VersionMapper versionMapper; + @Override public Map queryUiPluginsByType(PluginType pluginType) { Map result = new HashMap<>(); @@ -82,4 +95,24 @@ public class UiPluginServiceImpl extends BaseServiceImpl implements UiPluginServ return result; } + @Override + public Map queryProductInfo(User loginUser, int userId) { + + Map result = new HashMap<>(); + // check if user is existed + if (userId <= 0 || !(loginUser.getId() == userId)) { + throw new ServiceException(Status.REQUEST_PARAMS_NOT_VALID_ERROR, + "User id: " + userId + " should not less than or equals to 0."); + } + // persist to the database + Version versionInfo = versionMapper.selectById(1); +// if(StringUtils.isBlank(versionInfo.getVersion())){ +// throw new ServiceException(Status.VERSION_INFO_STATE_ERROR); +// } + putMsg(result, Status.SUCCESS); + result.put(Constants.DATA_LIST, versionInfo.getVersion()); + + return result; + } + } diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java index 2e3c36f5cd..9ba9136dc8 100644 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java +++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java @@ -22,6 +22,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.when; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -31,8 +32,13 @@ import org.apache.dolphinscheduler.api.utils.Result; import org.apache.dolphinscheduler.common.constants.Constants; import org.apache.dolphinscheduler.common.enums.PluginType; import org.apache.dolphinscheduler.common.utils.JSONUtils; +import org.apache.dolphinscheduler.dao.entity.User; +import org.mockito.Mockito; +import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.http.MediaType; import org.springframework.test.web.servlet.MvcResult; @@ -41,6 +47,9 @@ import org.springframework.util.MultiValueMap; import com.google.common.collect.ImmutableMap; +import java.util.HashMap; +import java.util.Map; + /** * ui plugin controller test */ @@ -53,6 +62,8 @@ public class UiPluginControllerTest extends AbstractControllerTest { private static final ImmutableMap uiPluginServiceResult = ImmutableMap.of(Constants.STATUS, Status.SUCCESS, Constants.DATA_LIST, "Test Data"); + private static final Logger logger = LoggerFactory.getLogger(TenantControllerTest.class); + @MockBean(name = "uiPluginService") private UiPluginService uiPluginService; @@ -91,4 +102,32 @@ public class UiPluginControllerTest extends AbstractControllerTest { JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); assertThat(actualResponseContent.toString()).isEqualTo(expectResponseContent.toString()); } + + @Test + public void testQueryProductInfo() throws Exception { + Map mockResult = new HashMap<>(); + mockResult.put(Constants.STATUS, Status.SUCCESS); + Mockito.when(uiPluginService.queryProductInfo(Mockito.any(), Mockito.anyInt())).thenReturn(mockResult); + + MultiValueMap paramsMap = new LinkedMultiValueMap<>(); + paramsMap.add("userId", "1"); + + MvcResult mvcResult = mockMvc.perform(post("/ui-plugins/queryProductInfo") + .header(SESSION_ID, sessionId) + .params(paramsMap)) + .andExpect(status().isOk()) + .andExpect(content().contentType(MediaType.APPLICATION_JSON)) + .andReturn(); + + Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); + Assertions.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue()); + logger.info(mvcResult.getResponse().getContentAsString()); + } + + private User getLoginUser() { + User user = new User(); + user.setId(1); + user.setUserName("admin"); + return user; + } } diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/Version.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/Version.java new file mode 100644 index 0000000000..4b68158afe --- /dev/null +++ b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/Version.java @@ -0,0 +1,38 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.dolphinscheduler.dao.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import org.apache.dolphinscheduler.common.enums.UserType; + +import java.util.Date; + +@Data +@TableName("t_ds_version") +public class Version { + + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + private String version; + +} diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/VersionMapper.java b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/VersionMapper.java new file mode 100644 index 0000000000..9c8a9ae7c2 --- /dev/null +++ b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/VersionMapper.java @@ -0,0 +1,41 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.dolphinscheduler.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.dolphinscheduler.dao.entity.User; +import org.apache.dolphinscheduler.dao.entity.UserWithProcessDefinitionCode; +import org.apache.dolphinscheduler.dao.entity.Version; +import org.apache.ibatis.annotations.Param; + +import java.util.Date; +import java.util.List; + +/** + * user mapper interface + */ +public interface VersionMapper extends BaseMapper { + + /** + * select by user id + */ + Version selectById(int id); + +} From 4ec8f9a7bdd675ea272f466260750572ae0247da Mon Sep 17 00:00:00 2001 From: "1462719985@qq.com" <1462719985@qq.com> Date: Tue, 30 Apr 2024 16:55:14 +0800 Subject: [PATCH 02/13] =?UTF-8?q?[Improvement][ui]=20improving=20to=20find?= =?UTF-8?q?=20current=20version=20identifier=EF=BC=88#15815=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/UiPluginController.java | 10 +-- .../api/dto/ProductInfoDto.java | 15 ++--- .../api/service/UiPluginService.java | 3 +- .../api/service/impl/UiPluginServiceImpl.java | 27 ++++---- .../controller/UiPluginControllerTest.java | 6 +- .../content/components/user/use-dropdown.ts | 2 + .../src/layouts/content/use-dataList.ts | 6 ++ .../src/locales/en_US/index.ts | 2 + .../src/locales/en_US/product.ts | 21 +++++++ .../src/locales/en_US/user-dropdown.ts | 1 + .../src/locales/zh_CN/index.ts | 2 + .../src/locales/zh_CN/product.ts | 26 +------- .../src/locales/zh_CN/user-dropdown.ts | 1 + dolphinscheduler-ui/src/router/routes.ts | 9 +++ .../src/service/modules/ui-plugins/index.ts | 9 +++ .../src/views/product/index.tsx | 61 +++++++++++++++++++ 16 files changed, 146 insertions(+), 55 deletions(-) rename dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/Version.java => dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/ProductInfoDto.java (68%) create mode 100644 dolphinscheduler-ui/src/locales/en_US/product.ts rename dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/VersionMapper.java => dolphinscheduler-ui/src/locales/zh_CN/product.ts (54%) create mode 100644 dolphinscheduler-ui/src/views/product/index.tsx diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java index 6a678edd00..1b64883913 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java @@ -17,6 +17,7 @@ package org.apache.dolphinscheduler.api.controller; +import org.apache.dolphinscheduler.api.dto.ProductInfoDto; import org.apache.dolphinscheduler.api.exceptions.ApiException; import org.apache.dolphinscheduler.api.service.UiPluginService; import org.apache.dolphinscheduler.api.utils.Result; @@ -91,11 +92,10 @@ public class UiPluginController extends BaseController { @PostMapping(value = "/queryProductInfo") @ResponseStatus(HttpStatus.OK) @ApiException(VERSION_INFO_STATE_ERROR) - public Result queryProductInfo( + public Result queryProductInfo( @Parameter(hidden = true) @RequestAttribute(value = Constants.SESSION_USER) User loginUser, - @RequestParam(value = "userId") int userId) { - loginUser.setId(1); - Map result = uiPluginService.queryProductInfo(loginUser, userId); - return returnDataList(result); + @RequestParam(value = "userId") Integer userId) { + ProductInfoDto result = uiPluginService.queryProductInfo(loginUser, userId); + return Result.success(result); } } diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/Version.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/ProductInfoDto.java similarity index 68% rename from dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/Version.java rename to dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/ProductInfoDto.java index 4b68158afe..827cb290c9 100644 --- a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/entity/Version.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/ProductInfoDto.java @@ -15,22 +15,19 @@ * limitations under the License. */ -package org.apache.dolphinscheduler.dao.entity; +package org.apache.dolphinscheduler.api.dto; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import org.apache.dolphinscheduler.common.enums.UserType; import java.util.Date; +import java.util.List; +/** + * ProductInfoDto + */ @Data -@TableName("t_ds_version") -public class Version { +public class ProductInfoDto { - @TableId(value = "id", type = IdType.AUTO) private Integer id; private String version; diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UiPluginService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UiPluginService.java index 69b6bd0475..61abbeb5fe 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UiPluginService.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UiPluginService.java @@ -17,6 +17,7 @@ package org.apache.dolphinscheduler.api.service; +import org.apache.dolphinscheduler.api.dto.ProductInfoDto; import org.apache.dolphinscheduler.api.utils.Result; import org.apache.dolphinscheduler.common.enums.PluginType; import org.apache.dolphinscheduler.dao.entity.User; @@ -32,6 +33,6 @@ public interface UiPluginService { Map queryUiPluginDetailById(int id); - Map queryProductInfo(User loginUser, int userId); + ProductInfoDto queryProductInfo(User loginUser, int userId); } diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java index 6387b9cbc7..a8b1060873 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java @@ -18,16 +18,16 @@ package org.apache.dolphinscheduler.api.service.impl; import org.apache.commons.lang3.StringUtils; +import org.apache.dolphinscheduler.api.dto.ProductInfoDto; import org.apache.dolphinscheduler.api.enums.Status; import org.apache.dolphinscheduler.api.exceptions.ServiceException; import org.apache.dolphinscheduler.api.service.UiPluginService; import org.apache.dolphinscheduler.common.constants.Constants; -import org.apache.dolphinscheduler.common.enums.AuthorizationType; import org.apache.dolphinscheduler.common.enums.PluginType; -import org.apache.dolphinscheduler.common.utils.EncryptionUtils; +import org.apache.dolphinscheduler.dao.entity.DsVersion; import org.apache.dolphinscheduler.dao.entity.PluginDefine; import org.apache.dolphinscheduler.dao.entity.User; -import org.apache.dolphinscheduler.dao.entity.Version; +import org.apache.dolphinscheduler.dao.mapper.DsVersionMapper; import org.apache.dolphinscheduler.dao.mapper.PluginDefineMapper; import org.apache.commons.collections4.CollectionUtils; @@ -39,12 +39,9 @@ import java.util.Map; import lombok.extern.slf4j.Slf4j; -import org.apache.dolphinscheduler.dao.mapper.VersionMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import static org.apache.dolphinscheduler.api.constants.ApiFuncIdentificationConstant.ACCESS_TOKEN_CREATE; - /** * ui plugin service impl */ @@ -56,7 +53,7 @@ public class UiPluginServiceImpl extends BaseServiceImpl implements UiPluginServ PluginDefineMapper pluginDefineMapper; @Autowired - VersionMapper versionMapper; + DsVersionMapper dsVersionMapper; @Override public Map queryUiPluginsByType(PluginType pluginType) { @@ -96,22 +93,22 @@ public class UiPluginServiceImpl extends BaseServiceImpl implements UiPluginServ } @Override - public Map queryProductInfo(User loginUser, int userId) { + public ProductInfoDto queryProductInfo(User loginUser, int userId) { - Map result = new HashMap<>(); // check if user is existed if (userId <= 0 || !(loginUser.getId() == userId)) { throw new ServiceException(Status.REQUEST_PARAMS_NOT_VALID_ERROR, "User id: " + userId + " should not less than or equals to 0."); } // persist to the database - Version versionInfo = versionMapper.selectById(1); -// if(StringUtils.isBlank(versionInfo.getVersion())){ -// throw new ServiceException(Status.VERSION_INFO_STATE_ERROR); -// } - putMsg(result, Status.SUCCESS); - result.put(Constants.DATA_LIST, versionInfo.getVersion()); + DsVersion dsVersion = dsVersionMapper.selectById(1); + if(StringUtils.isBlank(dsVersion.getVersion())){ + throw new ServiceException(Status.VERSION_INFO_STATE_ERROR); + } + ProductInfoDto result = new ProductInfoDto(); + result.setId(dsVersion.getId()); + result.setVersion(dsVersion.getVersion()); return result; } diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java index 9ba9136dc8..6944668b9d 100644 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java +++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java @@ -26,6 +26,7 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import org.apache.dolphinscheduler.api.dto.ProductInfoDto; import org.apache.dolphinscheduler.api.enums.Status; import org.apache.dolphinscheduler.api.service.UiPluginService; import org.apache.dolphinscheduler.api.utils.Result; @@ -105,8 +106,9 @@ public class UiPluginControllerTest extends AbstractControllerTest { @Test public void testQueryProductInfo() throws Exception { - Map mockResult = new HashMap<>(); - mockResult.put(Constants.STATUS, Status.SUCCESS); +// Map mockResult = new HashMap<>(); +// mockResult.put(Constants.STATUS, Status.SUCCESS); + ProductInfoDto mockResult = new ProductInfoDto(); Mockito.when(uiPluginService.queryProductInfo(Mockito.any(), Mockito.anyInt())).thenReturn(mockResult); MultiValueMap paramsMap = new LinkedMultiValueMap<>(); diff --git a/dolphinscheduler-ui/src/layouts/content/components/user/use-dropdown.ts b/dolphinscheduler-ui/src/layouts/content/components/user/use-dropdown.ts index 2ef301f5de..77dba80e7f 100644 --- a/dolphinscheduler-ui/src/layouts/content/components/user/use-dropdown.ts +++ b/dolphinscheduler-ui/src/layouts/content/components/user/use-dropdown.ts @@ -31,6 +31,8 @@ export function useDropDown() { useLogout() } else if (key === 'password') { router.push({ path: '/password' }) + } else if (key === 'product') { + router.push({ path: '/product' }) } else if (key === 'profile') { router.push({ path: '/profile' }) } diff --git a/dolphinscheduler-ui/src/layouts/content/use-dataList.ts b/dolphinscheduler-ui/src/layouts/content/use-dataList.ts index 69ebfa6e39..5590395ebe 100644 --- a/dolphinscheduler-ui/src/layouts/content/use-dataList.ts +++ b/dolphinscheduler-ui/src/layouts/content/use-dataList.ts @@ -26,6 +26,7 @@ import { DesktopOutlined, SafetyCertificateOutlined, UserOutlined, + SelectOutlined, LogoutOutlined, FundProjectionScreenOutlined, PartitionOutlined, @@ -372,6 +373,11 @@ export function useDataList() { icon: renderIcon(KeyOutlined), disabled: userStore.getSecurityConfigType !== 'PASSWORD' }, + { + label: t('user_dropdown.product'), + key: 'product', + icon: renderIcon(SelectOutlined), + }, { label: t('user_dropdown.logout'), key: 'logout', diff --git a/dolphinscheduler-ui/src/locales/en_US/index.ts b/dolphinscheduler-ui/src/locales/en_US/index.ts index 096fb87566..c0e88ce9da 100644 --- a/dolphinscheduler-ui/src/locales/en_US/index.ts +++ b/dolphinscheduler-ui/src/locales/en_US/index.ts @@ -32,6 +32,7 @@ import security from '@/locales/en_US/security' import theme from '@/locales/en_US/theme' import user_dropdown from '@/locales/en_US/user-dropdown' import ui_setting from '@/locales/en_US/ui_setting' +import product from "@/locales/en_US/product"; export default { login, @@ -41,6 +42,7 @@ export default { menu, home, password, + product, profile, monitor, resource, diff --git a/dolphinscheduler-ui/src/locales/en_US/product.ts b/dolphinscheduler-ui/src/locales/en_US/product.ts new file mode 100644 index 0000000000..4724ca1f97 --- /dev/null +++ b/dolphinscheduler-ui/src/locales/en_US/product.ts @@ -0,0 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export default { + product: 'Product Info', + product_version: 'Product Version' +} \ No newline at end of file diff --git a/dolphinscheduler-ui/src/locales/en_US/user-dropdown.ts b/dolphinscheduler-ui/src/locales/en_US/user-dropdown.ts index c356b7f5de..1d1bbeb3eb 100644 --- a/dolphinscheduler-ui/src/locales/en_US/user-dropdown.ts +++ b/dolphinscheduler-ui/src/locales/en_US/user-dropdown.ts @@ -18,5 +18,6 @@ export default { profile: 'Profile', password: 'Password', + product: 'Product', logout: 'Logout' } diff --git a/dolphinscheduler-ui/src/locales/zh_CN/index.ts b/dolphinscheduler-ui/src/locales/zh_CN/index.ts index 52224a1022..89c2ce7a7c 100644 --- a/dolphinscheduler-ui/src/locales/zh_CN/index.ts +++ b/dolphinscheduler-ui/src/locales/zh_CN/index.ts @@ -32,6 +32,7 @@ import security from '@/locales/zh_CN/security' import theme from '@/locales/zh_CN/theme' import user_dropdown from '@/locales/zh_CN/user-dropdown' import ui_setting from '@/locales/zh_CN/ui_setting' +import product from "@/locales/zh_CN/product"; export default { login, @@ -41,6 +42,7 @@ export default { menu, home, password, + product, profile, monitor, resource, diff --git a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/VersionMapper.java b/dolphinscheduler-ui/src/locales/zh_CN/product.ts similarity index 54% rename from dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/VersionMapper.java rename to dolphinscheduler-ui/src/locales/zh_CN/product.ts index 9c8a9ae7c2..c98034c73c 100644 --- a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/mapper/VersionMapper.java +++ b/dolphinscheduler-ui/src/locales/zh_CN/product.ts @@ -15,27 +15,7 @@ * limitations under the License. */ -package org.apache.dolphinscheduler.dao.mapper; - -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import org.apache.dolphinscheduler.dao.entity.User; -import org.apache.dolphinscheduler.dao.entity.UserWithProcessDefinitionCode; -import org.apache.dolphinscheduler.dao.entity.Version; -import org.apache.ibatis.annotations.Param; - -import java.util.Date; -import java.util.List; - -/** - * user mapper interface - */ -public interface VersionMapper extends BaseMapper { - - /** - * select by user id - */ - Version selectById(int id); - +export default { + product: '产品信息', + product_version: '产品版本' } diff --git a/dolphinscheduler-ui/src/locales/zh_CN/user-dropdown.ts b/dolphinscheduler-ui/src/locales/zh_CN/user-dropdown.ts index 778d3f008e..c2708235fe 100644 --- a/dolphinscheduler-ui/src/locales/zh_CN/user-dropdown.ts +++ b/dolphinscheduler-ui/src/locales/zh_CN/user-dropdown.ts @@ -18,5 +18,6 @@ export default { profile: '用户信息', password: '密码管理', + product: '产品信息', logout: '退出登录' } diff --git a/dolphinscheduler-ui/src/router/routes.ts b/dolphinscheduler-ui/src/router/routes.ts index 9d91c74afa..118c26fe3f 100644 --- a/dolphinscheduler-ui/src/router/routes.ts +++ b/dolphinscheduler-ui/src/router/routes.ts @@ -68,6 +68,15 @@ const basePage: RouteRecordRaw[] = [ title: '用户信息', auth: [] } + }, + { + path: '/product', + name: 'product', + component: components['product'], + meta: { + title: '产品信息', + auth: [] + } } ] }, diff --git a/dolphinscheduler-ui/src/service/modules/ui-plugins/index.ts b/dolphinscheduler-ui/src/service/modules/ui-plugins/index.ts index 1a9e99ae52..2d1ab3e542 100644 --- a/dolphinscheduler-ui/src/service/modules/ui-plugins/index.ts +++ b/dolphinscheduler-ui/src/service/modules/ui-plugins/index.ts @@ -17,6 +17,7 @@ import { axios } from '@/service/service' import { PluginTypeReq, IPluginId } from './types' +import { UserIdReq } from "@/service/modules/projects/types"; export function queryUiPluginsByType(params: PluginTypeReq): any { return axios({ @@ -32,3 +33,11 @@ export function queryUiPluginDetailById(id: IPluginId): any { method: 'get' }) } + +export function queryProductInfo(params: UserIdReq): any { + return axios({ + url: '/ui-plugins/queryProductInfo', + method: 'post', + params + }) +} diff --git a/dolphinscheduler-ui/src/views/product/index.tsx b/dolphinscheduler-ui/src/views/product/index.tsx new file mode 100644 index 0000000000..5388497ae1 --- /dev/null +++ b/dolphinscheduler-ui/src/views/product/index.tsx @@ -0,0 +1,61 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { useI18n } from 'vue-i18n' +import {defineComponent, getCurrentInstance, onMounted, ref, toRefs} from 'vue' +import Card from '@/components/card' +import { NSelect, NSpace, NSwitch } from 'naive-ui' +import { useUserStore } from '@/store/user/user' +import { queryProductInfo } from '@/service/modules/ui-plugins' + +const userStore = useUserStore() +const product = defineComponent({ + name: 'product', + setup() { + const info: any = ref('') + const queryProduct = async (userId: number) => { + const productInfo = await queryProductInfo( + { userId }) + if (!productInfo) throw Error() + info.value = productInfo.version + } + onMounted( () => { + queryProduct(userStore.getUserInfo.id) + }) + + return { queryProduct, info } + }, + render() { + const { t } = useI18n() + const { info } = this + return ( +
+ + + + {t('product.product_version')} +
{ info }
+
+
+
+
+ ) + } +}) +export default product From f808e70a7026b02aa332e1f0a77f92efbb688cc8 Mon Sep 17 00:00:00 2001 From: "1462719985@qq.com" <1462719985@qq.com> Date: Tue, 30 Apr 2024 17:54:46 +0800 Subject: [PATCH 03/13] =?UTF-8?q?[Improvement][ui]=20improving=20to=20find?= =?UTF-8?q?=20current=20version=20identifier=EF=BC=88#15815=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/UiPluginController.java | 9 ++++++++- .../dolphinscheduler/api/service/UiPluginService.java | 1 - .../api/controller/UiPluginControllerTest.java | 2 -- .../layouts/content/components/user/use-dropdown.ts | 4 ++-- .../src/layouts/content/use-dataList.ts | 4 ++-- .../src/locales/en_US/{product.ts => about.ts} | 4 ++-- dolphinscheduler-ui/src/locales/en_US/index.ts | 4 ++-- dolphinscheduler-ui/src/locales/en_US/user-dropdown.ts | 2 +- .../src/locales/zh_CN/{product.ts => about.ts} | 4 ++-- dolphinscheduler-ui/src/locales/zh_CN/index.ts | 4 ++-- dolphinscheduler-ui/src/locales/zh_CN/user-dropdown.ts | 2 +- dolphinscheduler-ui/src/router/routes.ts | 6 +++--- .../src/views/{product => about}/index.tsx | 10 +++++----- 13 files changed, 30 insertions(+), 26 deletions(-) rename dolphinscheduler-ui/src/locales/en_US/{product.ts => about.ts} (92%) rename dolphinscheduler-ui/src/locales/zh_CN/{product.ts => about.ts} (93%) rename dolphinscheduler-ui/src/views/{product => about}/index.tsx (91%) diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java index 1b64883913..a084251744 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java @@ -29,13 +29,20 @@ import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; -import org.springframework.web.bind.annotation.*; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameters; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestAttribute; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestParam; import static org.apache.dolphinscheduler.api.enums.Status.*; diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UiPluginService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UiPluginService.java index 61abbeb5fe..7b843c017f 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UiPluginService.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UiPluginService.java @@ -18,7 +18,6 @@ package org.apache.dolphinscheduler.api.service; import org.apache.dolphinscheduler.api.dto.ProductInfoDto; -import org.apache.dolphinscheduler.api.utils.Result; import org.apache.dolphinscheduler.common.enums.PluginType; import org.apache.dolphinscheduler.dao.entity.User; diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java index 6944668b9d..68562abde6 100644 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java +++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java @@ -106,8 +106,6 @@ public class UiPluginControllerTest extends AbstractControllerTest { @Test public void testQueryProductInfo() throws Exception { -// Map mockResult = new HashMap<>(); -// mockResult.put(Constants.STATUS, Status.SUCCESS); ProductInfoDto mockResult = new ProductInfoDto(); Mockito.when(uiPluginService.queryProductInfo(Mockito.any(), Mockito.anyInt())).thenReturn(mockResult); diff --git a/dolphinscheduler-ui/src/layouts/content/components/user/use-dropdown.ts b/dolphinscheduler-ui/src/layouts/content/components/user/use-dropdown.ts index 77dba80e7f..e31be03250 100644 --- a/dolphinscheduler-ui/src/layouts/content/components/user/use-dropdown.ts +++ b/dolphinscheduler-ui/src/layouts/content/components/user/use-dropdown.ts @@ -31,8 +31,8 @@ export function useDropDown() { useLogout() } else if (key === 'password') { router.push({ path: '/password' }) - } else if (key === 'product') { - router.push({ path: '/product' }) + } else if (key === 'about') { + router.push({ path: '/about' }) } else if (key === 'profile') { router.push({ path: '/profile' }) } diff --git a/dolphinscheduler-ui/src/layouts/content/use-dataList.ts b/dolphinscheduler-ui/src/layouts/content/use-dataList.ts index 5590395ebe..e050ebd2aa 100644 --- a/dolphinscheduler-ui/src/layouts/content/use-dataList.ts +++ b/dolphinscheduler-ui/src/layouts/content/use-dataList.ts @@ -374,8 +374,8 @@ export function useDataList() { disabled: userStore.getSecurityConfigType !== 'PASSWORD' }, { - label: t('user_dropdown.product'), - key: 'product', + label: t('user_dropdown.about'), + key: 'about', icon: renderIcon(SelectOutlined), }, { diff --git a/dolphinscheduler-ui/src/locales/en_US/product.ts b/dolphinscheduler-ui/src/locales/en_US/about.ts similarity index 92% rename from dolphinscheduler-ui/src/locales/en_US/product.ts rename to dolphinscheduler-ui/src/locales/en_US/about.ts index 4724ca1f97..4d8a8569e0 100644 --- a/dolphinscheduler-ui/src/locales/en_US/product.ts +++ b/dolphinscheduler-ui/src/locales/en_US/about.ts @@ -16,6 +16,6 @@ */ export default { - product: 'Product Info', - product_version: 'Product Version' + about: 'About', + about_version: 'Product Version' } \ No newline at end of file diff --git a/dolphinscheduler-ui/src/locales/en_US/index.ts b/dolphinscheduler-ui/src/locales/en_US/index.ts index c0e88ce9da..f6296d4274 100644 --- a/dolphinscheduler-ui/src/locales/en_US/index.ts +++ b/dolphinscheduler-ui/src/locales/en_US/index.ts @@ -32,7 +32,7 @@ import security from '@/locales/en_US/security' import theme from '@/locales/en_US/theme' import user_dropdown from '@/locales/en_US/user-dropdown' import ui_setting from '@/locales/en_US/ui_setting' -import product from "@/locales/en_US/product"; +import about from "@/locales/en_US/about"; export default { login, @@ -42,7 +42,7 @@ export default { menu, home, password, - product, + about, profile, monitor, resource, diff --git a/dolphinscheduler-ui/src/locales/en_US/user-dropdown.ts b/dolphinscheduler-ui/src/locales/en_US/user-dropdown.ts index 1d1bbeb3eb..5ee8ed91c3 100644 --- a/dolphinscheduler-ui/src/locales/en_US/user-dropdown.ts +++ b/dolphinscheduler-ui/src/locales/en_US/user-dropdown.ts @@ -18,6 +18,6 @@ export default { profile: 'Profile', password: 'Password', - product: 'Product', + about: 'About', logout: 'Logout' } diff --git a/dolphinscheduler-ui/src/locales/zh_CN/product.ts b/dolphinscheduler-ui/src/locales/zh_CN/about.ts similarity index 93% rename from dolphinscheduler-ui/src/locales/zh_CN/product.ts rename to dolphinscheduler-ui/src/locales/zh_CN/about.ts index c98034c73c..8db2472168 100644 --- a/dolphinscheduler-ui/src/locales/zh_CN/product.ts +++ b/dolphinscheduler-ui/src/locales/zh_CN/about.ts @@ -16,6 +16,6 @@ */ export default { - product: '产品信息', - product_version: '产品版本' + about: '关于产品', + about_version: '产品版本' } diff --git a/dolphinscheduler-ui/src/locales/zh_CN/index.ts b/dolphinscheduler-ui/src/locales/zh_CN/index.ts index 89c2ce7a7c..55209876b0 100644 --- a/dolphinscheduler-ui/src/locales/zh_CN/index.ts +++ b/dolphinscheduler-ui/src/locales/zh_CN/index.ts @@ -32,7 +32,7 @@ import security from '@/locales/zh_CN/security' import theme from '@/locales/zh_CN/theme' import user_dropdown from '@/locales/zh_CN/user-dropdown' import ui_setting from '@/locales/zh_CN/ui_setting' -import product from "@/locales/zh_CN/product"; +import about from "@/locales/zh_CN/about"; export default { login, @@ -42,7 +42,7 @@ export default { menu, home, password, - product, + about, profile, monitor, resource, diff --git a/dolphinscheduler-ui/src/locales/zh_CN/user-dropdown.ts b/dolphinscheduler-ui/src/locales/zh_CN/user-dropdown.ts index c2708235fe..75688eb84a 100644 --- a/dolphinscheduler-ui/src/locales/zh_CN/user-dropdown.ts +++ b/dolphinscheduler-ui/src/locales/zh_CN/user-dropdown.ts @@ -18,6 +18,6 @@ export default { profile: '用户信息', password: '密码管理', - product: '产品信息', + about: '产品信息', logout: '退出登录' } diff --git a/dolphinscheduler-ui/src/router/routes.ts b/dolphinscheduler-ui/src/router/routes.ts index 118c26fe3f..e17c7e1b93 100644 --- a/dolphinscheduler-ui/src/router/routes.ts +++ b/dolphinscheduler-ui/src/router/routes.ts @@ -70,9 +70,9 @@ const basePage: RouteRecordRaw[] = [ } }, { - path: '/product', - name: 'product', - component: components['product'], + path: '/about', + name: 'about', + component: components['about'], meta: { title: '产品信息', auth: [] diff --git a/dolphinscheduler-ui/src/views/product/index.tsx b/dolphinscheduler-ui/src/views/about/index.tsx similarity index 91% rename from dolphinscheduler-ui/src/views/product/index.tsx rename to dolphinscheduler-ui/src/views/about/index.tsx index 5388497ae1..e9fb62542e 100644 --- a/dolphinscheduler-ui/src/views/product/index.tsx +++ b/dolphinscheduler-ui/src/views/about/index.tsx @@ -23,8 +23,8 @@ import { useUserStore } from '@/store/user/user' import { queryProductInfo } from '@/service/modules/ui-plugins' const userStore = useUserStore() -const product = defineComponent({ - name: 'product', +const about = defineComponent({ + name: 'about', setup() { const info: any = ref('') const queryProduct = async (userId: number) => { @@ -45,11 +45,11 @@ const product = defineComponent({ return (
- {t('product.product_version')} + {t('about.about_version')}
{ info }
@@ -58,4 +58,4 @@ const product = defineComponent({ ) } }) -export default product +export default about From b9fedfc61a1c276bc68449d88496b32214e01a0c Mon Sep 17 00:00:00 2001 From: "1462719985@qq.com" <1462719985@qq.com> Date: Mon, 6 May 2024 19:01:02 +0800 Subject: [PATCH 04/13] =?UTF-8?q?[Improvement][ui]=20improving=20to=20find?= =?UTF-8?q?=20current=20version=20identifier=EF=BC=88#15815=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dolphinscheduler/api/controller/UiPluginController.java | 3 +++ dolphinscheduler-ui/src/views/about/index.tsx | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java index a084251744..853af11f0c 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java @@ -17,6 +17,9 @@ package org.apache.dolphinscheduler.api.controller; +import static org.apache.dolphinscheduler.api.enums.Status.QUERY_PLUGINS_ERROR; +import static org.apache.dolphinscheduler.api.enums.Status.VERSION_INFO_STATE_ERROR; + import org.apache.dolphinscheduler.api.dto.ProductInfoDto; import org.apache.dolphinscheduler.api.exceptions.ApiException; import org.apache.dolphinscheduler.api.service.UiPluginService; diff --git a/dolphinscheduler-ui/src/views/about/index.tsx b/dolphinscheduler-ui/src/views/about/index.tsx index e9fb62542e..45b10e86ed 100644 --- a/dolphinscheduler-ui/src/views/about/index.tsx +++ b/dolphinscheduler-ui/src/views/about/index.tsx @@ -21,6 +21,7 @@ import Card from '@/components/card' import { NSelect, NSpace, NSwitch } from 'naive-ui' import { useUserStore } from '@/store/user/user' import { queryProductInfo } from '@/service/modules/ui-plugins' +import {UserInfoRes} from "@/service/modules/users/types"; const userStore = useUserStore() const about = defineComponent({ @@ -34,7 +35,7 @@ const about = defineComponent({ info.value = productInfo.version } onMounted( () => { - queryProduct(userStore.getUserInfo.id) + queryProduct((userStore.getUserInfo as UserInfoRes).id) }) return { queryProduct, info } From c02e79ddc52676a9b75b0df0baf4f64c94b4b0f2 Mon Sep 17 00:00:00 2001 From: "1462719985@qq.com" <1462719985@qq.com> Date: Tue, 7 May 2024 17:44:40 +0800 Subject: [PATCH 05/13] =?UTF-8?q?[Improvement][ui]=20improving=20to=20find?= =?UTF-8?q?=20current=20version=20identifier=EF=BC=88#15815=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dolphinscheduler/api/controller/UiPluginController.java | 1 - 1 file changed, 1 deletion(-) diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java index 853af11f0c..043577f28c 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java @@ -29,7 +29,6 @@ import org.apache.dolphinscheduler.common.enums.PluginType; import org.apache.dolphinscheduler.dao.entity.User; import java.util.Map; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; From db81822c21b3a0dfe4014cd14b5d1eaf7edd9f7d Mon Sep 17 00:00:00 2001 From: "1462719985@qq.com" <1462719985@qq.com> Date: Wed, 8 May 2024 17:26:01 +0800 Subject: [PATCH 06/13] =?UTF-8?q?[Improvement][ui]=20improving=20to=20find?= =?UTF-8?q?=20current=20version=20identifier=EF=BC=88#15815=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/UiPluginController.java | 5 ++--- .../api/service/UiPluginService.java | 2 +- .../api/service/impl/UiPluginServiceImpl.java | 20 +++++++++---------- .../controller/UiPluginControllerTest.java | 10 +--------- .../src/service/modules/ui-plugins/index.ts | 5 ++--- dolphinscheduler-ui/src/views/about/index.tsx | 7 +++---- 6 files changed, 19 insertions(+), 30 deletions(-) diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java index 043577f28c..29feaf328a 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java @@ -102,9 +102,8 @@ public class UiPluginController extends BaseController { @ResponseStatus(HttpStatus.OK) @ApiException(VERSION_INFO_STATE_ERROR) public Result queryProductInfo( - @Parameter(hidden = true) @RequestAttribute(value = Constants.SESSION_USER) User loginUser, - @RequestParam(value = "userId") Integer userId) { - ProductInfoDto result = uiPluginService.queryProductInfo(loginUser, userId); + @Parameter(hidden = true) @RequestAttribute(value = Constants.SESSION_USER) User loginUser) { + ProductInfoDto result = uiPluginService.queryProductInfo(loginUser); return Result.success(result); } } diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UiPluginService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UiPluginService.java index 7b843c017f..fc70fbbc86 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UiPluginService.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UiPluginService.java @@ -32,6 +32,6 @@ public interface UiPluginService { Map queryUiPluginDetailById(int id); - ProductInfoDto queryProductInfo(User loginUser, int userId); + ProductInfoDto queryProductInfo(User loginUser); } diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java index a8b1060873..6aba6c839b 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java @@ -39,6 +39,7 @@ import java.util.Map; import lombok.extern.slf4j.Slf4j; +import org.apache.dolphinscheduler.dao.repository.DsVersionDao; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -55,6 +56,11 @@ public class UiPluginServiceImpl extends BaseServiceImpl implements UiPluginServ @Autowired DsVersionMapper dsVersionMapper; + @Autowired + private DsVersionDao dsVersionDao; + + private volatile String dsVersion; + @Override public Map queryUiPluginsByType(PluginType pluginType) { Map result = new HashMap<>(); @@ -93,22 +99,16 @@ public class UiPluginServiceImpl extends BaseServiceImpl implements UiPluginServ } @Override - public ProductInfoDto queryProductInfo(User loginUser, int userId) { + public ProductInfoDto queryProductInfo(User loginUser) { - // check if user is existed - if (userId <= 0 || !(loginUser.getId() == userId)) { - throw new ServiceException(Status.REQUEST_PARAMS_NOT_VALID_ERROR, - "User id: " + userId + " should not less than or equals to 0."); - } // persist to the database - DsVersion dsVersion = dsVersionMapper.selectById(1); + dsVersion = dsVersionDao.selectVersion().map(DsVersion::getVersion).orElse("unknown"); - if(StringUtils.isBlank(dsVersion.getVersion())){ + if(StringUtils.isBlank(dsVersion)){ throw new ServiceException(Status.VERSION_INFO_STATE_ERROR); } ProductInfoDto result = new ProductInfoDto(); - result.setId(dsVersion.getId()); - result.setVersion(dsVersion.getVersion()); + result.setVersion(dsVersion); return result; } diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java index 68562abde6..5c753cd7ac 100644 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java +++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java @@ -107,7 +107,7 @@ public class UiPluginControllerTest extends AbstractControllerTest { @Test public void testQueryProductInfo() throws Exception { ProductInfoDto mockResult = new ProductInfoDto(); - Mockito.when(uiPluginService.queryProductInfo(Mockito.any(), Mockito.anyInt())).thenReturn(mockResult); + Mockito.when(uiPluginService.queryProductInfo(Mockito.any())).thenReturn(mockResult); MultiValueMap paramsMap = new LinkedMultiValueMap<>(); paramsMap.add("userId", "1"); @@ -121,13 +121,5 @@ public class UiPluginControllerTest extends AbstractControllerTest { Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class); Assertions.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue()); - logger.info(mvcResult.getResponse().getContentAsString()); - } - - private User getLoginUser() { - User user = new User(); - user.setId(1); - user.setUserName("admin"); - return user; } } diff --git a/dolphinscheduler-ui/src/service/modules/ui-plugins/index.ts b/dolphinscheduler-ui/src/service/modules/ui-plugins/index.ts index 2d1ab3e542..41dfa3703c 100644 --- a/dolphinscheduler-ui/src/service/modules/ui-plugins/index.ts +++ b/dolphinscheduler-ui/src/service/modules/ui-plugins/index.ts @@ -34,10 +34,9 @@ export function queryUiPluginDetailById(id: IPluginId): any { }) } -export function queryProductInfo(params: UserIdReq): any { +export function queryProductInfo(): any { return axios({ url: '/ui-plugins/queryProductInfo', - method: 'post', - params + method: 'post' }) } diff --git a/dolphinscheduler-ui/src/views/about/index.tsx b/dolphinscheduler-ui/src/views/about/index.tsx index 45b10e86ed..cac6363e9d 100644 --- a/dolphinscheduler-ui/src/views/about/index.tsx +++ b/dolphinscheduler-ui/src/views/about/index.tsx @@ -28,14 +28,13 @@ const about = defineComponent({ name: 'about', setup() { const info: any = ref('') - const queryProduct = async (userId: number) => { - const productInfo = await queryProductInfo( - { userId }) + const queryProduct = async () => { + const productInfo = await queryProductInfo() if (!productInfo) throw Error() info.value = productInfo.version } onMounted( () => { - queryProduct((userStore.getUserInfo as UserInfoRes).id) + queryProduct() }) return { queryProduct, info } From a524f5e62e8d9cb3f171c5375d8264e764152e1a Mon Sep 17 00:00:00 2001 From: "1462719985@qq.com" <1462719985@qq.com> Date: Sat, 11 May 2024 18:18:29 +0800 Subject: [PATCH 07/13] =?UTF-8?q?[Improvement][ui]=20improving=20to=20find?= =?UTF-8?q?=20current=20version=20identifier=EF=BC=88#15815=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/service/impl/UiPluginServiceImpl.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java index 6aba6c839b..a6c2e9e47e 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java @@ -27,7 +27,6 @@ import org.apache.dolphinscheduler.common.enums.PluginType; import org.apache.dolphinscheduler.dao.entity.DsVersion; import org.apache.dolphinscheduler.dao.entity.PluginDefine; import org.apache.dolphinscheduler.dao.entity.User; -import org.apache.dolphinscheduler.dao.mapper.DsVersionMapper; import org.apache.dolphinscheduler.dao.mapper.PluginDefineMapper; import org.apache.commons.collections4.CollectionUtils; @@ -53,9 +52,6 @@ public class UiPluginServiceImpl extends BaseServiceImpl implements UiPluginServ @Autowired PluginDefineMapper pluginDefineMapper; - @Autowired - DsVersionMapper dsVersionMapper; - @Autowired private DsVersionDao dsVersionDao; From a18869937f1575dba76c283e746b48d77d6348f0 Mon Sep 17 00:00:00 2001 From: "1462719985@qq.com" <1462719985@qq.com> Date: Sat, 11 May 2024 18:35:23 +0800 Subject: [PATCH 08/13] =?UTF-8?q?[Improvement][ui]=20improving=20to=20find?= =?UTF-8?q?=20current=20version=20identifier=EF=BC=88#15815=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dolphinscheduler/api/controller/UiPluginController.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java index 29feaf328a..b5d3a737a9 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java @@ -92,9 +92,6 @@ public class UiPluginController extends BaseController { /** * obtain project version and address - * -// * @param loginUser login user -// * @param userId token for user * @return product info */ @Operation(summary = "queryProductInfo", description = "QUERY_PRODUCT_INFO") From 1e7b930fe51557452caf4df5416e37a21f82ecb4 Mon Sep 17 00:00:00 2001 From: "1462719985@qq.com" <1462719985@qq.com> Date: Wed, 15 May 2024 14:32:30 +0800 Subject: [PATCH 09/13] =?UTF-8?q?[Improvement][ui]=20improving=20to=20find?= =?UTF-8?q?=20current=20version=20identifier=EF=BC=88#15815=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/service/modules/ui-plugins/index.ts | 1 - dolphinscheduler-ui/src/views/about/index.tsx | 7 ++----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/dolphinscheduler-ui/src/service/modules/ui-plugins/index.ts b/dolphinscheduler-ui/src/service/modules/ui-plugins/index.ts index 41dfa3703c..825da55d77 100644 --- a/dolphinscheduler-ui/src/service/modules/ui-plugins/index.ts +++ b/dolphinscheduler-ui/src/service/modules/ui-plugins/index.ts @@ -17,7 +17,6 @@ import { axios } from '@/service/service' import { PluginTypeReq, IPluginId } from './types' -import { UserIdReq } from "@/service/modules/projects/types"; export function queryUiPluginsByType(params: PluginTypeReq): any { return axios({ diff --git a/dolphinscheduler-ui/src/views/about/index.tsx b/dolphinscheduler-ui/src/views/about/index.tsx index cac6363e9d..0bdc598236 100644 --- a/dolphinscheduler-ui/src/views/about/index.tsx +++ b/dolphinscheduler-ui/src/views/about/index.tsx @@ -16,14 +16,11 @@ */ import { useI18n } from 'vue-i18n' -import {defineComponent, getCurrentInstance, onMounted, ref, toRefs} from 'vue' +import { defineComponent, onMounted, ref} from 'vue' import Card from '@/components/card' -import { NSelect, NSpace, NSwitch } from 'naive-ui' -import { useUserStore } from '@/store/user/user' +import { NSpace } from 'naive-ui' import { queryProductInfo } from '@/service/modules/ui-plugins' -import {UserInfoRes} from "@/service/modules/users/types"; -const userStore = useUserStore() const about = defineComponent({ name: 'about', setup() { From d8b674179dd06904332374361e8656246c70f30c Mon Sep 17 00:00:00 2001 From: "1462719985@qq.com" <1462719985@qq.com> Date: Wed, 22 May 2024 19:14:49 +0800 Subject: [PATCH 10/13] =?UTF-8?q?[Improvement][ui]=20improving=20to=20find?= =?UTF-8?q?=20current=20version=20identifier=EF=BC=88#15815=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/controller/UiPluginController.java | 2 +- .../api/service/impl/UiPluginServiceImpl.java | 18 +++++++++++------- .../api/controller/UiPluginControllerTest.java | 2 +- .../src/service/modules/ui-plugins/index.ts | 2 +- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java index b5d3a737a9..1e39761020 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java @@ -95,7 +95,7 @@ public class UiPluginController extends BaseController { * @return product info */ @Operation(summary = "queryProductInfo", description = "QUERY_PRODUCT_INFO") - @PostMapping(value = "/queryProductInfo") + @GetMapping(value = "/queryProductInfo") @ResponseStatus(HttpStatus.OK) @ApiException(VERSION_INFO_STATE_ERROR) public Result queryProductInfo( diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java index a6c2e9e47e..90239f5d52 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java @@ -42,6 +42,8 @@ import org.apache.dolphinscheduler.dao.repository.DsVersionDao; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.PostConstruct; + /** * ui plugin service impl */ @@ -55,7 +57,15 @@ public class UiPluginServiceImpl extends BaseServiceImpl implements UiPluginServ @Autowired private DsVersionDao dsVersionDao; - private volatile String dsVersion; + private String dsVersion; + + @PostConstruct + private void init() { + dsVersion = dsVersionDao.selectVersion().map(DsVersion::getVersion).orElse("unknown"); + if(StringUtils.isBlank(dsVersion)){ + throw new ServiceException(Status.VERSION_INFO_STATE_ERROR); + } + } @Override public Map queryUiPluginsByType(PluginType pluginType) { @@ -96,13 +106,7 @@ public class UiPluginServiceImpl extends BaseServiceImpl implements UiPluginServ @Override public ProductInfoDto queryProductInfo(User loginUser) { - // persist to the database - dsVersion = dsVersionDao.selectVersion().map(DsVersion::getVersion).orElse("unknown"); - - if(StringUtils.isBlank(dsVersion)){ - throw new ServiceException(Status.VERSION_INFO_STATE_ERROR); - } ProductInfoDto result = new ProductInfoDto(); result.setVersion(dsVersion); return result; diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java index 5c753cd7ac..4e846c678a 100644 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java +++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java @@ -112,7 +112,7 @@ public class UiPluginControllerTest extends AbstractControllerTest { MultiValueMap paramsMap = new LinkedMultiValueMap<>(); paramsMap.add("userId", "1"); - MvcResult mvcResult = mockMvc.perform(post("/ui-plugins/queryProductInfo") + MvcResult mvcResult = mockMvc.perform(get("/ui-plugins/queryProductInfo") .header(SESSION_ID, sessionId) .params(paramsMap)) .andExpect(status().isOk()) diff --git a/dolphinscheduler-ui/src/service/modules/ui-plugins/index.ts b/dolphinscheduler-ui/src/service/modules/ui-plugins/index.ts index 825da55d77..810a96af1c 100644 --- a/dolphinscheduler-ui/src/service/modules/ui-plugins/index.ts +++ b/dolphinscheduler-ui/src/service/modules/ui-plugins/index.ts @@ -36,6 +36,6 @@ export function queryUiPluginDetailById(id: IPluginId): any { export function queryProductInfo(): any { return axios({ url: '/ui-plugins/queryProductInfo', - method: 'post' + method: 'get' }) } From e84feb30f754a6ffaa1181a121d7e5ab63e79d1e Mon Sep 17 00:00:00 2001 From: "1462719985@qq.com" <1462719985@qq.com> Date: Tue, 28 May 2024 18:58:28 +0800 Subject: [PATCH 11/13] =?UTF-8?q?[Improvement][ui]=20improving=20to=20find?= =?UTF-8?q?=20current=20version=20identifier=EF=BC=88#15815=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dolphinscheduler/api/controller/UiPluginController.java | 2 +- .../org/apache/dolphinscheduler/api/dto/ProductInfoDto.java | 3 --- .../apache/dolphinscheduler/api/service/UiPluginService.java | 2 +- .../api/service/impl/UiPluginServiceImpl.java | 3 +-- .../api/controller/UiPluginControllerTest.java | 4 +--- 5 files changed, 4 insertions(+), 10 deletions(-) diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java index 1e39761020..06e8fd0193 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java @@ -100,7 +100,7 @@ public class UiPluginController extends BaseController { @ApiException(VERSION_INFO_STATE_ERROR) public Result queryProductInfo( @Parameter(hidden = true) @RequestAttribute(value = Constants.SESSION_USER) User loginUser) { - ProductInfoDto result = uiPluginService.queryProductInfo(loginUser); + ProductInfoDto result = uiPluginService.queryProductInfo(); return Result.success(result); } } diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/ProductInfoDto.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/ProductInfoDto.java index 827cb290c9..12c6307afb 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/ProductInfoDto.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/dto/ProductInfoDto.java @@ -28,8 +28,5 @@ import java.util.List; @Data public class ProductInfoDto { - private Integer id; - private String version; - } diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UiPluginService.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UiPluginService.java index fc70fbbc86..4bdaa29b75 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UiPluginService.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UiPluginService.java @@ -32,6 +32,6 @@ public interface UiPluginService { Map queryUiPluginDetailById(int id); - ProductInfoDto queryProductInfo(User loginUser); + ProductInfoDto queryProductInfo(); } diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java index 90239f5d52..6ec8f50476 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java @@ -105,8 +105,7 @@ public class UiPluginServiceImpl extends BaseServiceImpl implements UiPluginServ } @Override - public ProductInfoDto queryProductInfo(User loginUser) { - // persist to the database + public ProductInfoDto queryProductInfo() { ProductInfoDto result = new ProductInfoDto(); result.setVersion(dsVersion); return result; diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java index 4e846c678a..4b8f6582fb 100644 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java +++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java @@ -63,8 +63,6 @@ public class UiPluginControllerTest extends AbstractControllerTest { private static final ImmutableMap uiPluginServiceResult = ImmutableMap.of(Constants.STATUS, Status.SUCCESS, Constants.DATA_LIST, "Test Data"); - private static final Logger logger = LoggerFactory.getLogger(TenantControllerTest.class); - @MockBean(name = "uiPluginService") private UiPluginService uiPluginService; @@ -107,7 +105,7 @@ public class UiPluginControllerTest extends AbstractControllerTest { @Test public void testQueryProductInfo() throws Exception { ProductInfoDto mockResult = new ProductInfoDto(); - Mockito.when(uiPluginService.queryProductInfo(Mockito.any())).thenReturn(mockResult); + Mockito.when(uiPluginService.queryProductInfo()).thenReturn(mockResult); MultiValueMap paramsMap = new LinkedMultiValueMap<>(); paramsMap.add("userId", "1"); From 228a84c23594ef12249bd01cc69b83fde461a9e5 Mon Sep 17 00:00:00 2001 From: "1462719985@qq.com" <1462719985@qq.com> Date: Wed, 29 May 2024 10:25:42 +0800 Subject: [PATCH 12/13] =?UTF-8?q?[Improvement][ui]=20improving=20to=20find?= =?UTF-8?q?=20current=20version=20identifier=EF=BC=88#15815=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dolphinscheduler/api/controller/UiPluginController.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java index 06e8fd0193..8838254e10 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java @@ -98,8 +98,7 @@ public class UiPluginController extends BaseController { @GetMapping(value = "/queryProductInfo") @ResponseStatus(HttpStatus.OK) @ApiException(VERSION_INFO_STATE_ERROR) - public Result queryProductInfo( - @Parameter(hidden = true) @RequestAttribute(value = Constants.SESSION_USER) User loginUser) { + public Result queryProductInfo() { ProductInfoDto result = uiPluginService.queryProductInfo(); return Result.success(result); } From b2abdd25e6393959ac365ff4b68655e8338778bb Mon Sep 17 00:00:00 2001 From: "1462719985@qq.com" <1462719985@qq.com> Date: Tue, 4 Jun 2024 18:01:17 +0800 Subject: [PATCH 13/13] =?UTF-8?q?[Improvement][ui]=20improving=20to=20find?= =?UTF-8?q?=20current=20version=20identifier=EF=BC=88#15815=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dolphinscheduler/api/controller/UiPluginController.java | 6 +----- .../api/service/impl/UiPluginServiceImpl.java | 3 --- .../api/controller/UiPluginControllerTest.java | 2 +- dolphinscheduler-ui/src/service/modules/ui-plugins/index.ts | 2 +- 4 files changed, 3 insertions(+), 10 deletions(-) diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java index 8838254e10..7e5b9181bd 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/UiPluginController.java @@ -90,12 +90,8 @@ public class UiPluginController extends BaseController { return returnDataList(result); } - /** - * obtain project version and address - * @return product info - */ @Operation(summary = "queryProductInfo", description = "QUERY_PRODUCT_INFO") - @GetMapping(value = "/queryProductInfo") + @GetMapping(value = "/query-product-info") @ResponseStatus(HttpStatus.OK) @ApiException(VERSION_INFO_STATE_ERROR) public Result queryProductInfo() { diff --git a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java index 6ec8f50476..7a78b75b21 100644 --- a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java +++ b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/UiPluginServiceImpl.java @@ -62,9 +62,6 @@ public class UiPluginServiceImpl extends BaseServiceImpl implements UiPluginServ @PostConstruct private void init() { dsVersion = dsVersionDao.selectVersion().map(DsVersion::getVersion).orElse("unknown"); - if(StringUtils.isBlank(dsVersion)){ - throw new ServiceException(Status.VERSION_INFO_STATE_ERROR); - } } @Override diff --git a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java index 4b8f6582fb..a2238fe5a8 100644 --- a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java +++ b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/controller/UiPluginControllerTest.java @@ -110,7 +110,7 @@ public class UiPluginControllerTest extends AbstractControllerTest { MultiValueMap paramsMap = new LinkedMultiValueMap<>(); paramsMap.add("userId", "1"); - MvcResult mvcResult = mockMvc.perform(get("/ui-plugins/queryProductInfo") + MvcResult mvcResult = mockMvc.perform(get("/ui-plugins/query-product-info") .header(SESSION_ID, sessionId) .params(paramsMap)) .andExpect(status().isOk()) diff --git a/dolphinscheduler-ui/src/service/modules/ui-plugins/index.ts b/dolphinscheduler-ui/src/service/modules/ui-plugins/index.ts index 810a96af1c..7f27b427bc 100644 --- a/dolphinscheduler-ui/src/service/modules/ui-plugins/index.ts +++ b/dolphinscheduler-ui/src/service/modules/ui-plugins/index.ts @@ -35,7 +35,7 @@ export function queryUiPluginDetailById(id: IPluginId): any { export function queryProductInfo(): any { return axios({ - url: '/ui-plugins/queryProductInfo', + url: '/ui-plugins/query-product-info', method: 'get' }) }