From 70211b41954df4ac1232f48420b89c13fb5fb451 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期三, 25 六月 2025 15:06:58 +0800 Subject: [PATCH] 更新用户端功能 --- UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java | 103 +++++++++++++++++++++------------------------------ 1 files changed, 43 insertions(+), 60 deletions(-) diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java index b5c6c41..0773dcd 100644 --- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java +++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java @@ -108,28 +108,28 @@ @Autowired private IUserRedPacketRecordService userRedPacketRecordService; - + @Autowired private GDMapGeocodingUtil gdMapGeocodingUtil; - + @Autowired private ICompanyCityService companyCityService; - + @Autowired private PushUtil pushUtil; - @Autowired - private RedisTemplate redisTemplate; - + @Resource + private RedisTemplate<String, Object> redisTemplate; + @Autowired private RestTemplate internalRestTemplate; - + @Autowired private IUserActivityRedenvelopeService userActivityRedenvelopeService; - + @Autowired private IDriverOrdersService driverOrdersService; - + @Autowired private IIncomeService incomeService; @@ -2085,66 +2085,49 @@ orderIds.add(orderTaxi.getId());//添加记录,防止调用接口重复提醒无人接单 String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE"); List<Integer> integers = new ArrayList<>(); - if(ToolUtil.isNotEmpty(vehicle)){ + 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());//获取需要推送的次数 boolean b = false; - for(int i = 1; i <= querys.size(); i++){ - if(b){ + for (int i = 1; i <= querys.size(); i++) { + if (b) { break; } PushOrder pushOrder = pushOrderService.querys(i, 2, query.getId()).get(0); - System.out.println("pushOrder:"+pushOrder); - int i2 = pushOrder.getPushTime() / 10; - if(i2==0){ - i2=1; + System.out.println("pushOrder:" + pushOrder); + //获取空闲司机 + List<Driver> list = driverService.queryIdleDriver(2, orderTaxi.getStartLon(), orderTaxi.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机 + if (list.size() > 0) { + double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数 + int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取) + lastIndex = lastIndex == 0 ? list.size() : lastIndex; + list = list.subList(0, lastIndex);//获取空闲司机中占比数据 + for (Driver driver : list) {//开始进行推送 + //查询是否在限制推单范围内 + boolean bo = false; + for (Integer integer : integers) { + if (integer.compareTo(driver.getId()) == 0) { + bo = true; + break; + } + } + if (bo) { + continue; + } + pushUtil.pushOrderState(2, driver.getId(), orderTaxi.getId(), 2, orderTaxi.getState(), pushOrder.getPushTime()); + } } - System.out.println(i2); - for (int i1 = 0; i1 < i2 ; i1++) { - Integer state = 0; - //批量订单 - if(type == 3){ - OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(orderTaxi.getId()); - if(null == orderPrivateCar || orderPrivateCar.getState() != 1){ - b = true; - break; - } - }else{ - state = orderTaxiMapper.selectById(orderTaxi.getId()).getState(); - if(state != 1){ - b = true; - break; - } - } - //获取空闲司机 - List<Driver> list = driverService.queryIdleDriver(2, orderTaxi.getStartLon(), orderTaxi.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机 - if(list.size() > 0){ - double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数 - int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取) - lastIndex = lastIndex == 0 ? list.size() : lastIndex; - list = list.subList(0, lastIndex);//获取空闲司机中占比数据 - for(Driver driver : list){//开始进行推送 - //查询是否在限制推单范围内 - boolean bo = false; - for(Integer integer : integers){ - if(integer.compareTo(driver.getId()) == 0){ - bo = true; - break; - } - } - if(bo){ - continue; - } - pushUtil.pushOrderState(2, driver.getId(), orderTaxi.getId(), 2, orderTaxi.getState(), pushOrder.getPushTime()); - } - } - Thread.sleep( 10000);//设置等待时间 - if(i == querys.size() && state == 1){ - pushUtil.pushEndPush(1, orderTaxi.getUserId(), orderTaxi.getId(), 2); - orderIds.remove(orderTaxi.getId()); - } + Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间 + OrderTaxi orderTaxi1 = OrderTaxiServiceImpl.this.selectById(orderTaxi.getId()); + Integer state = orderTaxi1.getState(); + if (state != 1) { + break; + } + if (i == querys.size() && state == 1) { + pushUtil.pushEndPush(1, orderTaxi.getUserId(), orderTaxi.getId(), 2); + orderIds.remove(orderTaxi.getId()); } } } catch (Exception e) { -- Gitblit v1.7.1