Commit d3853e01 by gdj

修改删除设备方法

parent e8feaa01
......@@ -712,14 +712,55 @@ public class DeviceServiceImpl extends ServiceImpl<IDeviceMapper, DeviceEntity>
LambdaQueryWrapper<DeviceEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(DeviceEntity::getDeviceSn, deviceSn);
int delete = this.mapper.delete(queryWrapper);
// 删除 全部相关的权限
LambdaQueryWrapper<DeviceOrgEntity> deviceOrgQueryWrapper = new LambdaQueryWrapper<>();
deviceOrgQueryWrapper.eq(DeviceOrgEntity::getDeviceSn, deviceSn);
boolean deviceOrgRemove = deviceOrgService.remove(deviceOrgQueryWrapper);
boolean deleteRes;
DeviceEntity dbDevice = this.getOne(queryWrapper);
if (dbDevice == null) {
return true;
}
if (aboveSysAdminRole()) {
// 超级管理员 直接删除设备
return delete > 0;
deleteRes = this.remove(queryWrapper);
// 删除 全部相关的权限
LambdaQueryWrapper<DeviceOrgEntity> deviceOrgQueryWrapper = new LambdaQueryWrapper<>();
deviceOrgQueryWrapper.eq(DeviceOrgEntity::getDeviceSn, deviceSn);
boolean deviceOrgRemove = deviceOrgService.remove(deviceOrgQueryWrapper);
return deleteRes;
} else {
// 普通管理员 删除设备,只删设备当前组织,当唯一关联才删设备
LambdaQueryWrapper<DeviceOrgEntity> deviceOrgQueryWrapper = new LambdaQueryWrapper<>();
deviceOrgQueryWrapper.eq(DeviceOrgEntity::getDeviceSn, deviceSn);
deviceOrgQueryWrapper.eq(DeviceOrgEntity::getWorkspaceId, dbDevice.getWorkspaceId());
List<DeviceOrgEntity> deviceOrgEntities = deviceOrgService.list(deviceOrgQueryWrapper);
// 没有组织关系 直接删除
if (CollectionUtils.isEmpty(deviceOrgEntities)) {
deleteRes = this.removeById(dbDevice.getId());
} else {
// 判断是否 有其他组织关系
List<DeviceOrgEntity> curDeviceOrgList = deviceOrgEntities.stream().filter(x -> getOrgId().equals(x.getOrgId())).collect(Collectors.toList());
List<DeviceOrgEntity> otherDeviceOrgList = deviceOrgEntities.stream().filter(x -> !getOrgId().equals(x.getOrgId())).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(curDeviceOrgList)) {
// 删除相关用户组织表
LambdaQueryWrapper<DeviceOrgEntity> delDeviceOrgQueryWrapper = new LambdaQueryWrapper<>();
delDeviceOrgQueryWrapper.eq(DeviceOrgEntity::getDeviceSn, dbDevice.getDeviceSn());
delDeviceOrgQueryWrapper.eq(DeviceOrgEntity::getWorkspaceId, dbDevice.getWorkspaceId());
delDeviceOrgQueryWrapper.eq(DeviceOrgEntity::getOrgId, getOrgId());
boolean deviceOrgDelRes = deviceOrgService.remove(delDeviceOrgQueryWrapper);
}
// 没有其他组织 则删除设备
if (CollectionUtils.isEmpty(otherDeviceOrgList)) {
deleteRes = this.removeById(dbDevice.getId());
}
}
}
return true;
}
@Override
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment