From cf0ff0a221e1afdafc2b926c6faa3fbfd965632b Mon Sep 17 00:00:00 2001 From: liujie <liujie> Date: 星期三, 16 八月 2023 19:17:31 +0800 Subject: [PATCH] update --- driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java | 38 +++++++++++++----- driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/PushUtil.java | 28 ++++++++++++++ 2 files changed, 55 insertions(+), 11 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..0a93d93 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); @@ -1171,14 +1173,16 @@ @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(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 +1192,20 @@ order.setDriverId(driver.getId()); orderTransfer.setNewDriverId(driver.getId()); } - } - if(order.getDriverId().compareTo(uid) != 0){ - return ResultUtil.error("无权操作"); + 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.getState() > 104){ return ResultUtil.error("订单不支持转单"); } order.setOldState(order.getState()); - order.setState(201); + this.updateById(order); @@ -1215,6 +1224,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(); diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/PushUtil.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/PushUtil.java index c49b452..ff5b252 100644 --- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/PushUtil.java +++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/PushUtil.java @@ -297,4 +297,32 @@ System.err.println(jsonObject1.getString("msg")); } } + + + + public void pushChangeServer(Integer id, Integer type){ + Map<String, Object> map = new HashMap<>(); + JSONObject msg = new JSONObject(); + msg.put("code", 200); + msg.put("msg", "SUCCESS"); + msg.put("method", "CHANGE_SERVER"); + msg.put("data", map); + + //调用推送 + HttpHeaders headers = new HttpHeaders(); + // 以表单的方式提交 + headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); + //将请求头部和参数合成一个请求 + MultiValueMap<String, Object> params = new LinkedMultiValueMap<>(); + params.add("msg", msg.toJSONString()); + params.add("id", id.toString()); + params.add("type", type.toString()); + HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers); + String s = internalRestTemplate.postForObject("http://zuul-gateway/netty/sendMsgToClient",requestEntity , String.class); + JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class); + if(jsonObject1.getIntValue("code") != 200){ + logger.debug(jsonObject1.getString("msg")); + System.err.println(jsonObject1.getString("msg")); + } + } } -- Gitblit v1.7.1