Pārlūkot izejas kodu

企业设置/成员管理 团队里面唯一的一个企管员踢没了

yang 3 gadi atpakaļ
vecāks
revīzija
310582d201

+ 10 - 0
lift-system-service/src/main/java/cn/com/ty/lift/system/user/dao/mapper/UserRoleMapper.java

@@ -5,6 +5,8 @@ import cn.com.xwy.boot.mybatis.MyBatisMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * MyBatis Mapper 接口 - 表:user_role
  *
@@ -31,4 +33,12 @@ public interface UserRoleMapper extends BaseMapper<UserRole> {
      */
     int judgeEnterpriseAdmin(@Param("companyId") long companyId,
                              @Param("applyUserId") long applyUserId);
+
+    /**
+     * 获取维保公司名下的全部企管员
+     *
+     * @param mtCompanyId 维保公司ID
+     * @return
+     */
+    List<Long> getAllEnterpriseAdmin(@Param("mtCompanyId")Long mtCompanyId);
 }

+ 13 - 4
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/MtCompanyUserService.java

@@ -14,6 +14,7 @@ import cn.com.ty.lift.system.user.dao.entity.UserInfo;
 import cn.com.ty.lift.system.user.dao.entity.UserRole;
 import cn.com.ty.lift.system.user.dao.entity.model.*;
 import cn.com.ty.lift.system.user.dao.mapper.MtCompanyUserMapper;
+import cn.com.ty.lift.system.user.dao.mapper.UserRoleMapper;
 import cn.com.ty.lift.system.user.service.*;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -30,10 +31,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -68,6 +66,9 @@ public class MtCompanyUserService extends ServiceImpl<MtCompanyUserMapper, MtCom
     @Resource
     private JmsMessagingTemplate jmsMessagingTemplate;
 
+    @Resource
+    private UserRoleMapper userRoleMapper;
+
     @Override
     @Transactional
     public RestResponse assignRole(MtCompanyUserRequest mtCompanyUserRequest) {
@@ -186,6 +187,14 @@ public class MtCompanyUserService extends ServiceImpl<MtCompanyUserMapper, MtCom
     @Override
     public RestResponse kickOutTeam(MtCompanyUserRequest mtCompanyUserRequest) {
         MtCompanyUser mtCompanyUser = this.getById(mtCompanyUserRequest.getId());
+
+        // TODO: 2021/7/13 企管员自己把自己踢了
+        //查询公司下全部的企管员
+        List<Long> list = userRoleMapper.getAllEnterpriseAdmin(mtCompanyUser.getMtCompanyId());
+        if (Objects.nonNull(list) && list.size() == 1 && Objects.equals(list.get(0), mtCompanyUser.getUserId())) {
+            return RestResponse.fail(ApiConstants.RESULT_ERROR, "这是公司下唯一一个企管员,无法踢出..");
+        }
+
         //判断用户是否可以踢出团队
         ProjectUser projectUser = new ProjectUser(mtCompanyUser.getUserId(), mtCompanyUser.getMtCompanyId());
         Map<String, String> judgeMsg = projectService.judgeKickOutTeam(projectUser);

+ 42 - 26
lift-system-service/src/main/resources/mapper/UserRoleMapper.xml

@@ -1,36 +1,37 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
-<mapper namespace="cn.com.ty.lift.system.user.dao.mapper.UserRoleMapper" >
-	<resultMap id="BaseResultMap" type="cn.com.ty.lift.system.user.dao.entity.UserRole" >
-		<id column="id" property="id" jdbcType="BIGINT" />
-		<result column="user_id" property="userId" jdbcType="BIGINT" />
-		<result column="role_id" property="roleId" jdbcType="BIGINT" />
-		<result column="company_id" property="companyId" jdbcType="BIGINT"/>
-	</resultMap>
+<mapper namespace="cn.com.ty.lift.system.user.dao.mapper.UserRoleMapper">
+    <resultMap id="BaseResultMap" type="cn.com.ty.lift.system.user.dao.entity.UserRole">
+        <id column="id" property="id" jdbcType="BIGINT"/>
+        <result column="user_id" property="userId" jdbcType="BIGINT"/>
+        <result column="role_id" property="roleId" jdbcType="BIGINT"/>
+        <result column="company_id" property="companyId" jdbcType="BIGINT"/>
+    </resultMap>
 
-	<sql id="Base_Column_List" >
+    <sql id="Base_Column_List">
 		id, user_id, role_id, company_id
 	</sql>
 
-	<!-- 通过用户id和公司id获取角色用户关联关系 -->
-	<select id="getByUserRole" parameterType="cn.com.ty.lift.system.user.dao.entity.UserRole" resultType="cn.com.ty.lift.system.user.dao.entity.UserRole">
-		select
-		<include refid="Base_Column_List"/>
-		from user_role
-		where  true
-		<if test="userId != null">
-			and user_id = #{userId,jdbcType=BIGINT}
-		</if>
-		<if test="roleId != null">
-			and role_id = #{roleId,jdbcType=BIGINT}
-		</if>
-		<if test="companyId != null">
-			and company_id = #{companyId,jdbcType=BIGINT}
-		</if>
-	</select>
+    <!-- 通过用户id和公司id获取角色用户关联关系 -->
+    <select id="getByUserRole" parameterType="cn.com.ty.lift.system.user.dao.entity.UserRole"
+            resultType="cn.com.ty.lift.system.user.dao.entity.UserRole">
+        select
+        <include refid="Base_Column_List"/>
+        from user_role
+        where true
+        <if test="userId != null">
+            and user_id = #{userId,jdbcType=BIGINT}
+        </if>
+        <if test="roleId != null">
+            and role_id = #{roleId,jdbcType=BIGINT}
+        </if>
+        <if test="companyId != null">
+            and company_id = #{companyId,jdbcType=BIGINT}
+        </if>
+    </select>
 
-	<!-- 公司用户企管员校验 -->
-	<select id="judgeEnterpriseAdmin" resultType="java.lang.Integer">
+    <!-- 公司用户企管员校验 -->
+    <select id="judgeEnterpriseAdmin" resultType="java.lang.Integer">
 		SELECT
 			COUNT(1)
 		FROM
@@ -44,4 +45,19 @@
 		AND r.company_id = #{companyId}
 	</select>
 
+
+    <!--查询公司下面全部的企管员-->
+    <select id="getAllEnterpriseAdmin" resultType="java.lang.Long" parameterType="long">
+		SELECT
+			ur.user_id
+		FROM
+			user_role AS ur,
+			role AS r
+		WHERE
+			ur.role_id = r.id
+		AND ur.company_id = #{mtCompanyId}
+		AND r.`code` = "ENTERPRISE_ADMIN"
+		AND r.company_id =  #{mtCompanyId}
+	</select>
+
 </mapper>