This is an automated email from the ASF dual-hosted git repository.
benjobs pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git
The following commit(s) were added to refs/heads/dev by this push:
new 2ec01badb [Feature] Check apps and projects before delete team (#1881)
2ec01badb is described below
commit 2ec01badbc7df82fe67dfa721efc3991eae6fd58
Author: fanrui <[email protected]>
AuthorDate: Sun Oct 23 16:52:48 2022 +0800
[Feature] Check apps and projects before delete team (#1881)
---
.../console/core/service/ApplicationService.java | 2 +
.../console/core/service/ProjectService.java | 2 +
.../console/core/service/VariableService.java | 2 +
.../core/service/impl/ApplicationServiceImpl.java | 5 +++
.../core/service/impl/ProjectServiceImpl.java | 5 +++
.../core/service/impl/VariableServiceImpl.java | 5 +++
.../console/system/controller/TeamController.java | 2 +-
.../console/system/service/MemberService.java | 2 +
.../console/system/service/TeamService.java | 2 +-
.../system/service/impl/MemberServiceImpl.java | 5 +++
.../system/service/impl/TeamServiceImpl.java | 43 ++++++++++++++++++++--
11 files changed, 70 insertions(+), 5 deletions(-)
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/ApplicationService.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/ApplicationService.java
index ff9e73cce..a1076afbd 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/ApplicationService.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/ApplicationService.java
@@ -35,6 +35,8 @@ public interface ApplicationService extends
IService<Application> {
IPage<Application> page(Application app, RestRequest request);
+ long countByTeamId(Long teamId);
+
boolean create(Application app) throws IOException;
Long copy(Application app) throws IOException;
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/ProjectService.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/ProjectService.java
index a28c4e045..dfc45c9f3 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/ProjectService.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/ProjectService.java
@@ -38,6 +38,8 @@ public interface ProjectService extends IService<Project> {
IPage<Project> page(Project project, RestRequest restRequest);
+ long countByTeamId(Long teamId);
+
void build(Long id) throws Exception;
RestResponse getBuildLog(Long id, Long startOffset);
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/VariableService.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/VariableService.java
index 0526377f0..d82cbb9cb 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/VariableService.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/VariableService.java
@@ -43,6 +43,8 @@ public interface VariableService extends IService<Variable> {
*/
List<Variable> findByTeamId(Long teamId);
+ long countByTeamId(Long teamId);
+
/**
* create variable
*
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ApplicationServiceImpl.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ApplicationServiceImpl.java
index 858ad0d4d..dc30a70c7 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ApplicationServiceImpl.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ApplicationServiceImpl.java
@@ -508,6 +508,11 @@ public class ApplicationServiceImpl extends
ServiceImpl<ApplicationMapper, Appli
return page;
}
+ @Override
+ public long countByTeamId(Long teamId) {
+ return this.count(new
LambdaQueryWrapper<Application>().eq(Application::getTeamId, teamId));
+ }
+
@Override
public String getYarnName(Application appParam) {
String[] args = new String[2];
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ProjectServiceImpl.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ProjectServiceImpl.java
index 7af22dce1..d1e6f45bb 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ProjectServiceImpl.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/ProjectServiceImpl.java
@@ -168,6 +168,11 @@ public class ProjectServiceImpl extends
ServiceImpl<ProjectMapper, Project>
return this.baseMapper.page(page, project);
}
+ @Override
+ public long countByTeamId(Long teamId) {
+ return this.count(new
LambdaQueryWrapper<Project>().eq(Project::getTeamId, teamId));
+ }
+
@Override
public void build(Long id) throws Exception {
Project project = getById(id);
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/VariableServiceImpl.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/VariableServiceImpl.java
index 89081e0ab..9b94cd134 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/VariableServiceImpl.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/VariableServiceImpl.java
@@ -177,4 +177,9 @@ public class VariableServiceImpl extends
ServiceImpl<VariableMapper, Variable> i
private String getCodeFromPlaceholder(String placeholder) {
return placeholder.substring(PLACEHOLDER_START.length(),
placeholder.length() - PLACEHOLDER_END.length());
}
+
+ @Override
+ public long countByTeamId(Long teamId) {
+ return this.count(new
LambdaQueryWrapper<Variable>().eq(Variable::getTeamId, teamId));
+ }
}
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/controller/TeamController.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/controller/TeamController.java
index 55dbae54a..04c6a7e77 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/controller/TeamController.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/controller/TeamController.java
@@ -67,7 +67,7 @@ public class TeamController {
@DeleteMapping("delete")
@RequiresPermissions("team:delete")
public RestResponse deleteTeam(Team team) {
- this.teamService.deleteTeam(team);
+ this.teamService.deleteTeam(team.getId());
return RestResponse.success();
}
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/MemberService.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/MemberService.java
index 3178f7376..7bd14880c 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/MemberService.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/MemberService.java
@@ -32,6 +32,8 @@ public interface MemberService extends IService<Member> {
void deleteByUserIds(String[] userIds);
+ void deleteByTeamId(Long teamId);
+
IPage<Member> findUsers(Member member, RestRequest request);
List<Team> findUserTeams(Long userId);
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/TeamService.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/TeamService.java
index 592095503..8ec356cea 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/TeamService.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/TeamService.java
@@ -33,7 +33,7 @@ public interface TeamService extends IService<Team> {
void createTeam(Team team);
- void deleteTeam(Team team);
+ void deleteTeam(Long teamId);
void updateTeam(Team team);
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/MemberServiceImpl.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/MemberServiceImpl.java
index 8c8be1580..f133e9d49 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/MemberServiceImpl.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/MemberServiceImpl.java
@@ -73,6 +73,11 @@ public class MemberServiceImpl extends
ServiceImpl<MemberMapper, Member>
Arrays.stream(userIds).forEach(id ->
baseMapper.deleteByUserId(Long.valueOf(id)));
}
+ @Override
+ public void deleteByTeamId(Long teamId) {
+ this.remove(new LambdaQueryWrapper<Member>().eq(Member::getTeamId,
teamId));
+ }
+
@Override
public IPage<Member> findUsers(Member member, RestRequest request) {
AssertUtils.isTrue(member.getTeamId() != null, "The team id is
required.");
diff --git
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/TeamServiceImpl.java
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/TeamServiceImpl.java
index c69593e5e..e7e3b5683 100644
---
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/TeamServiceImpl.java
+++
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/TeamServiceImpl.java
@@ -19,10 +19,16 @@ package org.apache.streampark.console.system.service.impl;
import org.apache.streampark.common.util.AssertUtils;
import org.apache.streampark.console.base.domain.RestRequest;
+import org.apache.streampark.console.base.exception.ApiAlertException;
import org.apache.streampark.console.core.enums.UserType;
+import org.apache.streampark.console.core.service.ApplicationService;
+import org.apache.streampark.console.core.service.CommonService;
+import org.apache.streampark.console.core.service.ProjectService;
+import org.apache.streampark.console.core.service.VariableService;
import org.apache.streampark.console.system.entity.Team;
import org.apache.streampark.console.system.entity.User;
import org.apache.streampark.console.system.mapper.TeamMapper;
+import org.apache.streampark.console.system.service.MemberService;
import org.apache.streampark.console.system.service.TeamService;
import org.apache.streampark.console.system.service.UserService;
@@ -48,6 +54,21 @@ public class TeamServiceImpl extends ServiceImpl<TeamMapper,
Team> implements Te
@Autowired
private UserService userService;
+ @Autowired
+ private ApplicationService applicationService;
+
+ @Autowired
+ private ProjectService projectService;
+
+ @Autowired
+ private MemberService memberService;
+
+ @Autowired
+ private VariableService variableService;
+
+ @Autowired
+ private CommonService commonService;
+
@Override
public IPage<Team> findTeams(Team team, RestRequest request) {
Page<Team> page = new Page<>();
@@ -74,9 +95,25 @@ public class TeamServiceImpl extends ServiceImpl<TeamMapper,
Team> implements Te
}
@Override
- public void deleteTeam(Team team) {
- // TODO 查询 app 和 project,如果还有 app 或 project 没有删除,则 team 不能被删除。
- this.removeById(team);
+ public void deleteTeam(Long teamId) {
+ log.info("{} Proceed delete team[Id={}]",
commonService.getCurrentUser().getUsername(), teamId);
+ Team team = this.getById(teamId);
+ // TODO The AssertUtils.checkApiAlert can simplify the exception.
+ if (team == null) {
+ throw new ApiAlertException(String.format("The team[Id=%s] doesn't
exists.", teamId));
+ }
+ if (applicationService.countByTeamId(teamId) > 0) {
+ throw new ApiAlertException(String.format("Please delete the
applications under the team[name=%s] first!", team.getTeamName()));
+ }
+ if (projectService.countByTeamId(teamId) > 0) {
+ throw new ApiAlertException(String.format("Please delete the
projects under the team[name=%s] first!", team.getTeamName()));
+ }
+ if (variableService.countByTeamId(teamId) > 0) {
+ throw new ApiAlertException(String.format("Please delete the
variables under the team[name=%s] first!", team.getTeamName()));
+ }
+
+ memberService.deleteByTeamId(teamId);
+ this.removeById(teamId);
}
@Override