From f72ae151cc12b219cb5f39eea3ec0ea089a6ef2a Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期三, 27 八月 2025 23:53:05 +0800 Subject: [PATCH] 修改bug --- UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java | 68 +++++++++++++++++++++++++--------- 1 files changed, 50 insertions(+), 18 deletions(-) diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java index 99ceda4..f01a2c4 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/OrderCrossCityServiceImpl.java @@ -1263,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);//待支付 @@ -1275,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); @@ -1293,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); @@ -1388,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; - } /** * 获取订单 @@ -1437,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()); @@ -1462,6 +1479,15 @@ BaseWarpper baseWarpper = new BaseWarpper(); if (null == orderCrossCity) { return ResultUtil.error("获取数据失败,订单信息有误"); + } + if (orderCrossCity.getState() == 5) { + return ResultUtil.error("订单已开始服务,不能取消订单"); + } + if (orderCrossCity.getState() == 6 || orderCrossCity.getState() == 8 || orderCrossCity.getState() == 9) { + return ResultUtil.error("订单已完成,不能取消订单"); + } + if (orderCrossCity.getState() == 10) { + return ResultUtil.error("订单已被取消,不能重复操作"); } OpenCity openCity = openCityService.openCity1(orderCrossCity.getStartLon().toString(), orderCrossCity.getStartLat().toString()); double amount = 0; @@ -1499,7 +1525,7 @@ return ResultUtil.error("取消订单失败,订单信息有误", ""); } if (orderCrossCity.getState() != 12) { - return ResultUtil.error("取消订单失败,不合法的操作", ""); + return ResultUtil.error("订单已取消,请刷新页面", ""); } OrderCancel orderCancel = null; if (null == cancleId) { @@ -1961,7 +1987,7 @@ return ResultUtil.error("取消订单失败,订单信息有误"); } if (orderCrossCity.getState() >= 5 && orderCrossCity.getState() != 7 && orderCrossCity.getState() != 11) { - return ResultUtil.error("取消订单失败,不合法的操作"); + return ResultUtil.error("订单已取消,请刷新页面"); } //还原座位 @@ -2436,12 +2462,20 @@ 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) { //关闭其他推送线程 Set<String> keySet = threadMap.keySet(); + datas.forEach(e->{ + threadMap.get(orderId + "_1"); + + + }); + + + for (String key : keySet) { if (!key.equals(orderId + "_1")) { Thread thread1 = threadMap.get(key);//中断线程 @@ -2455,7 +2489,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) { @@ -2491,8 +2525,8 @@ //所有推送完后的处理 Boolean b = pushEndMap.get(orderPrivateCar.getCrossCityOrderId()); - if (i == querys.size() + 5 && state == 1 && (null != b && !b.booleanValue())) { - pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1); + if (i == querys.size() + 15 && state == 1 && (null != b && !b.booleanValue())) { + pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, 1); OrderPrivateCarServiceImpl.orderIds.remove(orderPrivateCar.getId()); pushEndMap.put(orderPrivateCar.getCrossCityOrderId(), Boolean.TRUE);//推送后添加标识 break; @@ -2506,7 +2540,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) { @@ -2528,7 +2562,7 @@ if (orderType == 1) { orderPrivateCarMapper.deleteById(orderId); } - if (orderType == 2 && orderId != orderTaxi.getId()) { + if (orderType == 2 && !orderId.equals(orderTaxi.getId())) { orderTaxiMapper.deleteById(orderId); } } @@ -2555,16 +2589,14 @@ 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())) { - pushUtil.pushEndPush(1, orderTaxi.getUserId(), orderTaxi.getId(), 2); + if (i == querys.size() + 15 && state == 1 && (null != b && !b.booleanValue())) { + pushUtil.pushEndPush(1, orderTaxi.getUserId(), orderTaxi.getId(), 2, 1); OrderTaxiServiceImpl.orderIds.remove(orderTaxi.getId()); pushEndMap.put(orderTaxi.getCrossCityOrderId(), Boolean.TRUE);//推送后添加标识 } -- Gitblit v1.7.1