| | |
| | | JSONObject jsonObject = JSONObject.parseObject(spellOrderRule.getContent()); |
| | | //判断时间 |
| | | if (travelTime.getTime() >= order.getTravelTime().getTime() - jsonObject.getInteger("num5") * 60000L && travelTime.getTime() <= order.getTravelTime().getTime() + jsonObject.getInteger("num6") * 60000L) { |
| | | String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(order.getDriverId())); |
| | | String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(order.getDriverId())); |
| | | // Double dis1 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value, 1).get("distance").toString()); |
| | | // Double dis2 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat(), order.getEndLon() + "," + order.getEndLat(), 1).get("distance").toString()); |
| | | |
| | |
| | | JSONObject jsonObject = JSONObject.parseObject(spellOrderRule.getContent()); |
| | | //判断时间 |
| | | if (travelTime.getTime() >= order.getTravelTime().getTime() - jsonObject.getInteger("num5") * 60000L && travelTime.getTime() <= order.getTravelTime().getTime() + jsonObject.getInteger("num6") * 60000L) { |
| | | String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(order.getDriverId())); |
| | | String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(order.getDriverId())); |
| | | // Double dis1 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value, 1).get("distance").toString()); |
| | | // Double dis2 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat(), order.getEndLon() + "," + order.getEndLat(), 1).get("distance").toString()); |
| | | |
| | |
| | | JSONObject jsonObject = JSONObject.parseObject(spellOrderRule.getContent()); |
| | | //判断时间 |
| | | if (orderPrivateCar.getTravelTime().getTime() >= order.getTravelTime().getTime() - jsonObject.getInteger("num5") * 60000L && orderPrivateCar.getTravelTime().getTime() <= order.getTravelTime().getTime() + jsonObject.getInteger("num6") * 60000L) { |
| | | String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(order.getDriverId())); |
| | | String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(order.getDriverId())); |
| | | // Double dis1 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getStartLon() + "," + orderPrivateCar.getStartLat(), value, 1).get("distance").toString()); |
| | | // Double dis2 = Double.valueOf(gdMapElectricFenceUtil.getDistance(orderPrivateCar.getEndLon() + "," + orderPrivateCar.getEndLat(), order.getEndLon() + "," + order.getEndLat(), 1).get("distance").toString()); |
| | | // TODO: 2023/11/4 已改成计算直线距离 |
| | |
| | | return orderTaxiService.queryOrderServer(orderId, uid); |
| | | } |
| | | //计算预计距离和剩余时间 |
| | | String value = (String) redisTemplate.opsForValue().get("DRIVER" + String.valueOf(orderPrivateCar.getDriverId())); |
| | | String value = (String) redisTemplate.opsForValue().get("dache:DRIVER" + String.valueOf(orderPrivateCar.getDriverId())); |
| | | if(null == value || "".equals(value)){ |
| | | System.err.println("司机没有上传位置信息"); |
| | | |
| | |
| | | //调用中台创建订单及拉起支付接口 |
| | | TradeOrderCreateData tradeOrderCreateData = new TradeOrderCreateData(); |
| | | tradeOrderCreateData.setTreatShopId(driver.getEmpId().toString()); |
| | | tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderPrivateCar.getPromotion() == 2 ? 1 : 0) + "\"}"); |
| | | //追缴单不要分账 |
| | | if(0 == orderPrivateCar.getRecoveryOrder()){ |
| | | tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"" + (orderPrivateCar.getPromotion() == 2 ? 1 : 0) + "\"}"); |
| | | }else{ |
| | | tradeOrderCreateData.setField1("{\"profitSharing\":\"0\",\"isPromote\":\"0\"}"); |
| | | } |
| | | tradeOrderCreateData.setCharge(new BigDecimal(orderMoney)); |
| | | tradeOrderCreateData.setOrderId(orderPrivateCar.getTravelId()); |
| | | tradeOrderCreateData.setOrderNo("PR" + orderPrivateCar.getId()); |
| | |
| | | List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); |
| | | GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); |
| | | goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId()); |
| | | if(0 == orderPrivateCar.getRecoveryOrder()){ |
| | | goodsInfoRequest.setProfitSharing("1"); |
| | | }else{ |
| | | goodsInfoRequest.setProfitSharing("0"); |
| | | } |
| | | goodsInfo.add(goodsInfoRequest); |
| | | tradeOrderCreateData.setGoodsInfo(goodsInfo); |
| | | TradeOrderCreate tradeOrderCreate = OrderUtil.tradeOrderCreate1(tradeOrderCreateData); |
| | |
| | | List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); |
| | | GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); |
| | | goodsInfoRequest.setSubOpenId(userInfo.getAppletsOpenId()); |
| | | if(0 == orderPrivateCar.getRecoveryOrder()){ |
| | | goodsInfoRequest.setProfitSharing("1"); |
| | | }else{ |
| | | goodsInfoRequest.setProfitSharing("0"); |
| | | } |
| | | goodsInfo.add(goodsInfoRequest); |
| | | tradePayOff1Data.setGoodsInfo(goodsInfo); |
| | | PayInfo payInfo = OrderUtil.tradePayOff1(tradePayOff1Data); |
| | |
| | | //添加收入 |
| | | Map<String, Object> map = incomeService.saveIncome(orderPrivateCar.getId(), 1, orderPrivateCar.getOrderMoney()); |
| | | orderPrivateCar.setSplitAllocation(JSON.toJSONString(map)); |
| | | |
| | | |
| | | promotion(orderPrivateCar.getId()); |
| | | |
| | | |
| | | // TODO: 2020/5/24 这里需要给司机和用户推送订单状态 |
| | | new Thread(new Runnable() { |
| | | @Override |
| | |
| | | paymentRecordService.updateById(query); |
| | | OpenCity openCity = openCityService.openCity1(orderPrivateCar.getStartLon().toString(), orderPrivateCar.getStartLat().toString()); |
| | | SysIntegral query1 = sysIntegralMapper.query(openCity.getId()); |
| | | System.out.println("query1:" + query1); |
| | | // System.out.println("query1:" + query1); |
| | | userInfo.setIntegral(userInfo.getIntegral() + (query.getAmount().intValue() * query1.getIntegral()));//积分 |
| | | |
| | | //添加交易明细 |
| | |
| | | int finalI = i; |
| | | PushOrder pushOrder = querys.stream().filter(s -> s.getType() == (finalI <= 3 ? finalI : 3)).findFirst().orElse(null); |
| | | System.out.println("pushOrder:" + pushOrder); |
| | | int i2 = pushOrder.getPushTime() / 10; |
| | | if (i2 == 0) { |
| | | i2 = 1; |
| | | if (orderPrivateCar.getState() > 1) { |
| | | break; |
| | | } |
| | | for (int i1 = 0; i1 < i2; i1++) { |
| | | if (orderPrivateCar.getState() > 1) { |
| | | break; |
| | | } |
| | | //获取空闲司机 |
| | | List<Driver> list = driverService.queryIdleDriver(orderType, serverCarModelId, startLon, startLat, 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; |
| | | } |
| | | //获取空闲司机 |
| | | List<Driver> list = driverService.queryIdleDriver(orderType, serverCarModelId, startLon, startLat, 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(), id, 1, 1, pushOrder.getPushTime()); |
| | | } |
| | | if (bo) { |
| | | continue; |
| | | } |
| | | pushUtil.pushOrderState(2, driver.getId(), id, 1, 1, pushOrder.getPushTime()); |
| | | } |
| | | Thread.sleep(10000);//设置等待时间 |
| | | Integer state = orderPrivateCarMapper.selectById(orderPrivateCar.getId()).getState(); |
| | | if (state > 1) { |
| | | orderIds.remove(orderPrivateCar.getId()); |
| | | break; |
| | | } |
| | | if (i == querys.size() + 5) { |
| | | pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1); |
| | | orderIds.remove(orderPrivateCar.getId()); |
| | | } |
| | | } |
| | | Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间 |
| | | Integer state = orderPrivateCarMapper.selectById(orderPrivateCar.getId()).getState(); |
| | | if (state > 1) { |
| | | orderIds.remove(orderPrivateCar.getId()); |
| | | break; |
| | | } |
| | | if (i == querys.size() + 5) { |
| | | pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1); |
| | | orderIds.remove(orderPrivateCar.getId()); |
| | | } |
| | | } |
| | | } catch (Exception e) { |