From 4c99ee7028c3fe58a2cd4b8273b22c75c45574fc Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期五, 16 五月 2025 10:27:41 +0800 Subject: [PATCH] 修改文档bug --- DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java | 249 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 238 insertions(+), 11 deletions(-) diff --git a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java index 70b2700..6023a07 100644 --- a/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java +++ b/DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.stylefeng.guns.core.util.MD5Util; import com.stylefeng.guns.core.util.ToolUtil; import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics; import com.stylefeng.guns.modular.smallLogistics.model.OrderLogisticsSpread; @@ -11,11 +12,10 @@ import com.stylefeng.guns.modular.smallLogistics.server.impl.OrderLogisticsSpreadService; import com.stylefeng.guns.modular.specialTrain.model.OrderPrivateCar; import com.stylefeng.guns.modular.specialTrain.server.IOrderPrivateCarService; +import com.stylefeng.guns.modular.system.model.Car; import com.stylefeng.guns.modular.system.model.OrderPosition; import com.stylefeng.guns.modular.system.model.Reassign; -import com.stylefeng.guns.modular.system.service.IDriverService; -import com.stylefeng.guns.modular.system.service.IOrderService; -import com.stylefeng.guns.modular.system.service.IReassignService; +import com.stylefeng.guns.modular.system.service.*; import com.stylefeng.guns.modular.system.util.*; import com.stylefeng.guns.modular.system.util.GoogleMap.FleetEngineUtil; import com.stylefeng.guns.modular.system.util.Tingg.model.CallbackRequest; @@ -40,9 +40,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 订单相关控制器 @@ -77,6 +75,15 @@ @Resource private FleetEngineUtil fleetEngineUtil; + + @Autowired + private IOrderPositionService orderPositionService; + + @Autowired + private RedisUtil redisUtil; + + @Autowired + private ICarService carService; @@ -394,6 +401,13 @@ if(null == uid){ return ResultUtil.tokenErr(); } + String format = String.format("uid=%s&orderId=%s&orderType=%s&state=%s", uid, orderId, orderType, state); + String key = MD5Util.encrypt(format); + String value = redisUtil.getValue(key); + if(ToolUtil.isNotEmpty(value) && (System.currentTimeMillis() - Long.valueOf(value)) <= 1000){ + return ResultUtil.error(language == 1 ? "请勿重复操作" : language == 2 ? "Don't repeat the operation" : "Ne répétez pas l’opération"); + } + redisUtil.setStrValue(key, System.currentTimeMillis() + "", 5); return orderService.process(orderId, orderType, state, uid, lon, lat, phone, pickUpCode, language); }catch (Exception e){ e.printStackTrace(); @@ -449,7 +463,6 @@ @ApiImplicitParams({ @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"), @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,3=城际,4=同城小件物流)", name = "orderType", required = true, dataType = "int"), -// @ApiImplicitParam(value = "支付方式(1=OK平台收款,2=其他方式收款)", name = "type", required = true, dataType = "int"), @ApiImplicitParam(value = "行程费用(出租车必传)", name = "travelFee", required = false, dataType = "double"), @ApiImplicitParam(value = "停车费", name = "parkingFee", required = false, dataType = "double"), @ApiImplicitParam(value = "过路费", name = "crossingFee", required = false, dataType = "double"), @@ -465,7 +478,7 @@ return orderService.confirmFees(language, orderId, orderType, type, travelFee, parkingFee, crossingFee, uid); }catch (Exception e){ e.printStackTrace(); - return ResultUtil.runErr(); + return ResultUtil.runErr(null, e.getMessage()); } } @@ -536,7 +549,7 @@ */ @ResponseBody @PostMapping("/base/order/pushOrderState") - public String pushOrderState(Integer language, Integer orderId, Integer orderType){ + public String pushOrderState(Integer language, Integer orderId, Integer orderType, String from){ try { Map<String, Object> map = orderService.queryOrderInfo(language, orderId, orderType); //更新小号绑定关系 @@ -546,7 +559,7 @@ pushUtil.pushOrderReassign(Integer.valueOf(String.valueOf(map.get("userId"))), 1,Integer.valueOf(String.valueOf(map.get("orderId"))), orderType, ""); pushUtil.pushOrderState(1, Integer.valueOf(String.valueOf(map.get("userId"))), Integer.valueOf(String.valueOf(map.get("orderId"))), orderType, - Integer.valueOf(String.valueOf(map.get("orderState"))), 0, ""); + Integer.valueOf(String.valueOf(map.get("orderState"))), 0, "", from); return JSON.toJSONString(ResultUtil.success()); }catch (Exception e){ e.printStackTrace(); @@ -698,7 +711,7 @@ return ResultUtil.success(MoneyInfoWarpper.getMoneyInfoWarpper(map)); }catch (Exception e){ e.printStackTrace(); - return ResultUtil.runErr(); + return ResultUtil.runErr(null, e.getMessage()); } } @@ -901,4 +914,218 @@ return ResultUtil.runErr(); } } + + + @ResponseBody + @PostMapping("/base/taxi/getTripInfo") + public ResultUtil getTripInfo(String tripId){ + return ResultUtil.success(fleetEngineUtil.getTrip(tripId)); + } + + + + /** + * 更新google订单状态 + * @param tripStatus + * @param tripId + * @return + */ + @ResponseBody + @PostMapping("/base/taxi/editTripStatus") + public ResultUtil editTripStatus(String tripStatus, String tripId){ + boolean b = fleetEngineUtil.updateTrip(tripStatus, null, null, tripId, null, null, null, null, null, null); + if(b){ + return ResultUtil.success(); + } + return ResultUtil.error("更新失败"); + } + + + /** + * 上传订单经纬度 + * @param orderPosition + * @return + */ + @ResponseBody + @PostMapping("/api/order/saveOrderPosition") + public ResultUtil saveOrderPosition(OrderPosition orderPosition, HttpServletRequest request){ + try { + Integer uid = driverService.getUserIdFormRedis(request); + if(null == uid){ + return ResultUtil.tokenErr(); + } + if(null != orderPosition.getOrderId()){ + orderPosition.setDriverId(uid); + orderPosition.setInsertTime(new Date()); + orderPositionService.saveData(orderPosition); + } + redisUtil.setStrValue("DRIVER" + uid, orderPosition.getLon() + "," + orderPosition.getLat(), 300);//实时位置存入redis中 + return ResultUtil.success(); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } + + + + @ResponseBody + @PostMapping("/base/taxi/editGoogleTripStatus") + public ResultUtil editGoogleTripStatus(){ + List<OrderPrivateCar> privateCars = orderPrivateCarService.selectList(new EntityWrapper<OrderPrivateCar>().isNotNull("tripId")); + for (OrderPrivateCar privateCar : privateCars) { + Integer state = privateCar.getState(); + String tripId = privateCar.getTripId(); + String trip = fleetEngineUtil.getTrip(tripId); + if(ToolUtil.isNotEmpty(trip)){ + JSONObject jsonObject = JSON.parseObject(trip); + String tripStatus = jsonObject.getString("tripStatus"); + Car car = carService.selectById(privateCar.getCarId()); + if(Arrays.asList(10, 12).contains(state) && !"CANCELED".equals(tripStatus)){ + //修改行程信息 + boolean updateTrip = fleetEngineUtil.updateTrip("CANCELED", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, privateCar.getId(), 1); + if(!updateTrip){ + for (int i = 0; i < 5; i++) { + updateTrip = fleetEngineUtil.updateTrip("CANCELED", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, privateCar.getId(), 1); + if(updateTrip){ + privateCar.setIsover(1); + orderPrivateCarService.updateById(privateCar); + break; + } + try { + Thread.sleep(3000L); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + }else{ + privateCar.setIsover(1); + orderPrivateCarService.updateById(privateCar); + } + } + if(Arrays.asList(6, 7, 8, 9).contains(state) && !"COMPLETE".equals(tripStatus)){ + //修改行程信息 + boolean updateTrip = fleetEngineUtil.updateTrip("COMPLETE", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, privateCar.getId(), 1); + if(!updateTrip){ + for (int i = 0; i < 5; i++) { + updateTrip = fleetEngineUtil.updateTrip("COMPLETE", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, privateCar.getId(), 1); + if(updateTrip){ + privateCar.setIsover(1); + orderPrivateCarService.updateById(privateCar); + break; + } + try { + Thread.sleep(3000L); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + }else{ + privateCar.setIsover(1); + orderPrivateCarService.updateById(privateCar); + } + } + } + } + List<OrderLogistics> orderLogisticsList = orderLogisticsService.selectList(new EntityWrapper<OrderLogistics>().isNotNull("tripId")); + for (OrderLogistics orderLogistics : orderLogisticsList) { + Integer state = orderLogistics.getState(); + String tripId = orderLogistics.getTripId(); + String trip = fleetEngineUtil.getTrip(tripId); + if(ToolUtil.isNotEmpty(trip)){ + JSONObject jsonObject = JSON.parseObject(trip); + String tripStatus = jsonObject.getString("tripStatus"); + Car car = carService.selectById(orderLogistics.getCarId()); + if(Arrays.asList(10, 12).contains(state) && !"CANCELED".equals(tripStatus)){ + //修改行程信息 + boolean updateTrip = fleetEngineUtil.updateTrip("CANCELED", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, orderLogistics.getId(), 4); + if(!updateTrip){ + for (int i = 0; i < 5; i++) { + updateTrip = fleetEngineUtil.updateTrip("CANCELED", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, orderLogistics.getId(), 4); + if(updateTrip){ + orderLogistics.setIsover(1); + orderLogisticsService.updateById(orderLogistics); + break; + } + try { + Thread.sleep(3000L); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + }else{ + orderLogistics.setIsover(1); + orderLogisticsService.updateById(orderLogistics); + } + } + if(Arrays.asList(6, 7, 8, 9).contains(state) && !"COMPLETE".equals(tripStatus)){ + //修改行程信息 + boolean updateTrip = fleetEngineUtil.updateTrip("COMPLETE", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, orderLogistics.getId(), 4); + if(!updateTrip){ + for (int i = 0; i < 5; i++) { + updateTrip = fleetEngineUtil.updateTrip("COMPLETE", (null != car ? car.getVehicleId() : null), null, tripId, null, null, null, null, orderLogistics.getId(), 4); + if(updateTrip){ + orderLogistics.setIsover(1); + orderLogisticsService.updateById(orderLogistics); + break; + } + try { + Thread.sleep(3000L); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + }else{ + orderLogistics.setIsover(1); + orderLogisticsService.updateById(orderLogistics); + } + } + } + } + return ResultUtil.success(); + } + + + @ResponseBody + @PostMapping("/base/taxi/getTrips") + public String getTrips(String vehicleId, Integer pageSize, String pageToken){ + return fleetEngineUtil.getTrips(vehicleId, pageSize, pageToken); + } + + @ResponseBody + @GetMapping("/base/taxi/getTripsStatus") + public ResultUtil<List<Map<String, String>>> getTripsStatus(){ + String pageToken = null; + List<Map<String, String>> list = new ArrayList<>(); + while (true){ + String trips = fleetEngineUtil.getTrips(null, 50, pageToken); + if(ToolUtil.isEmpty(trips)){ + break; + } + JSONObject jsonObject = JSON.parseObject(trips); + JSONArray array = jsonObject.getJSONArray("trips"); + if(null == array){ + break; + } + for (int i = 0; i < array.size(); i++) { + JSONObject trip = array.getJSONObject(i); + String tripStatus = trip.getString("tripStatus"); + String name = trip.getString("name"); + Integer index = name.lastIndexOf("/") + 1; + String tripId = name.substring(index); + + Map<String, String> map = new HashMap<>(); + map.put(tripId, tripStatus); + list.add(map); + } + + pageToken = jsonObject.getString("nextPageToken"); + if(null == pageToken){ + break; + } + } + return ResultUtil.success(list); + } + + } -- Gitblit v1.7.1