Pu Zhibing
13 小时以前 dc3cfaa745eb7303e312ce7ba61a7019e5f12e4b
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;
@@ -1259,7 +1263,6 @@
      orderCrossCity.setPassengers(userInfo.getNickName());
      orderCrossCity.setPassengersPhone(userInfo.getPhone());
      orderCrossCity.setPeopleNumber(orderCrossCityWarpper.getPeopleNumber());
      orderCrossCity.setSeatNumber(orderCrossCityWarpper.getSeatNumber());
      List<OrderCrossCity> orderCrossCities = this.selectList(new EntityWrapper<OrderCrossCity>().eq("orderNum", orderCrossCity.getOrderNum()).eq("isDelete", 1));
      orderCrossCity.setSort(orderCrossCities.size() + 1);
      orderCrossCity.setState(7);//待支付
@@ -1271,6 +1274,11 @@
      orderCrossCity.setIsDelete(1);
      orderCrossCity.setRemark(orderCrossCityWarpper.getRemark());
      orderCrossCity.setIsReassign(1);
      if(1 == orderCrossCity.getTravelMode()){
         orderCrossCity.setSeatNumber(orderCrossCityWarpper.getSeatNumber());
      }else{
         orderCrossCity.setSeatNumber(lineShiftDriver.getLaveSeatNumber());
      }
//        //调用高德创建轨迹
//        String s = gdFalconUtil.selectTerminal(driver.getPhone());
//        String track = gdFalconUtil.createTrack(s);
@@ -1289,7 +1297,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 +1400,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;
   }
   /**
    * 获取订单
@@ -1433,7 +1449,12 @@
        if(map.get("abnormalIntro")!=null){
            map.put("appealStatus", 1);
        }
        if(map.get("travelMode")!=null &&map.get("travelMode").toString().equals("2") ){
            map.put("zwNum", 1);
        }else {
         map.put("zwNum", 2);
      }
      Map<String, String> geocode = gdMapGeocodingUtil.geocode(map.get("startLon").toString(), map.get("startLat").toString());
      map.put("startCity", geocode.get("city"));
      geocode = gdMapGeocodingUtil.geocode(map.get("endLon").toString(), map.get("endLat").toString());
@@ -1982,17 +2003,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);
         }
@@ -2419,7 +2453,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) {
@@ -2438,7 +2472,7 @@
                           for (Map<String, Integer> map : datas) {
                              Integer orderType = map.get("orderType");
                              Integer orderId = map.get("orderId");
                              if (orderType == 1 && orderId != orderPrivateCar.getId()) {
                              if (orderType == 1 && !orderId.equals(orderPrivateCar.getId())) {
                                 orderPrivateCarMapper.deleteById(orderId);
                              }
                              if (orderType == 2) {
@@ -2474,7 +2508,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 +2523,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) {
@@ -2511,7 +2545,7 @@
                              if (orderType == 1) {
                                 orderPrivateCarMapper.deleteById(orderId);
                              }
                              if (orderType == 2 && orderId != orderTaxi.getId()) {
                              if (orderType == 2 && !orderId.equals(orderTaxi.getId())) {
                                 orderTaxiMapper.deleteById(orderId);
                              }
                           }
@@ -2538,15 +2572,13 @@
                              if (bo) {
                                 continue;
                              }
                              pushUtil.pushOrderState(2, driver.getId(), orderTaxi.getId(), 2, orderTaxi.getState(), pushOrder.getPushTime());
                           }
                        }
                        
                        //所有推送完后的处理
                        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);//推送后添加标识