问题
如果是多级关联删除还有跟好的解决方案吗?
问题相关代码
public Result removePermissions(List<SysPermissions> permissionsList) {
if (permissionsList.size() == 0) {
return ResultData.fail(ResultMsg.PARAMS_ERROR);
}
// 遍历删除关联数据
for (SysPermissions sysPermissions : permissionsList) {
long menuExist = sysPermissionsMapper.selectCount(new QueryWrapper<SysPermissions>()
.eq(SysPermissions.PARENT_ID,sysPermissions.getId())
.last("limit 1"));
if (menuExist > 0) {
List<SysPermissions> menuList = sysPermissionsMapper.selectList(new QueryWrapper<SysPermissions>()
.eq(SysPermissions.PARENT_ID,sysPermissions.getId()));
for (SysPermissions permissions : menuList) {
long eventExist = sysPermissionsMapper.selectCount(new QueryWrapper<SysPermissions>()
.eq(SysPermissions.PARENT_ID,permissions.getId())
.last("limit 1"));
if (eventExist > 0) {
List<SysPermissions> eventList = sysPermissionsMapper.selectList(new QueryWrapper<SysPermissions>()
.eq(SysPermissions.PARENT_ID,permissions.getId()));
sysPermissionsMapper.deleteBatchIds(eventList);
}
}
sysPermissionsMapper.deleteBatchIds(menuList);
}
}
return ResultData.auto(sysPermissionsMapper.deleteBatchIds(permissionsList) > 0);
}