liujie
8 天以前 729a5a0592cac7750e8b476c5fcb25bfc3ff8d25
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
@@ -190,13 +190,9 @@
    private String callbackPath;
    /**
     * 出租车下单操作
    *
     * @param orderTaxi
     * @param uid
     * @return
@@ -343,11 +339,11 @@
//            orderTaxi.setTrackId(track);
//
            //调用移动的小号接口
            Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderTaxi.getPassengersPhone(), driver.getPhone(), (System.currentTimeMillis() + 86400000));
            if(String.valueOf(map.get("code")).equals("200")){
                orderTaxi.setTelX(map.get("telX"));
                orderTaxi.setBindId(map.get("bindId"));
            }
//         Map<String, String> map = chinaMobileUtil.midAxbBindSend(orderTaxi.getPassengersPhone(), driver.getPhone(), (System.currentTimeMillis() + 86400000));
//         if (String.valueOf(map.get("code")).equals("200")) {
//            orderTaxi.setTelX(map.get("telX"));
//            orderTaxi.setBindId(map.get("bindId"));
//         }
            driver.setState(3);
            driverService.updateById(driver);
@@ -383,6 +379,7 @@
    /**
     * 继续执行推动等待操作
    *
     * @param id
     * @throws Exception
     */
@@ -432,6 +429,7 @@
    /**
     * 获取取消订单需要支付的金额(包含小费)
    *
     * @param id
     * @return
     * @throws Exception
@@ -443,7 +441,8 @@
            return ResultUtil.error("获取数据失败,订单信息有误");
        }
        double amount = 0;
        CancleOrder query = cancleOrderService.query(orderTaxi.getOrderType(), 2, orderTaxi.getCompanyId());
      OpenCity openCity = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
      CancleOrder query = cancleOrderService.query(orderTaxi.getOrderType(), 2, openCity.getId());
        if(null == query){
            return ResultUtil.error("请先完善取消规则");
        }
@@ -461,6 +460,7 @@
    /**
     * 添加订单取消
    *
     * @param id
     * @param reason
     * @param remark
@@ -510,7 +510,8 @@
                this.updateById(orderTaxi);
            }
        }else {
            CancleOrder query = cancleOrderService.query(orderTaxi.getOrderType(), 2, orderTaxi.getCompanyId());
         OpenCity openCity = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
         CancleOrder query = cancleOrderService.query(orderTaxi.getOrderType(), 2, openCity.getId());
            if (null != query) {
                if ((orderTaxi.getSnatchOrderTime().getTime() + query.getMinuteNum() * 60 * 1000) < System.currentTimeMillis() && query.getMoney().compareTo(0D) > 0) {//收费的情况
                    orderTaxi.setState(12);
@@ -552,6 +553,7 @@
    /**
     * 取消订单操作
    *
     * @param id
     * @return
     * @throws Exception
@@ -577,7 +579,8 @@
            orderCancel = orderCancelService.selectById(cancleId);
        }
        CancleOrder query = cancleOrderService.query(orderTaxi.getOrderType(), 2, orderTaxi.getCompanyId());
      OpenCity openCity = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
      CancleOrder query = cancleOrderService.query(orderTaxi.getOrderType(), 2, openCity.getId());
        System.out.println("取消订单:"+query);
        if(null != query){
            if(payType == 1){//微信支付
@@ -673,6 +676,7 @@
    /**
     * 删除定时任务
    *
     * @param orderId
     */
    @Override
@@ -696,6 +700,7 @@
    /**
     * 获取用户余额和可用优惠券数量
    *
     * @param uid
     * @return
     * @throws Exception
@@ -821,6 +826,7 @@
    /**
     * 获取最优数据
    *
     * @param orderTaxi
     * @param price
     * @param id
@@ -938,9 +944,9 @@
    }
    /**
     * 获取优惠券列表
    *
     * @param orderId
     * @return
     * @throws Exception
@@ -1198,6 +1204,7 @@
    /**
     * 订单完成支付订单操作
    *
     * @param payType   1=微信,2=支付宝,3=余额
     * @param orderId
     * @return
@@ -1280,7 +1287,8 @@
            userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            SysIntegral query1 = sysIntegralMapper.query(orderTaxi.getCompanyId());
         OpenCity openCity = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
         SysIntegral query1 = sysIntegralMapper.query(openCity.getId());
            userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分
            //添加交易明细
@@ -1531,7 +1539,8 @@
            userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(orderMoney)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
            SysIntegral query1 = sysIntegralMapper.query(orderTaxi.getCompanyId());
         OpenCity openCity = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
         SysIntegral query1 = sysIntegralMapper.query(openCity.getId());
            if(null != query1){
                userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分
            }
@@ -1600,10 +1609,13 @@
        this.updateAllColumnById(orderTaxi);
        return resultUtil;
    }
    @Autowired
    private AppOrderController appOrderController;
    /**
     * 手动完成订单操作
    *
     * @param orderId
     * @param orderType
     * @return
@@ -1641,6 +1653,7 @@
    /**
     * 获取用户的订单列表
    *
     * @param uid
     * @param pageNum
     * @param size
@@ -1662,6 +1675,7 @@
    /**
     * 获取历史消费记录
    *
     * @param uid
     * @return
     * @throws Exception
@@ -1674,6 +1688,7 @@
    /**
     * 获取红包使用记录
    *
     * @param uid
     * @return
     * @throws Exception
@@ -1686,6 +1701,7 @@
    /**
     * 获取用户单发票页面的订单列表
    *
     * @param type          开票状态(1=未开票,2=已开票)
     * @param startTime     订单开始时间
     * @param endTime       订单结束时间
@@ -1706,6 +1722,7 @@
    /**
     * 获取订单详情
    *
     * @param orderId
     * @return
     */
@@ -1727,7 +1744,6 @@
        if(map.get("abnormalIntro")!=null){
            map.put("appealStatus", 1);
        }
        String driverId = (String) redisTemplate.opsForValue().get("DEVICE_" + map.get("driverId"));
        map.put("device", ToolUtil.isNotEmpty(driverId) ? 2 : 1);
        map.put("orderType", 2);
@@ -1737,6 +1753,7 @@
    /**
     * 获取下单推送完后没有司机下单的提醒
    *
     * @return
     * @throws Exception
     */
@@ -1750,10 +1767,12 @@
                endPushWarpper.setOrderId(orderTaxi.getId());
                endPushWarpper.setOrderType(2);
                endPushWarpper.setState(1);
                List<PushOrder> querys = pushOrderService.querys(null, 2, orderTaxi.getCompanyId());//获取需要推送的次数
            OpenCity openCity = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
            List<PushOrder> querys = pushOrderService.querys(null, 2, openCity.getId());//获取需要推送的次数
                int time = 0;
                for(int i = 1; i <= querys.size()+5; i++){
                    PushOrder pushOrder = pushOrderService.querys(i, 2, orderTaxi.getCompanyId()).get(0);
               int finalI = i;
               PushOrder pushOrder = querys.stream().filter(s -> s.getType() == (finalI <= 3 ? finalI : 3)).findFirst().orElse(null);
                    time += pushOrder.getPushTime() * 1000;
                }
                //当前时间减去推单总时间大于下单时间
@@ -1767,10 +1786,9 @@
    }
    /**
     * 获取服务中的订单数据
    *
     * @param uid
     * @return
     * @throws Exception
@@ -1847,6 +1865,7 @@
    /**
     * 评论成功后获取红包金额
    *
     * @param orderId
     * @return
     * @throws Exception
@@ -1902,6 +1921,7 @@
    /**
     * 分享成功后添加红包
    *
     * @param orderId
     * @return
     * @throws Exception
@@ -1938,6 +1958,7 @@
    /**
     * 获取订单数据
    *
     * @param uid
     * @param state
     * @return
@@ -1952,6 +1973,7 @@
    /**
     * 订单支付完成后的处理
    *
     * @param id            订单=id
     * @param order_id      工行支付单号
     * @param type          1=微信,2=支付宝
@@ -1969,7 +1991,8 @@
            orderTaxi.setPayMoney(query.getAmount());
            UserInfo userInfo = userInfoService.selectById(orderTaxi.getUserId());
            SysIntegral query1 = sysIntegralMapper.query(orderTaxi.getCompanyId());
         OpenCity openCity = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
         SysIntegral query1 = sysIntegralMapper.query(openCity.getId());
            userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分
            userInfoService.updateById(userInfo);
@@ -2038,6 +2061,7 @@
    /**
     * 取消订单支付后的处理
    *
     * @param id            订单=id
     * @param order_id      工行支付单号
     * @param type          1=微信,2=支付宝
@@ -2092,6 +2116,7 @@
    /**
     * 推送订单给司机抢单
    *
     * @param orderTaxi
     * @throws Exception
     */
@@ -2107,10 +2132,13 @@
                    if (ToolUtil.isNotEmpty(vehicle)) {
                        integers = JSON.parseArray(vehicle).toJavaList(Integer.class);
                    }
                    Company query = companyCityService.query(String.valueOf(orderTaxi.getStartLon()), String.valueOf(orderTaxi.getStartLat()));//获取起点所属分公司
                    List<PushOrder> querys = pushOrderService.querys(null, 2, query.getId());//获取需要推送的次数
               OpenCity openCity = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
               List<PushOrder> querys = pushOrderService.querys(null, 2, openCity.getId());//获取需要推送的次数
               //整轮派单结束,若无司机接单,系统自动增加派单5轮,若增加5轮后任无司机接单,则系统结束派单,乘客端显示无司机接单、是否再次打车
                    for (int i = 1; i <= querys.size()+5; i++) {
                        PushOrder pushOrder = pushOrderService.querys(i, 2, query.getId()).get(0);
                  int finalI = i;
                  PushOrder pushOrder = querys.stream().filter(s -> s.getType() == (finalI <= 3 ? finalI : 3)).findFirst().orElse(null);
                        System.out.println("pushOrder:" + pushOrder);
                        //获取空闲司机
                        List<Driver> list = driverService.queryIdleDriver(2, orderTaxi.getStartLon(), orderTaxi.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机
@@ -2153,7 +2181,6 @@
    }
    @Override
    public synchronized String getOrderNum() throws Exception{
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
@@ -2185,7 +2212,8 @@
//            }
            userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(money)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
    
            SysIntegral query1 = sysIntegralMapper.query(orderTaxi.getCompanyId());
         OpenCity openCity = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
         SysIntegral query1 = sysIntegralMapper.query(openCity.getId());
            userInfo.setIntegral(userInfo.getIntegral() + (money.intValue() * query1.getIntegral()));//积分
    
            //添加交易明细
@@ -2222,7 +2250,8 @@
        query.setCode(order_id);
        paymentRecordService.updateById(query);
        SysIntegral query1 = sysIntegralMapper.query(orderTaxi.getCompanyId());
      OpenCity openCity = openCityService.openCity1(orderTaxi.getStartLon().toString(), orderTaxi.getStartLat().toString());
      SysIntegral query1 = sysIntegralMapper.query(openCity.getId());
        userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分
        //添加交易明细