You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampark.apache.org by be...@apache.org on 2022/11/12 14:13:05 UTC

[incubator-streampark] branch dev updated: [Bug] Clear the teamId when delete the member (#2009)

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 d4ecd9652 [Bug] Clear the teamId when delete the member (#2009)
d4ecd9652 is described below

commit d4ecd965225366d9635bf7103743b17975d21e2f
Author: 1996fanrui <19...@gmail.com>
AuthorDate: Sat Nov 12 22:13:00 2022 +0800

    [Bug] Clear the teamId when delete the member (#2009)
    
    * [Bug] Clear the teamId when delete the member
    
    * [fixup] fixup!fixup! delete all member mapping when delete user
---
 .../console/system/controller/UserController.java    |  4 ++--
 .../streampark/console/system/mapper/UserMapper.java |  3 +++
 .../console/system/service/MemberService.java        |  2 +-
 .../console/system/service/UserService.java          |  8 +++++---
 .../system/service/impl/MemberServiceImpl.java       | 20 ++++++++++++--------
 .../console/system/service/impl/UserServiceImpl.java | 20 ++++++++++++++------
 .../src/main/resources/mapper/system/UserMapper.xml  |  6 ++++++
 7 files changed, 43 insertions(+), 20 deletions(-)

diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/controller/UserController.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/controller/UserController.java
index e8a76157f..f8c5b5d24 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/controller/UserController.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/controller/UserController.java
@@ -92,8 +92,8 @@ public class UserController {
 
     @DeleteMapping("delete")
     @RequiresPermissions("user:delete")
-    public RestResponse deleteUsers(Long userId) {
-        this.userService.removeById(userId);
+    public RestResponse deleteUser(Long userId) throws Exception {
+        this.userService.deleteUser(userId);
         return RestResponse.success();
     }
 
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/mapper/UserMapper.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/mapper/UserMapper.java
index f04529ce7..0d5ce32c7 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/mapper/UserMapper.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/mapper/UserMapper.java
@@ -33,4 +33,7 @@ public interface UserMapper extends BaseMapper<User> {
     List<User> getNoTokenUser();
 
     List<User> findByAppOwner(@Param("teamId") Long teamId);
+
+    void unbindTeam(@Param("userId") Long userId);
+
 }
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 7bd14880c..9dbf278a8 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
@@ -30,7 +30,7 @@ public interface MemberService extends IService<Member> {
 
     void deleteByRoleIds(String[] roleIds);
 
-    void deleteByUserIds(String[] userIds);
+    void deleteByUserId(Long userId);
 
     void deleteByTeamId(Long teamId);
 
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/UserService.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/UserService.java
index 5fe4e953b..d858e08ca 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/UserService.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/UserService.java
@@ -71,11 +71,11 @@ public interface UserService extends IService<User> {
     void updateUser(User user) throws Exception;
 
     /**
-     * delete user list
+     * delete user
      *
-     * @param userIds user id list
+     * @param userId user id
      */
-    void deleteUsers(String[] userIds) throws Exception;
+    void deleteUser(Long userId) throws Exception;
 
     /**
      * update user
@@ -120,6 +120,8 @@ public interface UserService extends IService<User> {
 
     void setLatestTeam(Long teamId, Long userId);
 
+    void unbindTeam(Long userId, Long teamId);
+
     void fillInTeam(User user);
 
     List<User> findByAppOwner(Long teamId);
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 153870fe0..7d13cb0c6 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
@@ -19,6 +19,7 @@ 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.system.entity.Member;
 import org.apache.streampark.console.system.entity.Team;
 import org.apache.streampark.console.system.entity.User;
@@ -65,8 +66,8 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member>
 
     @Override
     @Transactional
-    public void deleteByUserIds(String[] userIds) {
-        Arrays.stream(userIds).forEach(id -> baseMapper.deleteByUserId(Long.valueOf(id)));
+    public void deleteByUserId(Long userId) {
+        baseMapper.deleteByUserId(userId);
     }
 
     @Override
@@ -119,11 +120,11 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member>
     @Override
     public void createMember(Member member) {
         User user = Optional.ofNullable(userService.findByName(member.getUserName()))
-            .orElseThrow(() -> new IllegalArgumentException(String.format("The username [%s] not found", member.getUserName())));
+            .orElseThrow(() -> new ApiAlertException(String.format("The username [%s] not found", member.getUserName())));
         Optional.ofNullable(roleService.getById(member.getRoleId()))
-            .orElseThrow(() -> new IllegalArgumentException(String.format("The roleId [%s] not found", member.getRoleId())));
+            .orElseThrow(() -> new ApiAlertException(String.format("The roleId [%s] not found", member.getRoleId())));
         Team team = Optional.ofNullable(teamService.getById(member.getTeamId()))
-            .orElseThrow(() -> new IllegalArgumentException(String.format("The teamId [%s] not found", member.getTeamId())));
+            .orElseThrow(() -> new ApiAlertException(String.format("The teamId [%s] not found", member.getTeamId())));
         AssertUtils.isTrue(findByUserId(member.getTeamId(), user.getUserId()) == null,
             String.format("The user [%s] has been added the team [%s], please don't add it again.", member.getUserName(),
                 team.getTeamName()));
@@ -136,18 +137,21 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member>
     }
 
     @Override
-    public void deleteMember(Member member) {
+    public void deleteMember(Member memberArg) {
+        Member member = Optional.ofNullable(this.getById(memberArg.getId()))
+            .orElseThrow(() -> new ApiAlertException(String.format("The member [id=%s] not found", memberArg.getId())));
         this.removeById(member);
+        userService.unbindTeam(member.getUserId(), member.getTeamId());
     }
 
     @Override
     public void updateMember(Member member) {
         Member oldMember = Optional.ofNullable(this.getById(member.getId()))
-            .orElseThrow(() -> new IllegalArgumentException(String.format("The mapping [id=%s] not found", member.getId())));
+            .orElseThrow(() -> new ApiAlertException(String.format("The member [id=%s] not found", member.getId())));
         AssertUtils.isTrue(oldMember.getTeamId().equals(member.getTeamId()), "Team id cannot be changed.");
         AssertUtils.isTrue(oldMember.getUserId().equals(member.getUserId()), "User id cannot be changed.");
         Optional.ofNullable(roleService.getById(member.getRoleId()))
-            .orElseThrow(() -> new IllegalArgumentException(String.format("The roleId [%s] not found", member.getRoleId())));
+            .orElseThrow(() -> new ApiAlertException(String.format("The roleId [%s] not found", member.getRoleId())));
         oldMember.setRoleId(member.getRoleId());
         updateById(oldMember);
     }
diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/UserServiceImpl.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/UserServiceImpl.java
index 6399cb64f..944dc337f 100644
--- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/UserServiceImpl.java
+++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/system/service/impl/UserServiceImpl.java
@@ -42,7 +42,6 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Nullable;
 
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.Date;
 import java.util.HashMap;
@@ -115,10 +114,9 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void deleteUsers(String[] userIds) {
-        List<String> list = Arrays.asList(userIds);
-        removeByIds(list);
-        this.memberService.deleteByUserIds(userIds);
+    public void deleteUser(Long userId) {
+        removeById(userId);
+        this.memberService.deleteByUserId(userId);
     }
 
     @Override
@@ -175,7 +173,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
     public List<User> getNoTokenUser() {
         List<User> users = this.baseMapper.getNoTokenUser();
         if (!users.isEmpty()) {
-            users.forEach(u -> u.dataMasking());
+            users.forEach(User::dataMasking);
         }
         return users;
     }
@@ -188,6 +186,16 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
         this.baseMapper.updateById(user);
     }
 
+    @Override
+    public void unbindTeam(Long userId, Long teamId) {
+        User user = getById(userId);
+        AssertUtils.checkArgument(user != null);
+        if (!teamId.equals(user.getTeamId())) {
+            return;
+        }
+        this.baseMapper.unbindTeam(userId);
+    }
+
     @Override
     public void fillInTeam(User user) {
         if (user.getTeamId() == null) {
diff --git a/streampark-console/streampark-console-service/src/main/resources/mapper/system/UserMapper.xml b/streampark-console/streampark-console-service/src/main/resources/mapper/system/UserMapper.xml
index 794d1cf5c..06cf406a3 100644
--- a/streampark-console/streampark-console-service/src/main/resources/mapper/system/UserMapper.xml
+++ b/streampark-console/streampark-console-service/src/main/resources/mapper/system/UserMapper.xml
@@ -75,4 +75,10 @@
         where u.user_id = t.user_id
     </select>
 
+    <update id="unbindTeam" parameterType="java.lang.Long">
+        update t_user
+        set team_id = null
+        where user_id = #{userId}
+    </update>
+
 </mapper>