This is an automated email from the ASF dual-hosted git repository.
lidongdai pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-dolphinscheduler.git
The following commit(s) were added to refs/heads/dev by this push:
new 74bd333 feat:optimizing code (#2245)
74bd333 is described below
commit 74bd33301ff13ba4339a840c9f1bbbc95845c777
Author: jin <[email protected]>
AuthorDate: Fri Mar 20 17:43:44 2020 +0800
feat:optimizing code (#2245)
* feat:optimizing code
* add licence and format code
---
.../api/controller/AlertGroupController.java | 24 ++++++----
.../api/service/AlertGroupService.java | 43 ++++++------------
.../api/service/UserAlertGroupService.java | 38 ++++++++++++++++
.../api/service/AlertGroupServiceTest.java | 47 +++++++++++--------
.../api/service/UserAlertGroupServiceTest.java | 53 ++++++++++++++++++++++
pom.xml | 1 +
6 files changed, 151 insertions(+), 55 deletions(-)
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/AlertGroupController.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/AlertGroupController.java
index e9bffa5..140434e 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/AlertGroupController.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/controller/AlertGroupController.java
@@ -93,11 +93,11 @@ public class AlertGroupController extends BaseController{
public Result list(@ApiIgnore @RequestAttribute(value =
Constants.SESSION_USER) User loginUser) {
logger.info("login user {}, query all alertGroup",
loginUser.getUserName());
- try{
+ try {
HashMap<String, Object> result =
alertGroupService.queryAlertgroup();
return returnDataList(result);
- }catch (Exception e){
- logger.error(Status.QUERY_ALL_ALERTGROUP_ERROR.getMsg(),e);
+ } catch (Exception e) {
+ logger.error(Status.QUERY_ALL_ALERTGROUP_ERROR.getMsg(), e);
return error(Status.QUERY_ALL_ALERTGROUP_ERROR.getCode(),
Status.QUERY_ALL_ALERTGROUP_ERROR.getMsg());
}
}
@@ -214,12 +214,20 @@ public class AlertGroupController extends BaseController{
@GetMapping(value = "/verify-group-name")
@ResponseStatus(HttpStatus.OK)
public Result verifyGroupName(@ApiIgnore @RequestAttribute(value =
Constants.SESSION_USER) User loginUser,
- @RequestParam(value ="groupName") String
groupName
- ) {
- logger.info("login user {}, verfiy group name: {}",
- loginUser.getUserName(),groupName);
+ @RequestParam(value ="groupName") String
groupName) {
+ logger.info("login user {}, verify group name: {}",
loginUser.getUserName(), groupName);
- return alertGroupService.verifyGroupName(loginUser, groupName);
+ boolean exist= alertGroupService.existGroupName(groupName);
+ Result result = new Result();
+ if (exist) {
+ logger.error("group {} has exist, can't create again.", groupName);
+ result.setCode(Status.ALERT_GROUP_EXIST.getCode());
+ result.setMsg(Status.ALERT_GROUP_EXIST.getMsg());
+ } else {
+ result.setCode(Status.SUCCESS.getCode());
+ result.setMsg(Status.SUCCESS.getMsg());
+ }
+ return result;
}
/**
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/AlertGroupService.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/AlertGroupService.java
index 70310b6..001a10d 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/AlertGroupService.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/AlertGroupService.java
@@ -16,17 +16,17 @@
*/
package org.apache.dolphinscheduler.api.service;
+import java.util.*;
import org.apache.dolphinscheduler.api.enums.Status;
import org.apache.dolphinscheduler.api.utils.PageInfo;
-import org.apache.dolphinscheduler.api.utils.Result;
import org.apache.dolphinscheduler.common.Constants;
import org.apache.dolphinscheduler.common.enums.AlertType;
+import org.apache.dolphinscheduler.common.utils.CollectionUtils;
import org.apache.dolphinscheduler.common.utils.StringUtils;
import org.apache.dolphinscheduler.dao.entity.AlertGroup;
import org.apache.dolphinscheduler.dao.entity.User;
import org.apache.dolphinscheduler.dao.entity.UserAlertGroup;
import org.apache.dolphinscheduler.dao.mapper.AlertGroupMapper;
-import org.apache.dolphinscheduler.dao.mapper.UserAlertGroupMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.slf4j.Logger;
@@ -35,11 +35,6 @@ import
org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
/**
* alert group service
*/
@@ -52,8 +47,7 @@ public class AlertGroupService extends BaseService{
private AlertGroupMapper alertGroupMapper;
@Autowired
- private UserAlertGroupMapper userAlertGroupMapper;
-
+ private UserAlertGroupService userAlertGroupService;
/**
* query alert group list
*
@@ -122,7 +116,7 @@ public class AlertGroupService extends BaseService{
alertGroup.setCreateTime(now);
alertGroup.setUpdateTime(now);
- // insert
+ // insert
int insert = alertGroupMapper.insert(alertGroup);
if (insert > 0) {
@@ -199,7 +193,7 @@ public class AlertGroupService extends BaseService{
return result;
}
- userAlertGroupMapper.deleteByAlertgroupId(id);
+ userAlertGroupService.deleteByAlertGroupId(id);
alertGroupMapper.deleteById(id);
putMsg(result, Status.SUCCESS);
return result;
@@ -223,22 +217,26 @@ public class AlertGroupService extends BaseService{
return result;
}
- userAlertGroupMapper.deleteByAlertgroupId(alertgroupId);
+ userAlertGroupService.deleteByAlertGroupId(alertgroupId);
if (StringUtils.isEmpty(userIds)) {
putMsg(result, Status.SUCCESS);
return result;
}
String[] userIdsArr = userIds.split(",");
-
+ Date now = new Date();
+ List<UserAlertGroup> alertGroups = new ArrayList<>(userIds.length());
for (String userId : userIdsArr) {
- Date now = new Date();
UserAlertGroup userAlertGroup = new UserAlertGroup();
userAlertGroup.setAlertgroupId(alertgroupId);
userAlertGroup.setUserId(Integer.parseInt(userId));
userAlertGroup.setCreateTime(now);
userAlertGroup.setUpdateTime(now);
- userAlertGroupMapper.insert(userAlertGroup);
+ alertGroups.add(userAlertGroup);
+ }
+
+ if (CollectionUtils.isNotEmpty(alertGroups)) {
+ userAlertGroupService.saveBatch(alertGroups);
}
putMsg(result, Status.SUCCESS);
@@ -248,22 +246,11 @@ public class AlertGroupService extends BaseService{
/**
* verify group name exists
*
- * @param loginUser login user
* @param groupName group name
* @return check result code
*/
- public Result verifyGroupName(User loginUser, String groupName) {
- Result result = new Result();
+ public boolean existGroupName(String groupName) {
List<AlertGroup> alertGroup =
alertGroupMapper.queryByGroupName(groupName);
- if (alertGroup != null && alertGroup.size() > 0) {
- logger.error("group {} has exist, can't create again.", groupName);
- result.setCode(Status.ALERT_GROUP_EXIST.getCode());
- result.setMsg(Status.ALERT_GROUP_EXIST.getMsg());
- } else {
- result.setCode(Status.SUCCESS.getCode());
- result.setMsg(Status.SUCCESS.getMsg());
- }
-
- return result;
+ return CollectionUtils.isNotEmpty(alertGroup);
}
}
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UserAlertGroupService.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UserAlertGroupService.java
new file mode 100644
index 0000000..5021857
--- /dev/null
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/UserAlertGroupService.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.api.service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.dolphinscheduler.dao.entity.UserAlertGroup;
+import org.apache.dolphinscheduler.dao.mapper.UserAlertGroupMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ */
+@Service
+public class UserAlertGroupService extends ServiceImpl<UserAlertGroupMapper,
UserAlertGroup> {
+
+ @Autowired
+ private UserAlertGroupMapper userAlertGroupMapper;
+
+ boolean deleteByAlertGroupId(Integer groupId) {
+ return userAlertGroupMapper.deleteByAlertgroupId(groupId) >= 1;
+ }
+
+}
diff --git
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AlertGroupServiceTest.java
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AlertGroupServiceTest.java
index 4a31902..ab7dac4 100644
---
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AlertGroupServiceTest.java
+++
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/AlertGroupServiceTest.java
@@ -18,9 +18,12 @@ package org.apache.dolphinscheduler.api.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import org.apache.dolphinscheduler.api.enums.Status;
import org.apache.dolphinscheduler.api.utils.PageInfo;
-import org.apache.dolphinscheduler.api.utils.Result;
import org.apache.dolphinscheduler.common.Constants;
import org.apache.dolphinscheduler.common.enums.AlertType;
import org.apache.dolphinscheduler.common.enums.UserType;
@@ -31,9 +34,12 @@ import
org.apache.dolphinscheduler.dao.mapper.AlertGroupMapper;
import org.apache.dolphinscheduler.dao.mapper.UserAlertGroupMapper;
import org.junit.After;
import org.junit.Assert;
+import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import static org.mockito.ArgumentMatchers.*;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
@@ -41,14 +47,6 @@ import org.mockito.junit.MockitoJUnitRunner;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-
@RunWith(MockitoJUnitRunner.class)
public class AlertGroupServiceTest {
@@ -60,6 +58,8 @@ public class AlertGroupServiceTest {
private AlertGroupMapper alertGroupMapper;
@Mock
private UserAlertGroupMapper userAlertGroupMapper;
+ @Mock
+ UserAlertGroupService userAlertGroupService;
private String groupName = "AlertGroupServiceTest";
@@ -160,25 +160,34 @@ public class AlertGroupServiceTest {
}
+
@Test
- public void testGrantUser(){
+ public void testGrantUser() {
+
+ Integer groupId = 1;
+
+ ArgumentCaptor<Integer> groupArgument =
ArgumentCaptor.forClass(Integer.class);
+
+
Mockito.when(userAlertGroupService.deleteByAlertGroupId(anyInt())).thenReturn(true);
+
+ Map<String, Object> result =
alertGroupService.grantUser(getLoginUser(), groupId, "123,321");
+
Mockito.verify(userAlertGroupService).deleteByAlertGroupId(groupArgument.capture());
- Map<String, Object> result =
alertGroupService.grantUser(getLoginUser(),1,"123,321");
logger.info(result.toString());
- Assert.assertEquals(Status.SUCCESS,result.get(Constants.STATUS));
+ assertEquals(groupArgument.getValue(), groupId);
+ assertEquals(Status.SUCCESS, result.get(Constants.STATUS));
}
+
@Test
- public void testVerifyGroupName(){
+ public void testVerifyGroupName() {
//group name not exist
- Result result = alertGroupService.verifyGroupName(getLoginUser(),
groupName);
- logger.info(result.toString());
- Assert.assertEquals(Status.SUCCESS.getMsg(),result.getMsg());
+ boolean result = alertGroupService.existGroupName(groupName);
+ Assert.assertFalse(result);
Mockito.when(alertGroupMapper.queryByGroupName(groupName)).thenReturn(getList());
//group name exist
- result = alertGroupService.verifyGroupName(getLoginUser(), groupName);
- logger.info(result.toString());
- Assert.assertEquals(Status.ALERT_GROUP_EXIST.getMsg(),result.getMsg());
+ result = alertGroupService.existGroupName(groupName);
+ Assert.assertTrue(result);
}
diff --git
a/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/UserAlertGroupServiceTest.java
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/UserAlertGroupServiceTest.java
new file mode 100644
index 0000000..24b1d5a
--- /dev/null
+++
b/dolphinscheduler-api/src/test/java/org/apache/dolphinscheduler/api/service/UserAlertGroupServiceTest.java
@@ -0,0 +1,53 @@
+/*
+ * 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.api.service;
+
+import org.apache.dolphinscheduler.dao.mapper.UserAlertGroupMapper;
+import static org.junit.Assert.assertEquals;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.junit.MockitoJUnitRunner;
+
+/**
+ *
+ */
+@RunWith(MockitoJUnitRunner.class)
+public class UserAlertGroupServiceTest {
+
+ @InjectMocks
+ UserAlertGroupService userAlertGroupService;
+
+ @Mock
+ UserAlertGroupMapper userAlertGroupMapper;
+
+ @Test
+ public void deleteByAlertGroupId() {
+
+ Integer groupId = 1;
+ userAlertGroupService.deleteByAlertGroupId(groupId);
+ ArgumentCaptor<Integer> argumentCaptor =
ArgumentCaptor.forClass(Integer.class);
+
+
Mockito.verify(userAlertGroupMapper).deleteByAlertgroupId(argumentCaptor.capture());
+ assertEquals(argumentCaptor.getValue(), groupId);
+
+ }
+
+}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 412a28e..dcb712a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -707,6 +707,7 @@
<include>**/api/service/TenantServiceTest.java</include>
<include>**/api/service/WorkerGroupServiceTest.java</include>
<include>**/api/service/AlertGroupServiceTest.java</include>
+
<include>**/api/service/UserAlertGroupServiceTest.java</include>
<include>**/api/service/ProjectServiceTest.java</include>
<include>**/api/service/ProcessDefinitionServiceTest.java</include>
<include>**/api/service/UdfFuncServiceTest.java</include>