puzhibing
2023-06-20 3f06b9de8009c1f0c16ee1996a4a8d03483fcd5b
management/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TOrderServiceImpl.java
@@ -732,8 +732,30 @@
         *        合适司:积分 > 评分 > 距离
         *      3.司机没有接单直接将订单置入大厅
         */
        try {
            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){
                redisUtil.unlock();
                order.setHallOrder(1);
                this.updateById(order);
                ExtraPushOrder(order);
                return;
            }
        TSystemConfig systemConfig = systemConfigService.selectOne(new EntityWrapper<TSystemConfig>().eq("type", 1));
        if(null == systemConfig){
                redisUtil.unlock();
            return;
        }
        JSONObject jsonObject = JSON.parseObject(systemConfig.getContent());
@@ -860,6 +882,10 @@
        }
        if(null != driver){
                TDriver tDriver = driverService.selectById(driver);
                tDriver.setServerStatus(2);
                driverService.updateById(tDriver);
            pushUtil.pushGrabOrder(driver, 2, order.getId(), num4);
            //创建定时任务处理订单到大厅
            new Timer().schedule(new TimerTask() {
@@ -867,6 +893,9 @@
                public void run() {
                    TOrder order1 = TOrderServiceImpl.this.selectById(order.getId());
                    if(order1.getState() == 101 || order1.getState() == 201){
                            tDriver.setServerStatus(1);
                            driverService.updateById(tDriver);
                        order1.setHallOrder(1);
                        TOrderServiceImpl.this.updateById(order1);
@@ -879,6 +908,13 @@
            this.updateById(order);
            ExtraPushOrder(order);
        }
            redisUtil.unlock();
        }catch (Exception e){
            redisUtil.unlock();
            e.printStackTrace();
        }
    }
    public void ExtraPushOrder(TOrder order){