Pu Zhibing
21 小时以前 e778f1ec4f911e0b6332432edca4650461ce5870
user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/service/impl/OrderServiceImpl.java
@@ -440,7 +440,7 @@
    @Override
    public ResultUtil travelOrder(Integer uid, TravelOrder travelOrder) throws Exception {
        RLock lock1 = redissonClient.getLock("travelOrder:" + uid);
        boolean lock2 = lock1.tryLock(5, TimeUnit.SECONDS);
        boolean lock2 = lock1.tryLock(5, 10, TimeUnit.SECONDS);
        if(!lock2){
            return ResultUtil.error("系统繁忙,请稍后重试");
        }
@@ -568,6 +568,7 @@
     * 订单推送逻辑
     */
    public void pushOrder(Long orderId){
        RLock lock1 = redissonClient.getLock("pushOrder:" + orderId);
        try {
            Order order = this.selectById(orderId);
            /**
@@ -577,20 +578,8 @@
             *        合适司:积分 > 评分 > 距离
             *      3.司机没有接单直接将订单置入大厅
             */
            boolean lock = redisUtil.lock(5);
            if(!lock){
                int num1 = 1;
                while (num1 <= 10){
                    Thread.sleep(3000);//等待3秒
                    lock = redisUtil.lock(5);
                    if(lock){
                        break;
                    }else{
                        num1++;
                    }
                }
            }
            if(!lock){
            boolean lock2 = lock1.tryLock(5, 10, TimeUnit.SECONDS);
            if(!lock2){
                order.setHallOrder(1);
                this.updateById(order);
                ExtraPushOrder(order);
@@ -786,10 +775,10 @@
                ExtraPushOrder(order);
                redisUtil.setStrValue("lobbyOrder", "true");
            }
            redisUtil.unlock();
        }catch (Exception e){
            e.printStackTrace();
            redisUtil.unlock();
        }finally {
            lock1.unlock();
        }
    }