From fa4d91768a990d5e8b759300a1271b12f54c10ca Mon Sep 17 00:00:00 2001 From: liujie <1793218484@qq.com> Date: 星期五, 22 八月 2025 23:14:15 +0800 Subject: [PATCH] 8.22 --- UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java | 67 ++++++++++++++++----------------- 1 files changed, 33 insertions(+), 34 deletions(-) diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java index 487bf9e..6734c15 100644 --- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java +++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java @@ -186,10 +186,8 @@ //存储摆渡车无接单后推送标识,实现多个类型的摆渡车订单无人接单后只给前端推送一次 public static Map<Integer, Boolean> pushEndMap = new HashMap<>(); - - - - + @Autowired + private CarMapper carMapper; /** @@ -1971,8 +1969,11 @@ 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); + if(driver!=null){ + driver.setState(2); + driverService.updateById(driver); + } + } // } // else{ @@ -2564,14 +2565,20 @@ // Company query = companyService.selectById(1); for(int i = 1; i <= 3; i++){ // PushOrder pushOrder = pushOrderService.querys(i, 4, query.getId()).get(0); - //获取同线路的同车型的跨城司机 List<Driver> list = driverService.queryDriversByLineAndCarModel(3,orderCrossCity.getServerCarModelId(), orderCrossCity.getLineId()); + if(list.size() > 0){ // double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数 // int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取) // list = list.subList(0, lastIndex);//获取空闲司机中占比数据 + List<Integer> collect = list.stream().map(Driver::getCarId).collect(Collectors.toList()); + List<Car> cars = carMapper.selectList1( collect); for(Driver driver : list){//开始进行推送 + // 判断司机的当前进行的订单 看座位数 + Car car1 = cars.stream().filter(car -> car.getId().equals(driver.getCarId())).findFirst().get(); + Integer seat = car1.getSeat(); + List<OrderCrossCity> orderCrossCities = orderCrossCityMapper.selectList(new EntityWrapper<OrderCrossCity>().eq("driverId", driver.getId()).in("state", Arrays.asList(1,2,3,4,5))); // boolean bo = false; // for(Integer integer : integers){ // if(integer.compareTo(driver.getId()) == 0){ @@ -2582,7 +2589,9 @@ // if(bo){ // continue; // } - pushUtil.pushOrderState(2, driver.getId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 10); + if(seat>=orderCrossCities.size()){ + pushUtil.pushOrderState(2, driver.getId(), orderCrossCity.getId(), 3, orderCrossCity.getState(), 10); + } } } Thread.sleep(10 * 1000);//设置等待时间 @@ -2592,33 +2601,23 @@ } // if(i == querys.size() && state == 1){ if(i == 3 && state == 1){ - pushUtil.pushEndPush(1, orderCrossCity.getUserId(), orderCrossCity.getId(), 1); + pushUtil.pushEndPush(1, orderCrossCity.getUserId(), orderCrossCity.getId(), 3); orderIds.remove(orderCrossCity.getId()); - orderCrossCity.setState(10); - orderCrossCityMapper.updateById(orderCrossCity); - - OrderCancel orderCancel = new OrderCancel(); - orderCancel.setOrderId(orderCrossCity.getId()); - orderCancel.setOrderType(3); - orderCancel.setReason("没有司机接单,系统自动取消订单"); - orderCancel.setRemark("没有司机接单,系统自动取消订单"); - orderCancel.setState(2); - orderCancel.setInsertTime(new Date()); - orderCancel.setUserType(2); - orderCancelService.insert(orderCancel); - //TODO:退款 - UserInfo userInfo = userInfoService.selectById (orderCrossCity.getUserId()); - userInfo.setBalance (new BigDecimal (userInfo.getBalance ()) - .add (new BigDecimal (orderCrossCity.getOrderMoney())) // 余额增加订单金额 - .setScale (2, BigDecimal.ROUND_HALF_EVEN) - .doubleValue ()); - SysIntegral query1 = sysIntegralMapper.query (orderCrossCity.getCompanyId ()); - if (query1 != null) { - int addIntegral = orderCrossCity.getOrderMoney().intValue () * query1.getIntegral (); // 原增加的积分 - userInfo.setIntegral (userInfo.getIntegral () - addIntegral); // 扣除对应积分(确保积分不为负可加额外判断) - } - transactionDetailsService.saveData (orderCrossCity.getUserId(), "订单取消退款", orderCrossCity.getOrderMoney (), 1, 1, 1, 3, orderCrossCity.getId ()); - userInfoService.updateById (userInfo); +// orderCrossCity.setState(10); +// orderCrossCityMapper.updateById(orderCrossCity); +// +// OrderCancel orderCancel = new OrderCancel(); +// orderCancel.setOrderId(orderCrossCity.getId()); +// orderCancel.setOrderType(3); +// orderCancel.setReason("没有司机接单,系统自动取消订单"); +// orderCancel.setRemark("没有司机接单,系统自动取消订单"); +// orderCancel.setState(2); +// orderCancel.setInsertTime(new Date()); +// orderCancel.setUserType(2); +// orderCancelService.insert(orderCancel); +// //TODO:退款 +// UserInfo userInfo = userInfoService.selectById (orderCrossCity.getUserId()); + addCancle(orderCrossCity.getId(),"没有司机接单,系统自动取消订单","没有司机接单,系统自动取消订单",orderCrossCity.getUserId()); } } -- Gitblit v1.7.1