| | |
| | | orderTaxi.setInsertTime(new Date()); |
| | | orderTaxi.setIsReassign(1); |
| | | UserInfo userInfo = userInfoService.selectById(uid); |
| | | orderTaxi.setPassengersPhone(userInfo.getPhone()); |
| | | orderTaxi.setPassengers(userInfo.getNickName()); |
| | | |
| | | if (!StringUtils.hasLength(orderTaxi.getPassengers()) || StringUtils.hasLength(orderTaxi.getPassengersPhone()) ){ |
| | | // 如果没有填写乘车人电话或者姓名 那么用用户的 |
| | |
| | | } |
| | | |
| | | userInfo.setBalance(new BigDecimal(userInfo.getBalance()).subtract(new BigDecimal(query.getMoney())).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue()); |
| | | Integer placeOrderWay = null; |
| | | switch (orderTaxi.getOrderSource()){ |
| | | case 2: |
| | | placeOrderWay = 4; |
| | | break; |
| | | case 3: |
| | | placeOrderWay = 4; |
| | | break; |
| | | case 6: |
| | | placeOrderWay = 1; |
| | | break; |
| | | case 7: |
| | | placeOrderWay = 2; |
| | | break; |
| | | case 5: |
| | | placeOrderWay = 3; |
| | | break; |
| | | } |
| | | //添加交易明细 |
| | | transactionDetailsService.saveData(uid, "取消订单", query.getMoney(), 2, 1, 1, 2, id); |
| | | transactionDetailsService.saveDataTaxi(uid, "取消订单", query.getMoney(), 2, 1, 1, 2, id,placeOrderWay); |
| | | userInfoService.updateById(userInfo); |
| | | |
| | | //解除小号绑定 |
| | |
| | | |
| | | SysIntegral query1 = sysIntegralMapper.query(orderTaxi.getCompanyId()); |
| | | userInfo.setIntegral(userInfo.getIntegral() + (orderMoney.intValue() * query1.getIntegral()));//积分 |
| | | |
| | | Integer placeOrderWay = null; |
| | | switch (orderTaxi.getOrderSource()){ |
| | | case 2: |
| | | placeOrderWay = 4; |
| | | break; |
| | | case 3: |
| | | placeOrderWay = 4; |
| | | break; |
| | | case 6: |
| | | placeOrderWay = 1; |
| | | break; |
| | | case 7: |
| | | placeOrderWay = 2; |
| | | break; |
| | | case 5: |
| | | placeOrderWay = 3; |
| | | break; |
| | | } |
| | | //添加交易明细 |
| | | transactionDetailsService.saveData(uid, "完成订单", orderMoney, 2, 1, 1, 2, orderId); |
| | | transactionDetailsService.saveDataTaxi(uid, "完成订单", orderMoney, 2, 1, 1, 2, orderId,placeOrderWay); |
| | | userInfoService.updateById(userInfo); |
| | | |
| | | orderTaxi.setState(8); |
| | |
| | | OrderTaxi orderTaxi = this.selectById(id); |
| | | PaymentRecord query = paymentRecordService.query(1, orderTaxi.getUserId(), 1, Integer.valueOf(id), 2, type, 1); |
| | | if(null != query){ |
| | | Integer placeOrderWay = null; |
| | | switch (orderTaxi.getOrderSource()){ |
| | | case 2: |
| | | placeOrderWay = 4; |
| | | break; |
| | | case 3: |
| | | placeOrderWay = 4; |
| | | break; |
| | | case 6: |
| | | placeOrderWay = 1; |
| | | break; |
| | | case 7: |
| | | placeOrderWay = 2; |
| | | break; |
| | | case 5: |
| | | placeOrderWay = 3; |
| | | break; |
| | | } |
| | | //添加交易明细 |
| | | transactionDetailsService.saveData(orderTaxi.getUserId(), "完成订单", query.getAmount(), 2, 1, 1, 2, query.getOrderId()); |
| | | transactionDetailsService.saveDataTaxi(orderTaxi.getUserId(), "完成订单", query.getAmount(), 2, 1, 1, 2, query.getOrderId(),placeOrderWay); |
| | | orderTaxi.setState(8); |
| | | orderTaxi.setPayType(type); |
| | | orderTaxi.setPayMoney(query.getAmount()); |
| | |
| | | OrderTaxi orderTaxi = this.selectById(id); |
| | | PaymentRecord query = paymentRecordService.query(1, orderTaxi.getUserId(), 1, Integer.valueOf(id), 2, type, 1); |
| | | if(null != query){ |
| | | Integer placeOrderWay = null; |
| | | switch (orderTaxi.getOrderSource()){ |
| | | case 2: |
| | | placeOrderWay = 4; |
| | | break; |
| | | case 3: |
| | | placeOrderWay = 4; |
| | | break; |
| | | case 6: |
| | | placeOrderWay = 1; |
| | | break; |
| | | case 7: |
| | | placeOrderWay = 2; |
| | | break; |
| | | case 5: |
| | | placeOrderWay = 3; |
| | | break; |
| | | } |
| | | //添加交易明细 |
| | | transactionDetailsService.saveData(orderTaxi.getUserId(), "取消订单", query.getAmount(), 2, 1, 1, 2, query.getOrderId()); |
| | | transactionDetailsService.saveDataTaxi(orderTaxi.getUserId(), "取消订单", query.getAmount(), 2, 1, 1, 2, query.getOrderId(),placeOrderWay); |
| | | orderTaxi.setState(10); |
| | | //解除小号绑定 |
| | | if(orderTaxi.getBindId() != null){ |
| | |
| | | @Override |
| | | public void run() { |
| | | try { |
| | | System.out.println("进入订单推送111111111111"); |
| | | orderIds.add(orderTaxi.getId());//添加记录,防止调用接口重复提醒无人接单 |
| | | String vehicle = redisUtil.getValue("VEHICLE"); |
| | | List<Integer> integers = new ArrayList<>(); |
| | | if(ToolUtil.isNotEmpty(vehicle)){ |
| | | integers = JSON.parseArray(vehicle).toJavaList(Integer.class); |
| | | } |
| | | System.out.println("进入订单推送22222222222222=========="+integers); |
| | | Company query = companyCityService.query(String.valueOf(orderTaxi.getStartLon()), String.valueOf(orderTaxi.getStartLat()));//获取起点所属分公司 |
| | | System.out.println("进入订单推送=========3==========="+query); |
| | | List<PushOrder> querys = pushOrderService.querys(null, 2, query.getId());//获取需要推送的次数 |
| | | System.out.println("进入订单推送=========4==========="+querys); |
| | | for(int i = 1; i <= querys.size(); i++){ |
| | | System.out.println("进入订单推送"); |
| | | PushOrder pushOrder = pushOrderService.querys(i, 2, query.getId()).get(0); |
| | | System.out.println("进入订单推送"); |
| | | //获取空闲司机 |
| | | List<Driver> list = driverService.queryIdleDriver(2, orderTaxi.getStartLon(), orderTaxi.getStartLat(), pushOrder.getPushDistance(), null);//所有附近空闲司机 |
| | | System.out.println("获取空闲司机============="+list); |
| | | if(list.size() > 0){ |
| | | System.out.println("进入司机推送"); |
| | | double driverProportion = pushOrder.getDriverProportion() / 100;//推送占比计算成小数 |
| | | System.out.println("推送占比计算成小数======="+driverProportion); |
| | | int lastIndex = Double.valueOf(list.size() * driverProportion).intValue();//计算占比转成整数(下标截取) |
| | | System.out.println("计算占比转成整数======="+lastIndex); |
| | | list = list.subList(0, lastIndex);//获取空闲司机中占比数据 |
| | | System.out.println("获取空闲司机中占比数据======="+list); |
| | | for(Driver driver : list){//开始进行推送 |
| | | System.out.println("开始进行推送======="+driver); |
| | | //查询是否在限制推单范围内 |
| | | boolean bo = false; |
| | | for(Integer integer : integers){ |
| | |
| | | if(bo){ |
| | | continue; |
| | | } |
| | | System.out.println("推送订单前"); |
| | | pushUtil.pushOrderState(2, driver.getId(), orderTaxi.getId(), 2, orderTaxi.getState(), pushOrder.getPushTime()); |
| | | System.out.println("推送订单后"); |
| | | } |
| | | } |
| | | Thread.sleep(pushOrder.getPushTime() * 1000);//设置等待时间 |