From 0b5d21c6338bb3bd094a5bf2379001c4e9772eb5 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期六, 26 七月 2025 18:03:39 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java | 130 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 130 insertions(+), 0 deletions(-) diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java index b704f9f..a889be6 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java @@ -3,6 +3,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.aliyun.oss.ServiceException; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.stylefeng.guns.core.util.ToolUtil; @@ -1106,6 +1107,119 @@ } return resultUtil; } + + + @Override + public Map<String, Object> queryOrderInfo(Integer uid, Integer orderId) throws Exception { + Map<String, Object> map = orderPrivateCarMapper.queryOrderInfo(orderId); + if(null == map){ + OrderTaxi orderTaxi = orderTaxiService.selectOne(new EntityWrapper<OrderTaxi>() + .eq("userId", uid) + .eq("isDelete", 1) + .in("state", Arrays.asList(2, 3, 4, 5, 6, 7)) + ); + return orderTaxiService.queryOrderInfo(orderTaxi.getId()); + } + if(null != map.get("reassignNotice") && Integer.valueOf(String.valueOf(map.get("reassignNotice"))) == 2){//改派完成,重新获取了新的司机数据,开始修改数据防止继续调用 + OrderPrivateCar orderPrivateCar = this.selectById(orderId); + orderPrivateCar.setReassignNotice(0); + this.updateById(orderPrivateCar); + } + if(Integer.valueOf(String.valueOf(map.get("state"))) == 11){ + map.put("state", map.get("oldState")); + } + if(Integer.valueOf(String.valueOf(map.get("state"))) ==7 && (map.get("responsibilityType")==null || Integer.valueOf(String.valueOf(map.get("responsibilityType")))<4)){ + map.put("appealButton", 1); + } + if(map.get("abnormalIntro")!=null){ + map.put("appealStatus", 1); + } + + + if(Integer.valueOf(String.valueOf(map.get("state"))) != 8 && Integer.valueOf(String.valueOf(map.get("state"))) != 9){ + map.put("redPacketMoney", null); + map.put("couponMoney", null); + } + + String driverId = (String) redisTemplate.opsForValue().get("DEVICE_" + map.get("driverId")); + map.put("device", ToolUtil.isNotEmpty(driverId) ? 2 : 1); + map.put("orderType", 1); + return map; + } + + /** + * 获取服务中的订单数据 + * @param uid + * @return + * @throws Exception + */ + @Override + public OrderServerWarpper queryOrderServer(Integer orderId, Integer uid) throws Exception { + OrderPrivateCar orderPrivateCar = this.selectById(orderId); + if(null == orderPrivateCar){ + return orderTaxiService.queryOrderServer(orderId, uid); + } + //计算预计距离和剩余时间 + String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderPrivateCar.getDriverId())); + if(null == value || "".equals(value)){ + System.err.println("司机没有上传位置信息"); + + //调用获取轨迹中的数据 + List<Map<String, Object>> list = orderPositionService.queryTrack(orderId, 2); + if(list.size() > 0){ + Map<String, Object> map = list.get(list.size() - 1); + value = map.get("lon") + "," + map.get("lat"); + } + + } + + OrderServerWarpper orderServerWarpper = new OrderServerWarpper(); + orderServerWarpper.setOrderId(orderPrivateCar.getId()); + orderServerWarpper.setOrderType(1); + orderServerWarpper.setState(orderPrivateCar.getState()); + orderServerWarpper.setLon(null != value ? value.split(",")[0] : "0.0"); + orderServerWarpper.setLat(null != value ? value.split(",")[1] : "0.0"); + orderServerWarpper.setReassignNotice(orderPrivateCar.getReassignNotice()); + if(orderPrivateCar.getState() == 2 || orderPrivateCar.getState() == 3){//前往预约地 + // TODO: 2023/11/4 无法修改 + Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), 1); + String d = "0"; + String t = "0"; + if(null == distance){ + System.err.println("查询距离出错了"); + }else{ + d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString(); + t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + ""; + } + orderServerWarpper.setReservationMileage(d); + orderServerWarpper.setReservationTime(t); + orderServerWarpper.setServedMileage("0"); + orderServerWarpper.setServedTime("0"); + orderServerWarpper.setLaveMileage("0"); + orderServerWarpper.setLaveTime("0"); + } + if(orderPrivateCar.getState() == 5 || orderPrivateCar.getState() == 6){//服务中 + // TODO: 2023/11/4 无法修改 + Map<String, String> distance = gdMapElectricFenceUtil.getDistance(value, orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat(), 1); + String d = "0"; + String t = "0"; + if(null == distance){ + System.err.println("查询距离出错了"); + }else{ + d = new BigDecimal(distance.get("distance")).divide(new BigDecimal(1000), new MathContext(2, RoundingMode.HALF_EVEN)).toString(); + t = new BigDecimal(distance.get("duration")).divide(new BigDecimal(60), new MathContext(2, RoundingMode.HALF_EVEN)).intValue() + ""; + } + orderServerWarpper.setReservationMileage("0"); + orderServerWarpper.setReservationTime("0"); + orderServerWarpper.setServedMileage(String.valueOf((null == orderPrivateCar.getMileage() ? 0 : orderPrivateCar.getMileage()) / 1000)); + orderServerWarpper.setServedTime(Long.valueOf((new Date().getTime() - orderPrivateCar.getStartServiceTime().getTime()) / 60000).intValue() + ""); + orderServerWarpper.setLaveMileage(d); + orderServerWarpper.setLaveTime(t); + } + + return orderServerWarpper; + } + @Override public synchronized String getOrderNum() throws Exception { @@ -2687,4 +2801,20 @@ } }).start(); } + + + + + @Override + public void addAppeal(Integer uid, Integer orderId,String abnormalIntro, String abnormalImg) { + OrderPrivateCar orderPrivateCar = this.selectById(orderId); + if(orderPrivateCar.getState()!=7 || orderPrivateCar.getAbnormalIntro()!=null){ + throw new RuntimeException("此订单无法申诉"); + } + orderPrivateCar.setAbnormalIntro(abnormalIntro); + orderPrivateCar.setAbnormalImg(abnormalImg); + orderPrivateCar.setAbnormal(1); + this.baseMapper.updateById(orderPrivateCar); + + } } -- Gitblit v1.7.1