Pu Zhibing
7 天以前 03b781dab3b98398fbf9ce8863fc32a7b1d873db
开发车型列表及下单等模块相关逻辑
1个文件已修改
104 ■■■■■ 已修改文件
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
    }
    
    /**
     * 获取下单推送完后没有司机接单的提醒