| | |
| | | |
| | | case 1: |
| | | OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(reassign.getOrderId()); |
| | | if(orderPrivateCar.getState() == 10){ |
| | | return ResultUtil.error("订单已取消"); |
| | | } |
| | | orderPrivateCar.setState(orderPrivateCar.getOldState()); |
| | | orderPrivateCar.setReassignNotice(0); |
| | | orderPrivateCarService.updateById(orderPrivateCar); |
| | |
| | | break; |
| | | case 2: |
| | | OrderTaxi orderTaxi = orderTaxiService.selectById(reassign.getOrderId()); |
| | | if(orderTaxi.getState() == 10){ |
| | | return ResultUtil.error("订单已取消"); |
| | | } |
| | | orderTaxi.setState(orderTaxi.getOldState()); |
| | | orderTaxi.setReassignNotice(0); |
| | | orderTaxiService.updateById(orderTaxi); |
| | |
| | | Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间 |
| | | Integer state = orderTaxi1.getState(); |
| | | if (state != 1 || state!= 11) { |
| | | orderIds.remove(orderTaxi.getId()); |
| | | break; |
| | | } |
| | | if (i == 18 && (state == 1 || state==11)) { |
| | | System.err.println("结束改派退单-------------修改订单为取消状态"); |
| | | pushUtil.pushEndPush(1, orderTaxi.getUserId(), orderTaxi.getId(), 2); |
| | | pushUtil.pushOrderState(2, orderTaxi.getDriverId(), orderTaxi.getId(), 2, 10); |
| | | orderTaxi1.setState(10); |
| | | orderTaxiService.updateById(orderTaxi1); |
| | | orderIds.remove(orderTaxi.getId()); |
| | |
| | | int finalI = i; |
| | | PushOrder pushOrder = querys.stream().filter(s -> s.getType() == (finalI <= 3 ? finalI : 3)).findFirst().orElse(null); |
| | | System.out.println("pushOrder:" + pushOrder); |
| | | int i2 = pushOrder.getPushTime() / 10; |
| | | if (i2 == 0) { |
| | | i2 = 1; |
| | | |
| | | if (orderPrivateCar.getState() > 1 && orderPrivateCar.getState() != 11) { |
| | | break; |
| | | } |
| | | for (int i1 = 0; i1 < i2; i1++) { |
| | | if (orderPrivateCar.getState() > 1 && orderPrivateCar.getState() != 11) { |
| | | break; |
| | | } |
| | | //获取空闲司机 |
| | | List<Driver> list = driverService.queryIdleDriver(orderType, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机 |
| | | list = list.stream().filter(e -> e.getId() != uid).collect(Collectors.toList()); |
| | | if (list.size() > 0) { |
| | | double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数 |
| | | int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取) |
| | | lastIndex = lastIndex == 0 ? list.size() : lastIndex; |
| | | list = list.subList(0, lastIndex);//获取空闲司机中占比数据 |
| | | for (Driver driver : list) {//开始进行推送 |
| | | boolean bo = false; |
| | | for (Integer integer : integers) { |
| | | if (integer.compareTo(driver.getId()) == 0) { |
| | | bo = true; |
| | | break; |
| | | } |
| | | //获取空闲司机 |
| | | List<Driver> list = driverService.queryIdleDriver(orderType, orderPrivateCar.getServerCarModelId(), orderPrivateCar.getStartLon(), orderPrivateCar.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机 |
| | | list = list.stream().filter(e -> !e.getId().equals(uid)).collect(Collectors.toList()); |
| | | if (list.size() > 0) { |
| | | double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数 |
| | | int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取) |
| | | lastIndex = lastIndex == 0 ? list.size() : lastIndex; |
| | | list = list.subList(0, lastIndex);//获取空闲司机中占比数据 |
| | | for (Driver driver : list) {//开始进行推送 |
| | | boolean bo = false; |
| | | for (Integer integer : integers) { |
| | | if (integer.compareTo(driver.getId()) == 0) { |
| | | bo = true; |
| | | break; |
| | | } |
| | | if (bo) { |
| | | continue; |
| | | } |
| | | pushUtil.pushOrderState(2, driver.getId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), pushOrder.getPushTime()); |
| | | } |
| | | } |
| | | Thread.sleep(10000);//设置等待时间 |
| | | Integer state = orderPrivateCar.getState(); |
| | | if (state > 1 && state != 11) { |
| | | orderIds.remove(orderPrivateCar.getId()); |
| | | return; |
| | | } |
| | | if (i == 18 && (state == 1 || state==11)) { |
| | | pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1); |
| | | orderPrivateCar.setState(10); |
| | | orderPrivateCarService.updateById(orderPrivateCar); |
| | | orderIds.remove(orderPrivateCar.getId()); |
| | | if (bo) { |
| | | continue; |
| | | } |
| | | pushUtil.pushOrderState(2, driver.getId(), orderPrivateCar.getId(), 1, orderPrivateCar.getState(), pushOrder.getPushTime()); |
| | | } |
| | | } |
| | | Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间 |
| | | Integer state = orderPrivateCar.getState(); |
| | | if (state > 1 && state != 11) { |
| | | orderIds.remove(orderPrivateCar.getId()); |
| | | return; |
| | | } |
| | | if (i == 18 && (state == 1 || state==11)) { |
| | | System.err.println("结束改派退单-------------修改订单为取消状态"); |
| | | pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1); |
| | | pushUtil.pushOrderState(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, 10); |
| | | orderPrivateCar.setState(10); |
| | | orderPrivateCarService.updateById(orderPrivateCar); |
| | | orderIds.remove(orderPrivateCar.getId()); |
| | | } |
| | | |
| | | } |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |