Bladeren bron

1、删除用户,还需要删除用户与设备的绑定关系

liweimin 6 dagen geleden
bovenliggende
commit
ea6ba2dda7

+ 7 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java

@@ -31,6 +31,7 @@ import com.ruoyi.system.service.ISysDeptService;
 import com.ruoyi.system.service.ISysPostService;
 import com.ruoyi.system.service.ISysRoleService;
 import com.ruoyi.system.service.ISysUserService;
+import com.ruoyi.device.service.ITsbUserDeviceService;
 
 /**
  * 用户信息
@@ -53,6 +54,9 @@ public class SysUserController extends BaseController
     @Autowired
     private ISysPostService postService;
 
+    @Autowired
+    private ITsbUserDeviceService tsbUserDeviceService;
+
     /**
      * 获取用户列表
      */
@@ -183,6 +187,9 @@ public class SysUserController extends BaseController
         {
             return error("当前用户不能删除");
         }
+        // 先删除用户与设备的绑定关系
+        tsbUserDeviceService.deleteByUserIds(userIds);
+        // 再删除用户信息(包括角色、岗位关联)
         return toAjax(userService.deleteUserByIds(userIds));
     }
 

+ 8 - 0
ruoyi-device/src/main/java/com/ruoyi/device/mapper/TsbUserDeviceMapper.java

@@ -95,4 +95,12 @@ public interface TsbUserDeviceMapper
      * @return 影响行数
      */
     int deleteTsbUserDeviceByDeviceIds(Long[] deviceIds);
+
+    /**
+     * 按用户ID批量删除绑定(删除用户前清理关联)
+     *
+     * @param userIds 用户ID数组
+     * @return 影响行数
+     */
+    int deleteTsbUserDeviceByUserIds(Long[] userIds);
 }

+ 8 - 0
ruoyi-device/src/main/java/com/ruoyi/device/service/ITsbUserDeviceService.java

@@ -55,4 +55,12 @@ public interface ITsbUserDeviceService
      * @return 结果
      */
     public int deleteUserDevice(Long userId, Long deviceId);
+
+    /**
+     * 按用户ID批量删除设备绑定关系(删除用户前清理关联)
+     *
+     * @param userIds 用户ID数组
+     * @return 影响行数
+     */
+    public int deleteByUserIds(Long[] userIds);
 }

+ 17 - 0
ruoyi-device/src/main/java/com/ruoyi/device/service/impl/TsbUserDeviceServiceImpl.java

@@ -131,4 +131,21 @@ public class TsbUserDeviceServiceImpl implements ITsbUserDeviceService
     {
         return tsbUserDeviceMapper.deleteUserDevice(userId, deviceId);
     }
+
+    /**
+     * 按用户ID批量删除设备绑定关系(删除用户前清理关联)
+     *
+     * @param userIds 用户ID数组
+     * @return 影响行数
+     */
+    @Override
+    @Transactional
+    public int deleteByUserIds(Long[] userIds)
+    {
+        if (userIds == null || userIds.length == 0)
+        {
+            return 0;
+        }
+        return tsbUserDeviceMapper.deleteTsbUserDeviceByUserIds(userIds);
+    }
 }

+ 7 - 0
ruoyi-device/src/main/resources/mapper/device/TsbUserDeviceMapper.xml

@@ -129,4 +129,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{deviceId}
         </foreach>
     </delete>
+
+    <delete id="deleteTsbUserDeviceByUserIds">
+        delete from tsb_user_device where user_id in
+        <foreach collection="array" item="userId" open="(" separator="," close=")">
+            #{userId}
+        </foreach>
+    </delete>
 </mapper>