From d0c88e9f82a73e225ec04f3f8b533cf1d97028bc Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期四, 17 八月 2023 11:49:21 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/SuperSaveDriving --- driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java | 51 +++++++++++++++++++++++++++++++++++---------------- 1 files changed, 35 insertions(+), 16 deletions(-) diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java index 87f68da..21ec131 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java @@ -161,10 +161,14 @@ return ResultUtil.error("该用户还有未完成的订单", ""); } Driver driver = driverService.selectById(uid); + DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>().eq("driverId", uid).eq("status", 1)); Order order1 = this.selectOne(new EntityWrapper<Order>().eq("driverId", uid).eq("status", 1).in("state", Arrays.asList(102, 103, 104, 105, 201, 401))); Order order = new Order(); - if(driverWork != null && null == order1){ + if(driver.getServerStatus().equals(1)){ + order.setDriverId(driver.getId()); + order.setState(104); + }else if(driverWork != null && null == order1){ order.setDriverId(uid); driver.setServerStatus(2); order.setOrderTakingTime(new Date()); @@ -218,12 +222,10 @@ } order.setCreateTime(new Date()); order = getOrderPrice(1, d, 0, order, city); - order.setState(null == order.getDriverId() ? 101 : 102); - order.setStatus(1); - if(driver.getServerStatus().equals(1)){ - order.setDriverId(driver.getId()); - order.setState(105); + if(!driver.getServerStatus().equals(1)) { + order.setState(null == order.getDriverId() ? 101 : 102); } + order.setStatus(1); this.insert(order); driverService.updateById(driver); @@ -994,8 +996,10 @@ order.setStartTime(new Date()); } //计算等待用户时长 - Integer w = new BigDecimal(Double.valueOf(System.currentTimeMillis() - order.getStartWaitTime().getTime()) / 1000).intValue(); - order.setWaitTime(order.getWaitTime() + w); + if(null != order.getStartWaitTime()){ + Integer w = new BigDecimal(Double.valueOf(System.currentTimeMillis() - order.getStartWaitTime().getTime()) / 1000).intValue(); + order.setWaitTime(order.getWaitTime() + w); + } order.setStartWaitTime(null); orderPositionService.initMap(order.getId()); break; @@ -1171,14 +1175,19 @@ @Override public ResultUtil transferOrder(Integer uid, Long orderId, String cause, String phone) throws Exception { // 7.13改动 + Driver driver=null; OrderTransfer orderTransfer = new OrderTransfer(); Order order = this.selectById(orderId); + if(order.getState() > 104){ + return ResultUtil.error("订单不支持转单"); + } if(phone!=null && !"".equals(phone)) { + Integer oldId = order.getDriverId(); List<Driver> drivers = driverService.selectList(new EntityWrapper<Driver>().eq("phone", phone)); if (drivers.size() == 0) { return ResultUtil.error("暂无该司机,无法转单"); } else { - Driver driver = drivers.get(0); + driver = drivers.get(0); if (driver.getServerStatus() != 1) { return ResultUtil.error("司机正在服务中,无法转单。"); } @@ -1188,15 +1197,18 @@ order.setDriverId(driver.getId()); orderTransfer.setNewDriverId(driver.getId()); } + order.setState(104); + driver.setServerStatus(2); + driverService.updateById(driver); + Driver driver1 = driverService.selectById(oldId); + driver1.setServerStatus(1); + driverService.updateById(driver1); + }else { + order.setState(201); } - if(order.getDriverId().compareTo(uid) != 0){ - return ResultUtil.error("无权操作"); - } - if(order.getState() > 104){ - return ResultUtil.error("订单不支持转单"); - } + order.setOldState(order.getState()); - order.setState(201); + this.updateById(order); @@ -1215,6 +1227,13 @@ pushOrder(finalOrder.getId()); } }).start(); + }else { + if(driver!=null){ + PushOrderInfoWarpper pushOrderInfoWarpper = new PushOrderInfoWarpper(); + pushOrderInfoWarpper.setId(order.getId()); + pushOrderInfoWarpper.setState(201); + pushUtil.pushGrabOrder(driver.getId(), 2, order.getId(),1); + } } return ResultUtil.success(); -- Gitblit v1.7.1