Pu Zhibing
5 天以前 0c41f99c7f1a0d7deeeef23a5b3b890aed32ce63
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java
@@ -180,7 +180,11 @@
   @Autowired
   private TAbnormalPayOrderMapper abnormalPayOrderMapper;
   @Resource
   private CarMapper carMapper;
   @Resource
   private CarModelMapper carModelMapper;
   @Autowired
   private TDriverPromotionActivityService driverPromotionActivityService;
@@ -1982,17 +1986,30 @@
               }
            }).start();
         }
         Driver driver = driverService.selectById(orderCrossCity.getDriverId());
         
         //修改司机座位
         LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(orderCrossCity.getLineShiftDriverId());
         lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() + orderCrossCity.getPeopleNumber());
         lineShiftDriver.setLaveSeatNumber(lineShiftDriver.getLaveSeatNumber() + (orderCrossCity.getTravelMode() == 1 ? "," : "") + orderCrossCity.getSeatNumber());
         lineShiftDriverMapper.updateById(lineShiftDriver);
         if(1 == orderCrossCity.getTravelMode()){
            LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(orderCrossCity.getLineShiftDriverId());
            lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() + orderCrossCity.getPeopleNumber());
            lineShiftDriver.setLaveSeatNumber(lineShiftDriver.getLaveSeatNumber() + (orderCrossCity.getTravelMode() == 1 ? "," : "") + orderCrossCity.getSeatNumber());
            lineShiftDriverMapper.updateById(lineShiftDriver);
         }else{
            Car car = carMapper.selectById(driver.getCarId());
            CarModel carModel = carModelMapper.selectById(car.getCarModelId());
            LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(orderCrossCity.getLineShiftDriverId());
            lineShiftDriver.setLaveSeat(carModel.getSeat() - 1);
            String seatNumber = "";
            for(int i = 1; i < carModel.getSeat(); i++){
               seatNumber += i + ",";
            }
            lineShiftDriver.setLaveSeatNumber(seatNumber.substring(0, seatNumber.length() - 1));
            lineShiftDriverMapper.updateById(lineShiftDriver);
         }
         
         //修改司机为空闲
         List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.queryByDriverId(orderCrossCity.getDriverId(), 2, 3, 4, 5, 11);
         if (orderCrossCities.size() == 0) {
            Driver driver = driverService.selectById(orderCrossCity.getDriverId());
            driver.setState(2);
            driverService.updateById(driver);
         }
@@ -2102,7 +2119,7 @@
      OrderCrossCity orderCrossCity = this.selectById(orderId);
      if(null != orderCrossCity){
         //计算预计距离和剩余时间
         String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(orderCrossCity.getDriverId()));
         String value = (String) redisTemplate.opsForValue().get("dache_DRIVER" + String.valueOf(orderCrossCity.getDriverId()));
         if (null == value || "".equals(value)) {
            System.err.println("司机没有上传位置信息");
            
@@ -2419,7 +2436,7 @@
                     OrderPrivateCarServiceImpl.orderIds.add(orderPrivateCar.getId());//添加记录,防止调用接口重复提醒无人接单
                     OpenCity openCity = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString());
                     List<PushOrder> querys = pushOrderService.querys(null, 1, openCity.getId());//获取需要推送的次数
                     for (int i = 1; i <= querys.size() + 5; i++) {
                     for (int i = 1; i <= querys.size() + 15; i++) {
                        //订单被抢后的处理
                        Integer state = orderPrivateCarMapper.selectById(orderId).getState();
                        if (state != 1) {
@@ -2474,7 +2491,7 @@
                        
                        //所有推送完后的处理
                        Boolean b = pushEndMap.get(orderPrivateCar.getCrossCityOrderId());
                        if (i == querys.size() + 5 && state == 1 && (null != b && !b.booleanValue())) {
                        if (i == querys.size() + 15 && state == 1 && (null != b && !b.booleanValue())) {
                           pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1);
                           OrderPrivateCarServiceImpl.orderIds.remove(orderPrivateCar.getId());
                           pushEndMap.put(orderPrivateCar.getCrossCityOrderId(), Boolean.TRUE);//推送后添加标识
@@ -2489,7 +2506,7 @@
                     OrderTaxiServiceImpl.orderIds.add(orderTaxi.getId());//添加记录,防止调用接口重复提醒无人接单
                     OpenCity openCity = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
                     List<PushOrder> querys = pushOrderService.querys(null, 2, openCity.getId());//获取需要推送的次数
                     for (int i = 1; i <= querys.size() + 5; i++) {
                     for (int i = 1; i <= querys.size() + 15; i++) {
                        //处理订单被抢
                        Integer state = orderTaxiMapper.selectById(orderId).getState();
                        if (state != 1) {
@@ -2546,7 +2563,7 @@
                        
                        //所有推送完后的处理
                        Boolean b = pushEndMap.get(orderTaxi.getCrossCityOrderId());
                        if (i == querys.size() + 5 && state == 1 && (null != b && !b.booleanValue())) {
                        if (i == querys.size() + 15 && state == 1 && (null != b && !b.booleanValue())) {
                           pushUtil.pushEndPush(1, orderTaxi.getUserId(), orderTaxi.getId(), 2);
                           OrderTaxiServiceImpl.orderIds.remove(orderTaxi.getId());
                           pushEndMap.put(orderTaxi.getCrossCityOrderId(), Boolean.TRUE);//推送后添加标识