liujie
19 小时以前 1d1dbcdb6382b6c09fa0cdb6b0fbcbbea9e43e85
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;
@@ -1289,7 +1293,15 @@
      // 是否推广订单
      Integer promotion = isPromotion(uid);
      orderCrossCity.setPromotion(promotion);
      if(promotion!=null){
         orderCrossCity.setPromotion(2);
         Driver driver1 = driverService.selectById(promotion);
         orderCrossCity.setPromotionUser(driver1.getName());
         orderCrossCity.setPromotionPhone(driver1.getPhone());
         orderCrossCity.setPromotionDriverId(promotion);
      }else{
         orderCrossCity.setPromotion(1);
      }
      this.insert(orderCrossCity);
      
@@ -1384,17 +1396,17 @@
      return ResultUtil.success(baseWarpper);
   }
   private Integer isPromotion(Integer userId){
      UserInfo userInfo = userInfoService.selectById(userId);
      if(userInfo.getBindDriverId()!=null && userInfo.getBindExpireDate().getTime()<=System.currentTimeMillis()){
         String registAreaCode = userInfo.getRegistAreaCode();
         TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("districtCode", registAreaCode).ge("startTime", new Date()).lt("endTime", new Date()).last("AND FIND_IN_SET(" + 3 + ", bizType) limit 1"));
         TDriverPromotionActivity tDriverPromotionActivity = driverPromotionActivityService.selectOne(new EntityWrapper<TDriverPromotionActivity>().eq("state",1).eq("districtCode", registAreaCode).le("startTime", new Date()).ge("endTime", new Date()).last("AND FIND_IN_SET(" + 3 + ", bizType) limit 1"));
         if(tDriverPromotionActivity!=null){
            return 2;
            return userInfo.getBindDriverId();
         }
      }
      return null;
   }
   /**
    * 获取订单
@@ -1982,17 +1994,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 +2127,7 @@
      OrderCrossCity orderCrossCity = this.selectById(orderId);
      if(null != orderCrossCity){
         //计算预计距离和剩余时间
         String value = (String) redisTemplate.opsForValue().get("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 +2444,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 +2499,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 +2514,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 +2571,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);//推送后添加标识