浏览代码

用户删除接口修改 项目删除接口修改

yangkaixuan 1 月之前
父节点
当前提交
2e64b95dc7

+ 3 - 0
takai-system/src/main/java/com/takai/system/mapper/SysProjectStaffMapper.java

@@ -1,6 +1,7 @@
 package com.takai.system.mapper;
 
 import com.takai.system.domain.SysProjectStaff;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -68,4 +69,6 @@ public interface SysProjectStaffMapper
      * @return 结果
      */
     public int deleteSysProjectStaffByIds(Long[] ids);
+
+    public int deleteSysProjectStaffByProjectPids(@Param("projectPids") List<String> ids);
 }

+ 17 - 0
takai-system/src/main/java/com/takai/system/mapper/SysUserMapper.java

@@ -3,6 +3,7 @@ package com.takai.system.mapper;
 import java.util.List;
 import org.apache.ibatis.annotations.Param;
 import com.takai.common.core.domain.entity.SysUser;
+import org.apache.ibatis.annotations.Select;
 
 /**
  * 用户表 数据层
@@ -155,4 +156,20 @@ public interface SysUserMapper
      * @return 用户信息集合信息
      */
     public List<SysUser> selectKnowledgeVipList(String knowledgeId);
+
+    @Select("<script>" +
+            "select " +
+            " count(*)" +
+            " from bm_application " +
+            "  where create_by = #{userId} " +
+            "</script>")
+    public int countAppByUserId(@Param("userId") String userIds);
+
+    @Select("<script>" +
+            "select " +
+            " count(*)" +
+            " from bm_knowledge " +
+            "  where create_by = #{userId} " +
+            "</script>")
+    public int countKnowledgeByUserId(@Param("userId") String userIds);
 }

+ 17 - 4
takai-system/src/main/java/com/takai/system/service/impl/SysProjectServiceImpl.java

@@ -10,17 +10,17 @@ import com.takai.common.utils.StringUtils;
 import com.takai.system.domain.ProjectApplication;
 import com.takai.system.domain.SysProject;
 import com.takai.system.domain.SysProjectApp;
+import com.takai.system.domain.SysProjectStaff;
 import com.takai.system.mapper.SysProjectAppMapper;
 import com.takai.system.mapper.SysProjectMapper;
+import com.takai.system.mapper.SysProjectStaffMapper;
 import com.takai.system.service.ISysProjectService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 【请填写功能名称】Service业务层处理
@@ -38,6 +38,9 @@ public class SysProjectServiceImpl implements ISysProjectService
     @Autowired
     private SysProjectAppMapper  sysProjectAppMapper;
 
+    @Autowired
+    private SysProjectStaffMapper sysProjectStaffMapper;
+
     /**
      * 查询【请填写功能名称】
      *
@@ -188,9 +191,19 @@ public class SysProjectServiceImpl implements ISysProjectService
     @Override
     public int deleteSysProjectByProjectIds(String[] projectIds)
     {
+        List<SysProject> projects = new ArrayList<>();
+        for(String projectId:projectIds) {
+            SysProject sysProject = sysProjectMapper.selectSysProjectByProjectId(projectId);
+            projects.add(sysProject);
+        }
+        List<String> projectPids = projects.stream()
+                .filter(Objects::nonNull)
+                .map(SysProject::getProjectPid)
+                .collect(Collectors.toList());
         int i = sysProjectMapper.deleteSysProjectByProjectIds(projectIds);
         if(i > 0){
             sysProjectAppMapper.deleteSysProjectAppByProjectIds(projectIds);
+            sysProjectStaffMapper.deleteSysProjectStaffByProjectPids(projectPids);
         }
         return i;
     }

+ 14 - 0
takai-system/src/main/java/com/takai/system/service/impl/SysUserServiceImpl.java

@@ -507,6 +507,7 @@ public class SysUserServiceImpl implements ISysUserService
         {
             checkUserAllowed(new SysUser(userId));
             checkUserDataScope(userId);
+            checkUserAppKnowledgeScope(userId);
         }
         // 删除用户与角色关联
         userRoleMapper.deleteUserRole(userIds);
@@ -611,4 +612,17 @@ public class SysUserServiceImpl implements ISysUserService
     public List<SysUser> selectKnowledgeVipList(String knowledgeId) {
         return userMapper.selectKnowledgeVipList(knowledgeId);
     }
+
+    private void checkUserAppKnowledgeScope(String userId)
+    {
+        int appCount = userMapper.countAppByUserId(userId);
+        if(appCount != 0) {
+            throw new RuntimeException("用户已创建应用 请联系管理员进行删除");
+        }
+
+        int knowledgeCount = userMapper.countKnowledgeByUserId(userId);
+        if(knowledgeCount != 0) {
+            throw new RuntimeException("用户已创建知识库 请联系管理员进行删除");
+        }
+    }
 }

+ 7 - 0
takai-system/src/main/resources/mapper/system/SysProjectStaffMapper.xml

@@ -166,4 +166,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{id}
         </foreach>
     </delete>
+
+    <delete id="deleteSysProjectStaffByProjectPids">
+        delete from sys_project_staff where project_pid in
+        <foreach item="id" collection="projectPids" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
 </mapper>