Browse Source

修复BUG

liuyc 3 years ago
parent
commit
ef4dec0337

+ 3 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/SaveUserInfoByProjectMapper.java

@@ -20,4 +20,7 @@ public interface SaveUserInfoByProjectMapper extends BaseMapper<SaveUserInfoByPr
     int deleteByIds(@Param("idsList") List<Long> idsList);
 
     int updateUserRoleIdById(String roleIds, String userId);
+
+    int deleteByCondition(String projectId, String userId);
+
 }

+ 24 - 15
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/SaveUserInfoByProjectMapper.xml

@@ -35,38 +35,47 @@
     </update>
 
     <update id="updateUserRoleIdById">
-        UPDATE blade_user SET role_id = #{roleIds} WHERE id = #{userId}
+        UPDATE blade_user
+        SET role_id = #{roleIds}
+        WHERE id = #{userId}
     </update>
 
+    <delete id="deleteByCondition">
+        DELETE
+        FROM m_project_assignment_user
+        WHERE project_id = #{projectId}
+          AND user_id = #{userId}
+    </delete>
+
     <select id="findMaintenanceUser" resultMap="queryUserMap">
-        select
-          bu.id,
-          bu.name,
-          bu.real_name
+        select bu.id,
+               bu.name,
+               bu.real_name
         from blade_user AS bu
-        left join (
-            select
-              pau.user_id
+                 left join (
+            select pau.user_id
             from m_project_assignment_user AS pau
-            left join blade_role AS br on pau.role_id = br.id
-            where
-              pau.is_deleted = 0
-            and br.id is null
+                     left join blade_role AS br on pau.role_id = br.id
+            where pau.is_deleted = 0
+              and br.id is null
             group by pau.user_id
         ) as pau on bu.id = pau.user_id
     </select>
 
     <select id="queryCurrentUserDownAllContractAndProjectId" resultMap="contractInfoResultMap">
-        select project_id, contract_id from m_project_assignment_user where is_deleted = 0 and user_id = #{userId}
+        select project_id, contract_id
+        from m_project_assignment_user
+        where is_deleted = 0
+          and user_id = #{userId}
     </select>
 
     <select id="queryProjectBusinessUser" resultMap="contractInfoResultMap">
         select
-          pau.*
+        pau.*
         from m_project_assignment_user AS pau
         LEFT JOIN blade_role AS br ON pau.role_id = br.id
         where
-          pau.is_deleted = 0
+        pau.is_deleted = 0
         <if test="projectId != null">
             and pau.project_id = #{projectId}
         </if>

+ 8 - 8
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/SaveUserInfoByProjectServiceImpl.java

@@ -2,6 +2,7 @@ package org.springblade.manager.service.impl;
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
+import org.apache.commons.lang.StringUtils;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.tool.utils.Func;
@@ -17,6 +18,7 @@ import org.springframework.transaction.annotation.Transactional;
 import java.lang.reflect.Array;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -113,11 +115,13 @@ public class SaveUserInfoByProjectServiceImpl
         roleIdListAllOther.addAll(saveRoleIdListReally);
         List<String> resultRoleIds = roleIdListAllOther.stream().distinct().collect(Collectors.toList());
 
-        //删除关系表中对应的项目信息数据
-        int row = baseMapper.delete(Wrappers.<SaveUserInfoByProjectDTO>update().lambda()
+        //逻辑删除 关系表中对应的项目信息数据
+        /*int row = baseMapper.delete(Wrappers.<SaveUserInfoByProjectDTO>update().lambda()
                 .eq(SaveUserInfoByProjectDTO::getProjectId, projectId)
                 .eq(SaveUserInfoByProjectDTO::getUserId, userId)
-        );
+        );*/
+        //物理删除
+        int row = baseMapper.deleteByCondition(projectId,userId);
 
         //删除用户roleId
         boolean result = this.updateUserRoleIdFour(resultRoleIds, userId);
@@ -126,11 +130,7 @@ public class SaveUserInfoByProjectServiceImpl
     }
 
     private boolean updateUserRoleIdFour(List<String> saveRoleIdListReally, String userId) {
-        StringBuilder stringBuilder = new StringBuilder();
-        for (String s : saveRoleIdListReally) {
-            stringBuilder.append(s).append(",");
-        }
-        String roleIds = stringBuilder.substring(0, stringBuilder.length() - 1);
+        String roleIds = StringUtils.join(saveRoleIdListReally, ",");
         int row = baseMapper.updateUserRoleIdById(roleIds, userId);
         return row > 0;
     }