| | |
| | | @Autowired |
| | | private PushUtil pushUtil; |
| | | |
| | | @Autowired |
| | | private ITDriverWorkService driverWorkService; |
| | | |
| | | |
| | | |
| | | |
| | |
| | | |
| | | // 查询用户 |
| | | TAppUser tAppUser = tAppUserMapper.selectById(tOrder.getUserId()); |
| | | model.addAttribute("userName",tAppUser.getNickname()); |
| | | model.addAttribute("userPhone",tAppUser.getPhone()); |
| | | model.addAttribute("havDiscount",tAppUser.getHavDiscount()); |
| | | if(1 == tAppUser.getHavDiscount()){ |
| | | // 计算9折优惠金额 |
| | | BigDecimal multiply = tOrder.getOrderMoney().multiply(new BigDecimal("0.1")).setScale(2); |
| | | model.addAttribute("multiply",multiply); |
| | | if(null != tAppUser){ |
| | | model.addAttribute("userName",tAppUser.getNickname()); |
| | | model.addAttribute("userPhone",tAppUser.getPhone()); |
| | | model.addAttribute("havDiscount",tAppUser.getHavDiscount()); |
| | | if(1 == tAppUser.getHavDiscount()){ |
| | | // 计算9折优惠金额 |
| | | BigDecimal multiply = tOrder.getOrderMoney().multiply(new BigDecimal("0.1")).setScale(2); |
| | | model.addAttribute("multiply",multiply); |
| | | } |
| | | }else{ |
| | | model.addAttribute("userName",tOrder.getUserName()); |
| | | model.addAttribute("userPhone",tOrder.getUserPhone()); |
| | | model.addAttribute("havDiscount", 0); |
| | | model.addAttribute("multiply",0D); |
| | | } |
| | | |
| | | // 查询司机 |
| | |
| | | tOrder.setEndLat(jsonObject.getString("lat")); |
| | | tOrder.setEndLng(jsonObject.getString("lon")); |
| | | } |
| | | if(ToolUtil.isEmpty(tOrder.getStartLng()) || ToolUtil.isEmpty(tOrder.getStartLat())){ |
| | | return ResultUtil.error("请输入有效的起点"); |
| | | } |
| | | |
| | | tOrder.setCode(UUIDUtil.getTimeStr() + UUIDUtil.getNumberRandom(3)); |
| | | Double d = 0D; |
| | | if(ToolUtil.isNotEmpty(endAddress)){ |
| | | if(ToolUtil.isEmpty(tOrder.getEndLng()) || ToolUtil.isEmpty(tOrder.getEndLat())){ |
| | | return ResultUtil.error("请输入有效的终点"); |
| | | } |
| | | Map<String, String> distance = MapUtil.getDistance(tOrder.getStartLng() + "," + tOrder.getStartLat(), tOrder.getEndLng() + "," + tOrder.getEndLat(), 1); |
| | | if(null == distance){ |
| | | return ResultUtil.error("获取预估距离出错", ""); |
| | |
| | | if(order1.getState() == 101 || order1.getState() == 201){ |
| | | order1.setHallOrder(1); |
| | | TOrderServiceImpl.this.updateById(order1); |
| | | |
| | | ExtraPushOrder(order1); |
| | | } |
| | | } |
| | | }, num4 * 1000); |
| | | }else{ |
| | | order.setHallOrder(1); |
| | | this.updateById(order); |
| | | ExtraPushOrder(order); |
| | | } |
| | | } |
| | | |
| | | public void ExtraPushOrder(TOrder order){ |
| | | String startLat = order.getStartLat(); |
| | | String startLng = order.getStartLng(); |
| | | |
| | | //找到中心点 |
| | | GeoJsonPoint geoJsonPoint = new GeoJsonPoint(Double.valueOf(startLng), Double.valueOf(startLat)); |
| | | Double num = 5D;//范围公里 |
| | | //构造半径 |
| | | Distance distanceR = new Distance(num, Metrics.KILOMETERS); |
| | | //画圆 |
| | | Circle circle = new Circle(geoJsonPoint, distanceR); |
| | | // 构造query对象 |
| | | Query query = Query.query(Criteria.where("location").withinSphere(circle)); |
| | | List<Location> locations = mongoTemplate.find(query, Location.class); |
| | | List<Integer> driverIds = locations.stream().map(Location::getDriverId).collect(Collectors.toList()); |
| | | if(driverIds.size() == 0){ |
| | | return; |
| | | } |
| | | List<TDriverWork> tDriverWorks = driverWorkService.selectList(new EntityWrapper<TDriverWork>().in("driverId", driverIds).eq("status", 1)); |
| | | driverIds = tDriverWorks.stream().map(TDriverWork::getDriverId).collect(Collectors.toList()); |
| | | List<TDriver> drivers = tDriverMapper.selectList(new EntityWrapper<TDriver>().eq("approvalStatus", 2) |
| | | .eq("serverStatus", 1).eq("openOrderQRCode", 0).eq("status", 1).in("id", driverIds)); |
| | | if(drivers.size() == 0){ |
| | | return; |
| | | } |
| | | for (TDriver driver1 : drivers) { |
| | | String value = redisUtil.getValue("DRIVER" + driver1.getId()); |
| | | if (ToolUtil.isEmpty(value)) { |
| | | return; |
| | | } |
| | | pushUtil.pushGrabOrderExtras(driver1.getId(), 2); |
| | | } |
| | | } |
| | | |
| | | } |