| | |
| | | wrapper.orderByDesc(XpOrder::getCreateTime); |
| | | return wrapper; |
| | | } |
| | | |
| | | private LambdaQueryWrapper<XpOrder> buildExcelQueryWrapper(XpOrderExcelQuery query) { |
| | | LambdaQueryWrapper<XpOrder> wrapper = new LambdaQueryWrapper<>(); |
| | | |
| | |
| | | vo.setStatus(order.getStatus()); |
| | | |
| | | // 用户信息 |
| | | if (Objects.nonNull(order.getAppUserId()) && userInfoMap !=null && userInfoMap.containsKey(order.getAppUserId().toString())) { |
| | | if (Objects.nonNull(order.getAppUserId()) && userInfoMap != null && userInfoMap.containsKey(order.getAppUserId().toString())) { |
| | | UcUserInfo userInfo = userInfoMap.get(order.getAppUserId().toString()); |
| | | vo.setNickName(userInfo.getNickName()); |
| | | vo.setPhoneNumber(userInfo.getMobile()); |
| | |
| | | * 取消订单 |
| | | */ |
| | | private void cancelOrder(XpOrder order) { |
| | | redisService.removeByPattern(order.getQueueName(),order.getOrderNumber()); |
| | | redisService.removeByPattern(order.getQueueName(), order.getOrderNumber()); |
| | | //判断还原车辆状态 |
| | | if(null == order.getVehicleId()){ |
| | | if (null == order.getVehicleId()) { |
| | | Object cacheObject1 = redisService.getCacheObject("CREATE_ORDER:" + order.getId().toString()); |
| | | if(null != cacheObject1){ |
| | | if (null != cacheObject1) { |
| | | com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSON.parseObject(cacheObject1.toString()); |
| | | String vin = jsonObject.getString("vin"); |
| | | XpVehicle vehicle = xpVehicleClient.findByVehicleVin(vin).getData(); |
| | | if(null != vehicle && 0 != vehicle.getState()){ |
| | | if (null != vehicle && 0 != vehicle.getState()) { |
| | | vehicle.setState(0); |
| | | xpVehicleClient.updateVehicleById(vehicle); |
| | | } |
| | |
| | | } |
| | | |
| | | //还原车辆状态 |
| | | if(1 == xpVehicle.getState()){ |
| | | if (1 == xpVehicle.getState()) { |
| | | xpVehicleClient.updateVehicleStatus(new UpdateVehicleStateDto(xpVehicle.getVehicleVin(), 0)); |
| | | } |
| | | |
| | |
| | | @Transactional |
| | | public void cancelOrder(Long orderId, String uid) { |
| | | XpOrder order = this.getById(orderId); |
| | | if(order.getStatus()==0){ |
| | | if (order.getStatus() == 0) { |
| | | return; |
| | | } |
| | | if (order == null) { |
| | |
| | | } |
| | | |
| | | try { |
| | | redisService.removeByPattern(order.getQueueName(),order.getOrderNumber()); |
| | | }catch (Exception e){ |
| | | redisService.removeByPattern(order.getQueueName(), order.getOrderNumber()); |
| | | } catch (Exception e) { |
| | | } |
| | | //判断还原车辆状态 |
| | | if(null == order.getVehicleId()){ |
| | | if (null == order.getVehicleId()) { |
| | | Object cacheObject1 = redisService.getCacheObject("CREATE_ORDER:" + order.getId().toString()); |
| | | if(null != cacheObject1){ |
| | | if (null != cacheObject1) { |
| | | com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSON.parseObject(cacheObject1.toString()); |
| | | String vin = jsonObject.getString("vin"); |
| | | XpVehicle vehicle = xpVehicleClient.findByVehicleVin(vin).getData(); |
| | | if(null != vehicle && 0 != vehicle.getState()){ |
| | | if (null != vehicle && 0 != vehicle.getState()) { |
| | | vehicle.setState(0); |
| | | xpVehicleClient.updateVehicleById(vehicle); |
| | | } |
| | |
| | | baseMapper.updateById(order); |
| | | return; |
| | | } |
| | | if(order.getStatus()==1){ |
| | | if (order.getStatus() == 1) { |
| | | order.setStatus(0); |
| | | baseMapper.updateById(order); |
| | | return; |
| | |
| | | xpOrderCancel.setCancelReason("用户取消订单"); |
| | | xpOrderCancelService.save(xpOrderCancel); |
| | | //还原车辆状态 |
| | | if(1 == xpVehicle.getState()){ |
| | | if (1 == xpVehicle.getState()) { |
| | | xpVehicleClient.updateVehicleStatus(new UpdateVehicleStateDto(xpVehicle.getVehicleVin(), 0)); |
| | | } |
| | | |
| | |
| | | xpOrderCancel.setCreateTime(LocalDateTime.now()); |
| | | xpOrderCancelService.save(xpOrderCancel); |
| | | |
| | | redisService.removeByPattern(order.getQueueName(),order.getOrderNumber()); |
| | | redisService.removeByPattern(order.getQueueName(), order.getOrderNumber()); |
| | | |
| | | |
| | | R<XpVehicle> xpVehicleR = xpVehicleClient.queryById(order.getVehicleId()); |
| | |
| | | order.setStatus(8); |
| | | order.setAppUserId(null); |
| | | order.setTripEnd(LocalDateTime.now()); |
| | | |
| | | |
| | | long minutes = Duration.between(order.getBoardingTime(), order.getTripEnd()).toMinutes(); |
| | | order.setDuration((double) minutes); |
| | | |
| | | // order.setMileageKilometers(80.0); |
| | | baseMapper.updateById(order); |
| | | // 解绑用户与车辆关系 |
| | |
| | | return; |
| | | } |
| | | |
| | | if(vehicle.getState()!=0 || vehicle.getOperatingStatus()!=1){ |
| | | if (vehicle.getState() != 0 || vehicle.getOperatingStatus() != 1) { |
| | | return; |
| | | } |
| | | |
| | | // 判断是否有计划 |
| | | R<XpCruisePlanVehicle> xpCruisePlanR = xpCruisePlanClient.getCruisePlan(vehicle.getId()); |
| | | if(xpCruisePlanR==null || xpCruisePlanR.getData()==null){ |
| | | if (xpCruisePlanR == null || xpCruisePlanR.getData() == null) { |
| | | return; |
| | | } |
| | | |
| | |
| | | OrderTrajectory.class |
| | | ); |
| | | orderDetailVo.setTrajectories(trajectories); |
| | | if (order.getTripBegin() != null && order.getTripEnd() != null) { |
| | | if (order.getBoardingTime() != null && order.getTripEnd() != null) { |
| | | // 计算两个时间相差多少分钟 |
| | | long minutesDifference = Duration.between(order.getTripBegin(), order.getTripEnd()).toMinutes(); |
| | | orderDetailVo.setOrderTime(minutesDifference); |
| | | double exactMinutes = Duration.between(order.getBoardingTime(), order.getTripEnd()).toMillis() / (1000.0 * 60); |
| | | exactMinutes = new BigDecimal(exactMinutes).setScale(2, RoundingMode.HALF_UP).doubleValue(); |
| | | orderDetailVo.setOrderTime(exactMinutes); |
| | | } else { |
| | | orderDetailVo.setOrderTime(0l); |
| | | orderDetailVo.setOrderTime(0.0); |
| | | } |
| | | if (order.getStartMileage() != null) { |
| | | orderDetailVo.setTotalMileage(order.getStartMileage() + (order.getMileageKilometers() != null ? order.getMileageKilometers() : 0D)); |
| | | orderDetailVo.setTotalMileage(order.getMileageKilometers() != null ? new BigDecimal(order.getMileageKilometers()).setScale(2, RoundingMode.HALF_UP).doubleValue() : 0D); |
| | | |
| | | } |
| | | return orderDetailVo; |
| | | } |
| | | |
| | |
| | | // value 订单Id_经纬度_状态_用户id_订单编号_距离_时间 |
| | | try { |
| | | redisService.popFirstElement(order.getQueueName()); |
| | | }catch (Exception e){ |
| | | } catch (Exception e) { |
| | | log.error("Redis弹出队列元素出错"); |
| | | } |
| | | XpGeoQueryEntity xpGeoQueryEntity = new XpGeoQueryEntity(); |
| | |
| | | |
| | | if (xpOrder.getVehicleId() != null) { |
| | | R<XpVehicle> xpVehicleR = xpVehicleClient.queryById(xpOrder.getVehicleId()); |
| | | xpOrderDetailVO.setPlateNumber(xpVehicleR.getData().getPlateNumber()); |
| | | XpVehicle vehicle = xpVehicleR.getData(); |
| | | xpOrderDetailVO.setPlateNumber(vehicle.getPlateNumber()); |
| | | xpOrderDetailVO.setVehiclePictures(vehicle.getVehiclePictures()); |
| | | } |
| | | |
| | | return xpOrderDetailVO; |