| | |
| | | import com.stylefeng.guns.modular.system.warpper.MerchantCouponListWarpper; |
| | | import com.stylefeng.guns.modular.taxi.dao.OrderTaxiMapper; |
| | | import com.stylefeng.guns.modular.taxi.model.OrderTaxi; |
| | | import org.apache.commons.lang.StringUtils; |
| | | import org.apache.commons.lang.time.DateFormatUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | |
| | | lineShiftDriver.setLaveSeatNumber(""); |
| | | }else{//拼车 |
| | | lineShiftDriver.setLaveSeat(lineShiftDriver.getLaveSeat() - orderCrossCity.getPeopleNumber()); |
| | | String[] split = orderCrossCity.getSeatNumber().split(","); |
| | | String[] split1 = lineShiftDriver.getLaveSeatNumber().split(","); |
| | | String seatNumber = ""; |
| | | //先判断选中座位号和剩余座位号是否匹配 |
| | | for(String spl : split){ |
| | | boolean b = true; |
| | | for(String sp : split1){ |
| | | if(ToolUtil.isNotEmpty(spl) && ToolUtil.isNotEmpty(sp) && sp.equals(spl)){ |
| | | b = false; |
| | | break; |
| | | } |
| | | } |
| | | if(b){ |
| | | throw new SystemException("您选中的" + spl + "号座位已被占用,请选择其他座位!"); |
| | | } |
| | | } |
| | | for(String sp : split1){ |
| | | boolean b = true; |
| | | |
| | | if (StringUtils.isNotEmpty(orderCrossCity.getSeatNumber())){ |
| | | // 用户已选座的情况 |
| | | String[] split = orderCrossCity.getSeatNumber().split(","); |
| | | String seatNumber = ""; |
| | | //先判断选中座位号和剩余座位号是否匹配 |
| | | for(String spl : split){ |
| | | if(ToolUtil.isNotEmpty(spl) && ToolUtil.isNotEmpty(sp) && sp.equals(spl)){ |
| | | b = false; |
| | | break; |
| | | boolean b = true; |
| | | for(String sp : split1){ |
| | | if(ToolUtil.isNotEmpty(spl) && ToolUtil.isNotEmpty(sp) && sp.equals(spl)){ |
| | | b = false; |
| | | break; |
| | | } |
| | | } |
| | | if(b){ |
| | | throw new SystemException("您选中的" + spl + "号座位已被占用,请选择其他座位!"); |
| | | } |
| | | } |
| | | if(b && ToolUtil.isNotEmpty(sp)){ |
| | | seatNumber += (sp + ","); |
| | | for(String sp : split1){ |
| | | boolean b = true; |
| | | for(String spl : split){ |
| | | if(ToolUtil.isNotEmpty(spl) && ToolUtil.isNotEmpty(sp) && sp.equals(spl)){ |
| | | b = false; |
| | | break; |
| | | } |
| | | } |
| | | if(b && ToolUtil.isNotEmpty(sp)){ |
| | | seatNumber += (sp + ","); |
| | | } |
| | | } |
| | | lineShiftDriver.setLaveSeatNumber(ToolUtil.isNotEmpty(seatNumber) ? seatNumber.substring(0, seatNumber.length() - 1) : ""); |
| | | } else { |
| | | // 用户未选座的情况,自动分配剩余座位的前peopleNumber个 |
| | | StringBuilder assignedSeats = new StringBuilder(); |
| | | StringBuilder remainingSeats = new StringBuilder(); |
| | | |
| | | for(int i = 0; i < split1.length; i++){ |
| | | if(ToolUtil.isEmpty(split1[i])){ |
| | | continue; |
| | | } |
| | | |
| | | if(i < orderCrossCity.getPeopleNumber()){ |
| | | // 分配给当前订单的座位 |
| | | if(assignedSeats.length() > 0){ |
| | | assignedSeats.append(","); |
| | | } |
| | | assignedSeats.append(split1[i]); |
| | | } else { |
| | | // 剩余的座位 |
| | | if(remainingSeats.length() > 0){ |
| | | remainingSeats.append(","); |
| | | } |
| | | remainingSeats.append(split1[i]); |
| | | } |
| | | } |
| | | |
| | | // 设置订单的座位号 |
| | | orderCrossCity.setSeatNumber(assignedSeats.toString()); |
| | | this.updateById(orderCrossCity); |
| | | |
| | | // 更新班次的剩余座位号 |
| | | lineShiftDriver.setLaveSeatNumber(remainingSeats.toString()); |
| | | } |
| | | lineShiftDriver.setLaveSeatNumber(ToolUtil.isNotEmpty(seatNumber) ? seatNumber.substring(0, seatNumber.length() - 1) : ""); |
| | | } |
| | | lineShiftDriverMapper.updateById(lineShiftDriver); |
| | | |
| | |
| | | return ResultUtil.error("该乘客有未完成的订单"); |
| | | } |
| | | |
| | | // 9. 检查司机是否正在服务中 |
| | | List<OrderCrossCity> orderCrossCities2 = orderCrossCityMapper.queryOrders(driverId, warpper.getLineShiftDriverId(), Arrays.asList(5)); |
| | | if (orderCrossCities2.size() > 0) { |
| | | return ResultUtil.error("司机正在服务中"); |
| | | } |
| | | // // 9. 检查司机是否正在服务中 |
| | | // List<OrderCrossCity> orderCrossCities2 = orderCrossCityMapper.queryOrders(driverId, warpper.getLineShiftDriverId(), Arrays.asList(5)); |
| | | // if (orderCrossCities2.size() > 0) { |
| | | // return ResultUtil.error("司机正在服务中"); |
| | | // } |
| | | |
| | | // // 10. 计算价格 |
| | | // Map<String, String> distanceMap = gdMapElectricFenceUtil.getDistance( |