浏览代码

闵行数字平台删除人员报错问题修复;用户列表优化

fuyuchuan 6 月之前
父节点
当前提交
b121a1b81b

+ 7 - 6
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/controller/web/SysUserController.java

@@ -19,10 +19,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.io.UnsupportedEncodingException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -191,8 +188,12 @@ public class SysUserController extends BaseController {
      */
 //    @Log(title = "用户管理", businessType = BusinessType.DELETE)
     @DeleteMapping("/{userIds}")
-    public ApiResult<Void> remove(@PathVariable Long[] userIds) {
-        return toAjax(userService.deleteUserByIds(userIds));
+    public ApiResult<Void> remove(@PathVariable String userIds) {
+        String[] userIdsArray = userIds.split(",");
+        Long[] userIdsList = Arrays.stream(userIdsArray)
+                .map(Long::valueOf)
+                .toArray(Long[]::new);
+        return toAjax(userService.deleteUserByIds(userIdsList));
     }
 
     /**

+ 2 - 1
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/mapper/SysCheckCodeMapper.java

@@ -2,6 +2,7 @@ package com.usky.system.mapper;
 
 import com.usky.system.domain.SysCheckCode;
 import com.usky.common.mybatis.core.CrudMapper;
+import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Repository;
 
 /**
@@ -15,5 +16,5 @@ import org.springframework.stereotype.Repository;
 @Repository
 public interface SysCheckCodeMapper extends CrudMapper<SysCheckCode> {
 
-    void deleteByIds(Long[] userIds);
+    void deleteByIds(@Param("ids") Long[] ids);
 }

+ 25 - 8
base-modules/service-system/service-system-biz/src/main/java/com/usky/system/service/impl/SysUserServiceImpl.java

@@ -2,6 +2,7 @@ package com.usky.system.service.impl;
 
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.usky.common.core.bean.ApiResult;
 import com.usky.common.core.constants.Constants;
 import com.usky.common.core.exception.BusinessErrorCode;
@@ -562,14 +563,30 @@ public class SysUserServiceImpl extends AbstractCrudService<SysUserMapper, SysUs
         for (Long userId : userIds) {
             checkUserAllowed(new SysUser(userId));
         }
-        // 删除用户与角色关联
-        userRoleMapper.deleteUserRole(userIds);
-        // 删除用户与岗位关联
-        userPostMapper.deleteUserPost(userIds);
-        // 删除校验码表数据
-        sysCheckCodeMapper.deleteByIds(userIds);
-
-        return userMapper.deleteUserByIds(userIds);
+        try {
+            // 删除用户与角色关联
+            LambdaQueryWrapper<SysUserRole> roleWrapper = new LambdaQueryWrapper<>();
+            roleWrapper.in(SysUserRole::getUserId, userIds);
+            userRoleMapper.delete(roleWrapper);
+
+            // 删除用户与岗位关联
+            LambdaQueryWrapper<SysUserPost> postWrapper = new LambdaQueryWrapper<>();
+            postWrapper.in(SysUserPost::getUserId, userIds);
+            userPostMapper.delete(postWrapper);
+
+            // 删除校验码表数据
+            LambdaQueryWrapper<SysCheckCode> codeWrapper = new LambdaQueryWrapper<>();
+            codeWrapper.in(SysCheckCode::getUserId, userIds);
+            sysCheckCodeMapper.delete(codeWrapper);
+
+            // 软删除用户信息
+            LambdaUpdateWrapper<SysUser> updateWrapper = new LambdaUpdateWrapper<>();
+            updateWrapper.in(SysUser::getUserId, userIds).set(SysUser::getDelFlag, "2");
+            // 执行批量更新
+            return userMapper.update(null, updateWrapper);
+        } catch (Exception e) {
+            throw new BusinessException("删除用户失败,请联系管理员" + e);
+        }
     }
 
     @Override

+ 5 - 2
base-modules/service-system/service-system-biz/src/main/resources/mapper/system/SysCheckCodeMapper.xml

@@ -15,7 +15,10 @@
         <result column="user_name" property="userName" />
     </resultMap>
 
-    <delete id="deleteByIds" parameterType="Long">
-        delete from sys_check_code where user_id in #{userIds}
+    <delete id="deleteByIds" parameterType="Long[]">
+        delete from sys_check_code where user_id in
+        <foreach collection="array" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
     </delete>
 </mapper>

+ 7 - 7
base-modules/service-system/service-system-biz/src/main/resources/mapper/system/SysUserMapper.xml

@@ -252,13 +252,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	<delete id="deleteUserById" parameterType="Long">
 		update sys_user set del_flag = '2' where user_id = #{userId}
  	</delete>
- 	
- 	<delete id="deleteUserByIds" parameterType="Long">
- 		update sys_user set del_flag = '2' where user_id in
- 		<foreach collection="ids" item="ids" open="(" separator="," close=")">
- 			#{ids}
-        </foreach> 
- 	</delete>
+
+	<update id="deleteUserByIds" parameterType="Long">
+		update sys_user set del_flag = '2' where user_id in
+		<foreach collection="ids" item="id" open="(" separator="," close=")">
+			#{id}
+		</foreach>
+	</update>
 
 	<update id="resetUserPwdOne" parameterType="com.usky.system.domain.SysUser">
 		update sys_user set password = #{password} where user_id = #{userId}

+ 4 - 4
base-modules/service-system/service-system-biz/src/main/resources/mapper/system/SysUserRoleMapper.xml

@@ -17,11 +17,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	    select count(1) from sys_user_role where role_id=#{roleId}  
 	</select>
 	
-	<delete id="deleteUserRole" parameterType="Long">
+	<delete id="deleteUserRole" parameterType="Long[]">
  		delete from sys_user_role where user_id in
- 		<foreach collection="ids" item="ids" open="(" separator="," close=")">
- 			#{ids}
-        </foreach> 
+ 		<foreach collection="array" item="id" open="(" separator="," close=")">
+ 			#{id}
+        </foreach>
  	</delete>
 	
 	<insert id="batchUserRole">