Pu Zhibing
7 天以前 03b781dab3b98398fbf9ce8863fc32a7b1d873db
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -3,7 +3,6 @@
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;
@@ -2377,114 +2376,13 @@
      return orderPrivateCarMapper.queryInvoiceOrder(type, startTime, endTime, startMoney, endMoney, uid);
   }
   
   @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"))) != 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;
   }
   
   @Override
   public List<Map<String, Object>> queryMyTravelRecord(Integer uid) throws Exception {
      return orderPrivateCarMapper.queryMyTravelRecord(uid);
   }
   
   /**
    * 获取服务中的订单数据
    *
    * @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;
   }
   
   /**
    * 获取下单推送完后没有司机接单的提醒