| | |
| | | |
| | | @Autowired |
| | | private ITOrderTaxiService tOrderTaxiService; |
| | | @Autowired |
| | | private ITPubTransactionDetailsService pubTransactionDetailsService; |
| | | |
| | | @Autowired |
| | | private ITOrderPositionService tOrderPositionService; |
| | |
| | | public String tOrderTaxiUpdate(@PathVariable Integer tOrderTaxiId, Model model) { |
| | | Map<String, Object> tOrderTaxi = tOrderTaxiService.getTaxiOrderDetailById(tOrderTaxiId); |
| | | model.addAttribute("item",tOrderTaxi); |
| | | // 查询司机扣款 |
| | | TPubTransactionDetails tPubTransactionDetails = pubTransactionDetailsService.selectOne(new EntityWrapper<TPubTransactionDetails>() |
| | | .eq("userId", tOrderTaxi.get("driverId")) |
| | | .eq("state", 2) |
| | | .eq("type", 1) |
| | | .eq("userType", 6) |
| | | .eq("payState", 2) |
| | | .last("LIMIT 1")); |
| | | if (tPubTransactionDetails==null){ |
| | | model.addAttribute("companyMoney",""); |
| | | model.addAttribute("driverMoney",""); |
| | | |
| | | }else{ |
| | | model.addAttribute("companyMoney",tPubTransactionDetails.getMoney()); |
| | | model.addAttribute("driverMoney",new BigDecimal(tOrderTaxi.get("payMoney").toString()).subtract(tPubTransactionDetails.getMoney())); |
| | | |
| | | |
| | | } |
| | | if (tOrderTaxi.get("payManner")!=null){ |
| | | if(tOrderTaxi.get("payManner").equals("1")){ |
| | | model.addAttribute("payMannerStr","线上收款"); |
| | | }else { |
| | | model.addAttribute("payMannerStr","计费打表"); |
| | | } |
| | | } |
| | | |
| | | LogObjectHolder.me().set(tOrderTaxi); |
| | | return PREFIX + "tOrderTaxi_edit.html"; |
| | | } |
| | |
| | | * @param orderDetailId |
| | | * @return |
| | | */ |
| | | public static String URL = "https://yingyan.baidu.com/api/v3/track/gettrack?"; |
| | | |
| | | public static String AK = "WQhfsluNzEeUHUxoH4jc4JiCQOXw4Mnx"; |
| | | @ResponseBody |
| | | @RequestMapping(value = "/getOrderTrack", method = RequestMethod.POST) |
| | | public ResultUtil getOrderTrack(String orderDetailId){ |
| | | if(ToolUtil.isNotEmpty(orderDetailId)){ |
| | | try { |
| | | // List<TOrderPosition> list = tOrderPositionService.selectList(new EntityWrapper<TOrderPosition>().eq("orderType", 2).eq("orderId", orderDetailId).orderBy("insertTime")); |
| | | /*if(list.size() == 0){ |
| | | return ResultUtil.error("该订单没有运行轨迹"); |
| | | }*/ |
| | | //将数据存储到文件中 |
| | | File file = new File(filePath + orderDetailId + "_2.txt"); |
| | | if(!file.exists()){ |
| | | return ResultUtil.success(new ArrayList<>()); |
| | | } |
| | | //读取文件(字符流) |
| | | BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8")); |
| | | //循环取出数据 |
| | | String str = null; |
| | | StringBuffer sb = new StringBuffer(); |
| | | while ((str = in.readLine()) != null) { |
| | | sb.append(str); |
| | | } |
| | | List<TOrderPosition> list = JSONArray.parseArray(sb.toString(), TOrderPosition.class); |
| | | TOrderTaxi tOrderTaxi = tOrderTaxiService.selectById(orderDetailId); |
| | | TDriver tDriver = driverService.selectById(tOrderTaxi.getDriverId()); |
| | | SearchHttpAK ta = new SearchHttpAK(); |
| | | Map params = new LinkedHashMap<String, String>(); |
| | | params.put("ak", AK); |
| | | params.put("entity_name", tDriver.getPhone()); |
| | | params.put("service_id", "241187"); |
| | | long start = tOrderTaxi.getStartServiceTime().getTime() / 1000L; |
| | | long end = tOrderTaxi.getEndServiceTime().getTime() / 1000L; |
| | | params.put("start_time", start+""); |
| | | params.put("end_time", end+""); |
| | | String s = ta.requestGetAK(URL, params); |
| | | List<TOrderPositionBaiDu> list = JSONArray.parseArray(s.toString(), TOrderPositionBaiDu.class); |
| | | resultUtil = ResultUtil.success(list); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | |
| | | TSysPushOrder pushOrder = pushOrderService.querys(i, 2, query.getId()).get(0); |
| | | //获取空闲司机 |
| | | List<TDriver> list = driverService.queryIdleDriver(2, orderTaxi.getStartLon(), orderTaxi.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机 |
| | | System.out.println("空闲司机1"+list); |
| | | if(list.size() > 0){ |
| | | double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数 |
| | | System.out.println("空闲司机2"+driverProportion); |
| | | |
| | | int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取) |
| | | System.out.println("空闲司机3"+lastIndex); |
| | | lastIndex = lastIndex == 0 ? list.size() : lastIndex; |
| | | list = list.subList(0, lastIndex);//获取空闲司机中占比数据 |
| | | System.out.println("空闲司机4"+list); |
| | | for(TDriver driver : list){//开始进行推送 |
| | | //查询是否在限制推单范围内 |
| | | boolean bo = false; |
| | | System.out.println("integers"+integers); |
| | | for(Integer integer : integers){ |
| | | System.out.println("距离"+integer); |
| | | if(integer.compareTo(driver.getId()) == 0){ |
| | | bo = true; |
| | | break; |
| | |
| | | if(bo){ |
| | | continue; |
| | | } |
| | | System.out.println("推送1"); |
| | | pushUtil.pushOrderState(2, driver.getId(), orderTaxi.getId(), 2, orderTaxi.getState(), pushOrder.getPushTime()); |
| | | System.out.println("推送2"); |
| | | } |
| | | } |
| | | Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间 |