From 50350c428347d68ea1c8fa4fcc7633e4dc2550bc Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期五, 17 十月 2025 16:55:04 +0800 Subject: [PATCH] 修改bug --- driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/service/impl/OrderServiceImpl.java | 183 ++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 162 insertions(+), 21 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 d5fd06c..d5fc58a 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 @@ -5,22 +5,25 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.supersavedriving.driver.core.util.ToolUtil; import com.supersavedriving.driver.modular.system.dao.OrderMapper; import com.supersavedriving.driver.modular.system.model.*; import com.supersavedriving.driver.modular.system.service.*; import com.supersavedriving.driver.modular.system.util.*; import com.supersavedriving.driver.modular.system.util.GaoDe.MapUtil; +import com.supersavedriving.driver.modular.system.util.GaoDe.model.District; import com.supersavedriving.driver.modular.system.util.MallBook.model.*; import com.supersavedriving.driver.modular.system.util.MallBook.util.TrhRequest; import com.supersavedriving.driver.modular.system.util.mongodb.model.Location; +import com.supersavedriving.driver.modular.system.util.qianyuntong.EmployeeUtil; +import com.supersavedriving.driver.modular.system.util.qianyuntong.OrderUtil; +import com.supersavedriving.driver.modular.system.util.qianyuntong.model.AddAccountInfoRequest; +import com.supersavedriving.driver.modular.system.util.qianyuntong.model.CreateTravelItineraryRequest; +import com.supersavedriving.driver.modular.system.util.qianyuntong.model.ModifyTravelItineraryRequest; +import com.supersavedriving.driver.modular.system.util.zhenglian.ZhengLianUtil; +import com.supersavedriving.driver.modular.system.util.zhenglian.model.TradeTerminalInfo; +import com.supersavedriving.driver.modular.system.util.zhenglian.model.ZLUserInfo; import com.supersavedriving.driver.modular.system.warpper.*; -import com.supersavedriving.driver.core.util.ToolUtil; -import com.supersavedriving.driver.modular.system.util.GaoDe.model.District; -import com.supersavedriving.driver.modular.system.util.juhe.WeatherUtil; -import com.supersavedriving.driver.modular.system.util.PushUtil; -import com.supersavedriving.driver.modular.system.warpper.AddOrderWarpper; -import com.supersavedriving.driver.modular.system.warpper.HallOrderList; -import com.supersavedriving.driver.modular.system.warpper.OrderInfoWarpper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; @@ -37,6 +40,8 @@ import java.math.BigDecimal; import java.math.RoundingMode; +import java.net.InetAddress; +import java.net.NetworkInterface; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -246,9 +251,23 @@ order.setState(null == order.getDriverId() ? 101 : 102); } order.setStatus(1); - this.insert(order); driverService.updateById(driver); + if(null != appUser && null != order.getDriverId()){ + BranchOffice branchOffice = branchOfficeService.selectById(driver.getBranchOfficeId()); + //调三方订单中心创建行程单 + CreateTravelItineraryRequest request = new CreateTravelItineraryRequest(); + request.setOrderNo("DJ" + order.getId()); + request.setCustomerId(appUser.getOnconUUID()); + request.setDriverId(driver.getEmpId().toString()); + request.setSupplierShopId(branchOffice.getEnterCode()); + request.setServiceType(5); + String travelItinerary = OrderUtil.createTravelItinerary(request); + order.setTravelId(travelItinerary); + this.updateById(order); + } + + //推送状态 if(null != order.getDriverId()){ //推动订单数据 @@ -548,7 +567,7 @@ .eq("state", 2).last(" and surplusQuantity > 0 and now() < endTime and now() < failureTime")); Double d = null; for (YouTuiDriver youTuiDriver : youTuiDrivers) { - String value = redisUtil.getValue("DRIVER" + youTuiDriver.getDriverId()); + String value = redisUtil.getValue("daijia:DRIVER" + youTuiDriver.getDriverId()); if(ToolUtil.isEmpty(value)){ continue; } @@ -602,7 +621,7 @@ Double score = null;//评分 Double d = null; for (Driver driver1 : drivers) { - String value = redisUtil.getValue("DRIVER" + driver1.getId()); + String value = redisUtil.getValue("daijia:DRIVER" + driver1.getId()); if(ToolUtil.isEmpty(value)){ continue; } @@ -729,7 +748,7 @@ return; } for (Driver driver1 : drivers) { - String value = redisUtil.getValue("DRIVER" + driver1.getId()); + String value = redisUtil.getValue("daijia:DRIVER" + driver1.getId()); if (ToolUtil.isEmpty(value)) { continue; } @@ -752,12 +771,12 @@ @Override public List<HallOrderList> queryOrderHall(Integer uid, Integer pageNum, Integer pageSize) throws Exception { pageNum = (pageNum - 1) * pageSize; - String value = redisUtil.getValue("DRIVER" + uid); + String value = redisUtil.getValue("daijia:DRIVER" + uid); List<HallOrderList> hallOrderLists = this.baseMapper.queryOrderHall(pageNum, pageSize); List<HallOrderList> lists = new ArrayList<>(); hallOrderLists.forEach(hallOrderList -> { if(ToolUtil.isEmpty(hallOrderList.getAvatar())){ - hallOrderList.setAvatar("https://csxdj.obs.cn-south-1.myhuaweicloud.com:443/66cc269703a84e4da87fb21e2c21ab1f.png"); + hallOrderList.setAvatar("https://traffic.qytzt.cn/v1/AUTH_d8bef0a04db511f0b79d01a3e2b7587e/qyt20250702/imgs/management/d081e7a9-13d4-4eec-afb6-afd10885a664.png"); } hallOrderList.setCurrentDistance(0D); if(ToolUtil.isNotEmpty(value)){ @@ -894,6 +913,7 @@ order.setState(102); order.setOrderTakingTime(new Date()); this.updateById(order); + redisUtil.unlock(orderId.toString()); if(null != order.getUserId()){ @@ -901,6 +921,27 @@ appUser.setCancelCount(0); appUser.setIsException(1); appUserService.updateById(appUser); + BranchOffice branchOffice = branchOfficeService.selectById(driver.getBranchOfficeId()); + if(null == order.getTravelId()){ + //调三方订单中心创建行程单 + CreateTravelItineraryRequest request = new CreateTravelItineraryRequest(); + request.setOrderNo("DJ" + order.getId()); + request.setCustomerId(appUser.getOnconUUID()); + request.setDriverId(driver.getEmpId().toString()); + request.setSupplierShopId(branchOffice.getEnterCode()); + request.setServiceType(5); + String travelItinerary = OrderUtil.createTravelItinerary(request); + order.setTravelId(travelItinerary); + this.updateById(order); + }else{ + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(order.getTravelId()); + request.setStatus(getState(order.getState())); + request.setDriverId(driver.getEmpId().toString()); + request.setSupplierShopId(branchOffice.getEnterCode()); + OrderUtil.modifyTravelItinerary(request); + } } driver.setServerStatus(2); @@ -988,9 +1029,9 @@ orderInfoWarpper.setBalance(null == appUser ? 0D : appUser.getAccountBalance()); orderInfoWarpper.setCurrentDistance(0D); if(ToolUtil.isEmpty(orderInfoWarpper.getAvatar())){ - orderInfoWarpper.setAvatar("https://csxdj.obs.cn-south-1.myhuaweicloud.com:443/66cc269703a84e4da87fb21e2c21ab1f.png"); + orderInfoWarpper.setAvatar("https://traffic.qytzt.cn/v1/AUTH_d8bef0a04db511f0b79d01a3e2b7587e/qyt20250702/imgs/management/d081e7a9-13d4-4eec-afb6-afd10885a664.png"); } - String value = redisUtil.getValue("DRIVER" + uid); + String value = redisUtil.getValue("daijia:DRIVER" + uid); orderInfoWarpper.setPickUpTime(0); if(ToolUtil.isNotEmpty(value)){ Map<String, Double> distance = GeodesyUtil.getDistance(orderInfoWarpper.getStartLng() + "," + orderInfoWarpper.getStartLat(), value); @@ -999,6 +1040,17 @@ Map<String, String> distance1 = MapUtil.getDistance(orderInfoWarpper.getStartLng() + "," + orderInfoWarpper.getStartLat(), value, 0); orderInfoWarpper.setPickUpTime(Integer.valueOf(distance1.get("duration")) / 60); } + + Map<String, String> distance = MapUtil.getDistance(order.getStartLng() + "," + order.getStartLat(), order.getEndLng() + "," + order.getEndLat(), 1); + if(null != distance){ + Double d = Double.valueOf(distance.get("distance")) / 1000; + orderInfoWarpper.setEstimatedMileage(d); + orderInfoWarpper.setEstimatedTime(Double.valueOf(Integer.valueOf(distance.get("duration")) / 60)); + Driver driver = driverService.selectById(uid); + Order orderPrice = getOrderPrice(1, d, 0, order, "", driver.getBranchOfficeId()); + orderInfoWarpper.setEstimatedPrice(orderPrice.getEstimatedPrice()); + } + orderInfoWarpper.setDriverId(order.getDriverId()); return orderInfoWarpper; } @@ -1122,6 +1174,18 @@ } this.updateAllColumnById(order); + if(null != order.getTravelId()){ + Driver driver = driverService.selectById(order.getDriverId()); + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(order.getTravelId()); + request.setStatus(getState(order.getState())); + BranchOffice branchOffice = branchOfficeService.selectById(driver.getBranchOfficeId()); + request.setDriverId(driver.getEmpId().toString()); + request.setSupplierShopId(branchOffice.getEnterCode()); + OrderUtil.modifyTravelItinerary(request); + } + //推送订单状态 pushUtil.pushOrderStatus(order.getDriverId(), 2, order.getId(), order.getState()); if(null != order.getUserId()){ @@ -1168,7 +1232,8 @@ .where("'" + geocode.getCity() + "' like CONCAT('%', city, '%') and '" + geocode.getDistrict() + "' like CONCAT('%', district, '%') ")); city = null != weatherCity ? weatherCity.getId().toString() : ""; } - boolean badWeather = WeatherUtil.isBadWeather(city); +// boolean badWeather = WeatherUtil.isBadWeather(city); + boolean badWeather = false; if(badWeather){ Integer num8 = JSON.parseObject(systemConfig.getContent()).getInteger("num8"); if(num8 > 0){ @@ -1203,7 +1268,7 @@ return; } Integer driverId = order.getDriverId(); - String value = redisUtil.getValue("DRIVER" + driverId); + String value = redisUtil.getValue("daijia:DRIVER" + driverId); if(order.getState() == 106 || order.getState() == 301){ redisUtil.delSetValue("orderService", orderId.toString()); return; @@ -1250,7 +1315,7 @@ return; } Integer driverId = order.getDriverId(); - String value = redisUtil.getValue("DRIVER" + driverId); + String value = redisUtil.getValue("daijia:DRIVER" + driverId); if(order.getState() == 108 || order.getState() == 111){ redisUtil.delSetValue("orderService_check", orderId.toString()); return; @@ -1323,6 +1388,17 @@ } this.updateById(order); + if(null != order.getTravelId()){ + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(order.getTravelId()); + request.setStatus(getState(order.getState())); + BranchOffice branchOffice = branchOfficeService.selectById(driver.getBranchOfficeId()); + request.setDriverId(driver.getEmpId().toString()); + request.setSupplierShopId(branchOffice.getEnterCode()); + OrderUtil.modifyTravelItinerary(request); + } + orderTransfer.setOrderId(orderId); orderTransfer.setOldDriverId(order.getDriverId()); @@ -1349,6 +1425,35 @@ } return ResultUtil.success(); + } + + + private Integer getState(Integer state){ + switch (state){ + case 101://待接单 + return 1; + case 102://已接单 + return 2; + case 103://前往预约点 + return 3; + case 104://到达预约点 + return 4; + case 105://开始服务 + return 5; + case 106://到达目的地 + return 6; + case 107://待支付 + return 7; + case 108://待评价 + return 8; + case 109://已完成 + return 9; + case 201://转单中 + return 11; + case 301://已取消 + return 10; + } + return null; } @@ -1419,6 +1524,18 @@ order.setState(order.getOldState()); order.setOldState(null); this.updateAllColumnById(order); + Driver driver = driverService.selectById(order.getDriverId()); + + if(null != order.getTravelId()){ + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(order.getTravelId()); + request.setStatus(getState(order.getState())); + BranchOffice branchOffice = branchOfficeService.selectById(driver.getBranchOfficeId()); + request.setDriverId(driver.getEmpId().toString()); + request.setSupplierShopId(branchOffice.getEnterCode()); + OrderUtil.modifyTravelItinerary(request); + } OrderTransfer orderTransfer = orderTransferService.selectOne(new EntityWrapper<OrderTransfer>().eq("orderId", orderId) .eq("status", 1).isNull("successTime").orderBy("createTime desc limit 0, 1")); @@ -1453,6 +1570,20 @@ order.setState(301); this.updateById(order); + + Driver driver = driverService.selectById(order.getDriverId()); + if(null != order.getTravelId()){ + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(order.getTravelId()); + request.setStatus(getState(order.getState())); + BranchOffice branchOffice = branchOfficeService.selectById(driver.getBranchOfficeId()); + request.setDriverId(driver.getEmpId().toString()); + request.setSupplierShopId(branchOffice.getEnterCode()); + OrderUtil.modifyTravelItinerary(request); + } + + redisUtil.delSetValue("orderService", orderId.toString()); CancelOrder cancelOrder = new CancelOrder(); @@ -1463,7 +1594,6 @@ cancelOrder.setStatus(1); cancelOrder.setCreateTime(new Date()); cancelOrderService.insert(cancelOrder); - Driver driver = driverService.selectById(order.getDriverId()); if(null != driver){ driver.setServerStatus(1); driverService.updateById(driver); @@ -1571,13 +1701,14 @@ order.setPayType(3); } + Driver driver = driverService.selectById(order.getDriverId()); if(payType == 2 && state == 108){ order.setPayTime(new Date()); if(null != order.getCouponId()){ UserToCoupon userToCoupon = userToCouponService.selectById(order.getCouponId()); Coupon coupon = couponService.selectById(userToCoupon.getCouponId()); - Driver driver = driverService.selectById(order.getDriverId()); + AccountChangeDetail accountChangeDetail = new AccountChangeDetail(); accountChangeDetail.setCode(System.currentTimeMillis() + UUIDUtil.getNumberRandom(5)); accountChangeDetail.setUserType(2); @@ -1635,9 +1766,19 @@ } this.updateById(order); + if(null != order.getTravelId()){ + //中台修改订单状态 + ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); + request.setOrderId(order.getTravelId()); + request.setStatus(getState(order.getState())); + BranchOffice branchOffice = branchOfficeService.selectById(driver.getBranchOfficeId()); + request.setDriverId(driver.getEmpId().toString()); + request.setSupplierShopId(branchOffice.getEnterCode()); + OrderUtil.modifyTravelItinerary(request); + } + if((payType == 1 && state == 107) || (payType == 2 && state == 108)){ //修改司机状态和积分 - Driver driver = driverService.selectById(order.getDriverId()); driver.setServerStatus(1); driverService.updateById(driver); } -- Gitblit v1.7.1