潍坊市做网站,岳阳网站建设渠道,网上备案查询,一键wordpress 伪静态加载当前订单
需求 无论是司机端#xff0c;还是乘客端#xff0c;遇到页面切换#xff0c;重新登录小程序等#xff0c;只要回到首页面#xff0c;查看当前是否有正在执行订单#xff0c;如果有跳转到当前订单执行页面 之前这个接口已经开发#xff0c;为了测试…加载当前订单
需求 无论是司机端还是乘客端遇到页面切换重新登录小程序等只要回到首页面查看当前是否有正在执行订单如果有跳转到当前订单执行页面 之前这个接口已经开发为了测试临时跳过去默认没有当前订单的
乘客端查找当前订单
Operation(summary 乘客端查找当前订单)
GetMapping(/searchCustomerCurrentOrder/{customerId})
public ResultCurrentOrderInfoVo searchCustomerCurrentOrder(PathVariable Long customerId) {return Result.ok(orderInfoService.searchCustomerCurrentOrder(customerId));
}//乘客端查找当前订单
Override
public CurrentOrderInfoVo searchCustomerCurrentOrder(Long customerId) {//封装条件//乘客idLambdaQueryWrapperOrderInfo wrapper new LambdaQueryWrapper();wrapper.eq(OrderInfo::getCustomerId,customerId);//各种状态// 这些状态都表明该订单在执行中所以要所有状态都查询Integer[] statusArray {OrderStatus.ACCEPTED.getStatus(),OrderStatus.DRIVER_ARRIVED.getStatus(),OrderStatus.UPDATE_CART_INFO.getStatus(),OrderStatus.START_SERVICE.getStatus(),OrderStatus.END_SERVICE.getStatus(),OrderStatus.UNPAID.getStatus()};wrapper.in(OrderInfo::getStatus,statusArray);//获取最新一条记录wrapper.orderByDesc(OrderInfo::getId);wrapper.last( limit 1);//调用方法OrderInfo orderInfo orderInfoMapper.selectOne(wrapper);//封装到CurrentOrderInfoVoCurrentOrderInfoVo currentOrderInfoVo new CurrentOrderInfoVo();if(orderInfo ! null) {currentOrderInfoVo.setOrderId(orderInfo.getId());currentOrderInfoVo.setStatus(orderInfo.getStatus());currentOrderInfoVo.setIsHasCurrentOrder(true);} else {currentOrderInfoVo.setIsHasCurrentOrder(false);}return currentOrderInfoVo;
}/*** 乘客端查找当前订单* param customerId* return*/
GetMapping(/order/info/searchCustomerCurrentOrder/{customerId})
ResultCurrentOrderInfoVo searchCustomerCurrentOrder(PathVariable(customerId) Long customerId);Operation(summary 乘客端查找当前订单)
GuiguLogin
GetMapping(/searchCustomerCurrentOrder)
public ResultCurrentOrderInfoVo searchCustomerCurrentOrder() {Long customerId AuthContextHolder.getUserId();return Result.ok(orderService.searchCustomerCurrentOrder(customerId));
}//乘客查找当前订单
Override
public CurrentOrderInfoVo searchCustomerCurrentOrder(Long customerId) {return orderInfoFeignClient.searchCustomerCurrentOrder(customerId).getData();
}司机端查找当前订单
Operation(summary 司机端查找当前订单)
GetMapping(/searchDriverCurrentOrder/{driverId})
public ResultCurrentOrderInfoVo searchDriverCurrentOrder(PathVariable Long driverId) {return Result.ok(orderInfoService.searchDriverCurrentOrder(driverId));
}//司机端查找当前订单
Override
public CurrentOrderInfoVo searchDriverCurrentOrder(Long driverId) {//封装条件LambdaQueryWrapperOrderInfo wrapper new LambdaQueryWrapper();wrapper.eq(OrderInfo::getDriverId,driverId);Integer[] statusArray {OrderStatus.ACCEPTED.getStatus(),OrderStatus.DRIVER_ARRIVED.getStatus(),OrderStatus.UPDATE_CART_INFO.getStatus(),OrderStatus.START_SERVICE.getStatus(),OrderStatus.END_SERVICE.getStatus()};wrapper.in(OrderInfo::getStatus,statusArray);wrapper.orderByDesc(OrderInfo::getId);wrapper.last( limit 1);OrderInfo orderInfo orderInfoMapper.selectOne(wrapper);//封装到voCurrentOrderInfoVo currentOrderInfoVo new CurrentOrderInfoVo();if(null ! orderInfo) {currentOrderInfoVo.setStatus(orderInfo.getStatus());currentOrderInfoVo.setOrderId(orderInfo.getId());currentOrderInfoVo.setIsHasCurrentOrder(true);} else {currentOrderInfoVo.setIsHasCurrentOrder(false);}return currentOrderInfoVo;
}/*** 司机端查找当前订单* param driverId* return*/
GetMapping(/order/info/searchDriverCurrentOrder/{driverId})
ResultCurrentOrderInfoVo searchDriverCurrentOrder(PathVariable(driverId) Long driverId);Operation(summary 司机端查找当前订单)
GuiguLogin
GetMapping(/searchDriverCurrentOrder)
public ResultCurrentOrderInfoVo searchDriverCurrentOrder() {Long driverId AuthContextHolder.getUserId();return Result.ok(orderService.searchDriverCurrentOrder(driverId));
}Override
public CurrentOrderInfoVo searchDriverCurrentOrder(Long driverId) {return orderInfoFeignClient.searchDriverCurrentOrder(driverId).getData();
}获取订单信息
进入首页在有执行中订单的情况下我们需要获取订单信息才能知道页面跳转到那里去因此现在把这个接口给实现了。
订单的各个状态获取的订单信息不一样当前我们只是获取订单基本信息后续完善
Operation(summary 根据订单id获取订单信息)
GetMapping(/getOrderInfo/{orderId})
public ResultOrderInfo getOrderInfo(PathVariable Long orderId) {return Result.ok(orderInfoService.getById(orderId));
}/*** 远程调用* 根据订单id获取订单信息* param orderId* return*/
GetMapping(/order/info/getOrderInfo/{orderId})
ResultOrderInfo getOrderInfo(PathVariable(orderId) Long orderId);// 乘客端web接口
Operation(summary 获取订单信息)
GuiguLogin
GetMapping(/getOrderInfo/{orderId})
public ResultOrderInfoVo getOrderInfo(PathVariable Long orderId) {Long customerId AuthContextHolder.getUserId();return Result.ok(orderService.getOrderInfo(orderId, customerId));
}Override
public OrderInfoVo getOrderInfo(Long orderId, Long customerId) {OrderInfo orderInfo orderInfoFeignClient.getOrderInfo(orderId).getData();//判断if(orderInfo.getCustomerId() ! customerId) {throw new GuiguException(ResultCodeEnum.ILLEGAL_REQUEST);}OrderInfoVo orderInfoVo new OrderInfoVo();orderInfoVo.setOrderId(orderId);BeanUtils.copyProperties(orderInfo,orderInfoVo);return orderInfoVo;
}// 司机端web接口
Operation(summary 获取订单账单详细信息)
GuiguLogin
GetMapping(/getOrderInfo/{orderId})
public ResultOrderInfoVo getOrderInfo(PathVariable Long orderId) {Long driverId AuthContextHolder.getUserId();return Result.ok(orderService.getOrderInfo(orderId, driverId));
}Override
public OrderInfoVo getOrderInfo(Long orderId, Long driverId) {OrderInfo orderInfo orderInfoFeignClient.getOrderInfo(orderId).getData();if(orderInfo.getDriverId() ! driverId) {throw new GuiguException(ResultCodeEnum.ILLEGAL_REQUEST);}OrderInfoVo orderInfoVo new OrderInfoVo();orderInfoVo.setOrderId(orderId);BeanUtils.copyProperties(orderInfo,orderInfoVo);return orderInfoVo;
}司乘同显 司机抢单成功后要赶往上车点我们要计算司机赶往上车点的最佳线路司机端与乘客端都要显示司机乘同显这样乘客就能实时看见司机的动向。
司机端司乘同显
司机所在地址司乘同显开始位置代驾地址就是司乘同显终点计算司机司乘同显最佳路线
Operation(summary 计算最佳驾驶线路)
GuiguLogin
PostMapping(/calculateDrivingLine)
public ResultDrivingLineVo calculateDrivingLine(RequestBody CalculateDrivingLineForm calculateDrivingLineForm) {return Result.ok(orderService.calculateDrivingLine(calculateDrivingLineForm));
}//计算最佳驾驶线路
Override
public DrivingLineVo calculateDrivingLine(CalculateDrivingLineForm calculateDrivingLineForm) {return mapFeignClient.calculateDrivingLine(calculateDrivingLineForm).getData();
}更新位置到Redis里面
司机要赶往代驾地址实时更新司机当前最新位置经纬度到Redis里面乘客看到司机的动向司机端更新乘客端获取
Operation(summary 司机赶往代驾起始点更新订单地址到缓存)
PostMapping(/updateOrderLocationToCache)
public ResultBoolean updateOrderLocationToCache(RequestBody UpdateOrderLocationForm updateOrderLocationForm) {return Result.ok(locationService.updateOrderLocationToCache(updateOrderLocationForm));
}//司机赶往代驾起始点更新订单地址到缓存
Override
public Boolean updateOrderLocationToCache(UpdateOrderLocationForm updateOrderLocationForm) {OrderLocationVo orderLocationVo new OrderLocationVo();orderLocationVo.setLongitude(updateOrderLocationForm.getLongitude());orderLocationVo.setLatitude(updateOrderLocationForm.getLatitude());String key RedisConstant.UPDATE_ORDER_LOCATION updateOrderLocationForm.getOrderId();redisTemplate.opsForValue().set(key,orderLocationVo);return true;
}/*** 司机赶往代驾起始点更新订单地址到缓存* param updateOrderLocationForm* return*/
PostMapping(/map/location/updateOrderLocationToCache)
ResultBoolean updateOrderLocationToCache(RequestBody UpdateOrderLocationForm updateOrderLocationForm);Operation(summary 司机赶往代驾起始点更新订单位置到Redis缓存)
GuiguLogin
PostMapping(/updateOrderLocationToCache)
public Result updateOrderLocationToCache(RequestBody UpdateOrderLocationForm updateOrderLocationForm) {return Result.ok(locationService.updateOrderLocationToCache(updateOrderLocationForm));
}Override
public Boolean updateOrderLocationToCache(UpdateOrderLocationForm updateOrderLocationForm) {return locationFeignClient.updateOrderLocationToCache(updateOrderLocationForm).getData();
}获取司机基本信息
乘客进入司乘同显页面需要加载司机基本信息司机姓名头像等信息
Operation(summary 获取司机基本信息)
GetMapping(/getDriverInfo/{driverId})
public ResultDriverInfoVo getDriverInfoOrder(PathVariable Long driverId) {return Result.ok(driverInfoService.getDriverInfoOrder(driverId));
}//获取司机基本信息
Override
public DriverInfoVo getDriverInfoOrder(Long driverId) {//司机id获取基本信息DriverInfo driverInfo driverInfoMapper.selectById(driverId);//封装DriverInfoVoDriverInfoVo driverInfoVo new DriverInfoVo();BeanUtils.copyProperties(driverInfo,driverInfoVo);//计算驾龄//获取当前年int currentYear new DateTime().getYear();//获取驾驶证初次领证日期//driver_license_issue_dateint firstYear new DateTime(driverInfo.getDriverLicenseIssueDate()).getYear();int driverLicenseAge currentYear - firstYear;driverInfoVo.setDriverLicenseAge(driverLicenseAge);return driverInfoVo;
}/*** 获取司机基本信息* param driverId* return*/
GetMapping(/driver/info/getDriverInfo/{driverId})
ResultDriverInfoVo getDriverInfo(PathVariable(driverId) Long driverId);Operation(summary 根据订单id获取司机基本信息)
GuiguLogin
GetMapping(/getDriverInfo/{orderId})
public ResultDriverInfoVo getDriverInfo(PathVariable Long orderId) {Long customerId AuthContextHolder.getUserId();return Result.ok(orderService.getDriverInfo(orderId, customerId));
}Override
public DriverInfoVo getDriverInfo(Long orderId, Long customerId) {//根据订单id获取订单信息OrderInfo orderInfo orderInfoFeignClient.getOrderInfo(orderId).getData();if(orderInfo.getCustomerId() ! customerId) {throw new GuiguException(ResultCodeEnum.DATA_ERROR);}return driverInfoFeignClient.getDriverInfo(orderInfo.getDriverId()).getData();
}乘客端获取司机经纬度位置
Operation(summary 司机赶往代驾起始点获取订单经纬度位置)
GetMapping(/getCacheOrderLocation/{orderId})
public ResultOrderLocationVo getCacheOrderLocation(PathVariable Long orderId) {return Result.ok(locationService.getCacheOrderLocation(orderId));
}Override
public OrderLocationVo getCacheOrderLocation(Long orderId) {String key RedisConstant.UPDATE_ORDER_LOCATION orderId;OrderLocationVo orderLocationVo (OrderLocationVo)redisTemplate.opsForValue().get(key);return orderLocationVo;
}/*** 司机赶往代驾起始点获取订单经纬度位置* param orderId* return*/
GetMapping(/map/location/getCacheOrderLocation/{orderId})
ResultOrderLocationVo getCacheOrderLocation(PathVariable(orderId) Long orderId);Operation(summary 司机赶往代驾起始点获取订单经纬度位置)
GetMapping(/getCacheOrderLocation/{orderId})
public ResultOrderLocationVo getCacheOrderLocation(PathVariable Long orderId) {return Result.ok(locationService.getCacheOrderLocation(orderId));
}Override
public OrderLocationVo getCacheOrderLocation(Long orderId) {return locationFeignClient.getCacheOrderLocation(orderId).getData();
}Operation(summary 计算最佳驾驶线路)
GuiguLogin
PostMapping(/calculateDrivingLine)
public ResultDrivingLineVo calculateDrivingLine(RequestBody CalculateDrivingLineForm calculateDrivingLineForm) {return Result.ok(orderService.calculateDrivingLine(calculateDrivingLineForm));
}Override
public DrivingLineVo calculateDrivingLine(CalculateDrivingLineForm calculateDrivingLineForm) {return mapFeignClient.calculateDrivingLine(calculateDrivingLineForm).getData();
}司机到达起始点 司机到达代驾起始点之后更新当前代驾订单数据更新订单状态司机到达更新订单到达时间
Operation(summary 司机到达起始点)
GetMapping(/driverArriveStartLocation/{orderId}/{driverId})
public ResultBoolean driverArriveStartLocation(PathVariable Long orderId, PathVariable Long driverId) {return Result.ok(orderInfoService.driverArriveStartLocation(orderId, driverId));
}//司机到达起始点
Override
public Boolean driverArriveStartLocation(Long orderId, Long driverId) {// 更新订单状态和到达时间条件orderId driverIdLambdaQueryWrapperOrderInfo wrapper new LambdaQueryWrapper();wrapper.eq(OrderInfo::getId,orderId);wrapper.eq(OrderInfo::getDriverId,driverId);OrderInfo orderInfo new OrderInfo();orderInfo.setStatus(OrderStatus.DRIVER_ARRIVED.getStatus());orderInfo.setArriveTime(new Date());int rows orderInfoMapper.update(orderInfo, wrapper);if(rows 1) {return true;} else {throw new GuiguException(ResultCodeEnum.UPDATE_ERROR);}
}/*** 司机到达起始点* param orderId* param driverId* return*/
GetMapping(/order/info/driverArriveStartLocation/{orderId}/{driverId})
ResultBoolean driverArriveStartLocation(PathVariable(orderId) Long orderId, PathVariable(driverId) Long driverId);Operation(summary 司机到达代驾起始地点)
GuiguLogin
GetMapping(/driverArriveStartLocation/{orderId})
public ResultBoolean driverArriveStartLocation(PathVariable Long orderId) {Long driverId AuthContextHolder.getUserId();return Result.ok(orderService.driverArriveStartLocation(orderId, driverId));
}//司机到达代驾起始地点
Override
public Boolean driverArriveStartLocation(Long orderId, Long driverId) {return orderInfoFeignClient.driverArriveStartLocation(orderId,driverId).getData();
}司机更新代驾车辆信息
司机到达代驾起始点联系了乘客见到了代驾车辆要拍照与录入车辆信息 Operation(summary 更新代驾车辆信息)
PostMapping(/updateOrderCart)
public ResultBoolean updateOrderCart(RequestBody UpdateOrderCartForm updateOrderCartForm) {return Result.ok(orderInfoService.updateOrderCart(updateOrderCartForm));
}Boolean updateOrderCart(UpdateOrderCartForm updateOrderCartForm);Transactional(rollbackFor Exception.class)
Override
public Boolean updateOrderCart(UpdateOrderCartForm updateOrderCartForm) {LambdaQueryWrapperOrderInfo queryWrapper new LambdaQueryWrapper();queryWrapper.eq(OrderInfo::getId, updateOrderCartForm.getOrderId());queryWrapper.eq(OrderInfo::getDriverId, updateOrderCartForm.getDriverId());OrderInfo updateOrderInfo new OrderInfo();BeanUtils.copyProperties(updateOrderCartForm, updateOrderInfo);updateOrderInfo.setStatus(OrderStatus.UPDATE_CART_INFO.getStatus());//只能更新自己的订单int row orderInfoMapper.update(updateOrderInfo, queryWrapper);if(row 1) {//记录日志this.log(updateOrderCartForm.getOrderId(), OrderStatus.UPDATE_CART_INFO.getStatus());} else {throw new GuiguException(ResultCodeEnum.UPDATE_ERROR);}return true;
}/*** 更新代驾车辆信息* param updateOrderCartForm* return*/
PostMapping(/order/info//updateOrderCart)
ResultBoolean updateOrderCart(RequestBody UpdateOrderCartForm updateOrderCartForm);Operation(summary 更新代驾车辆信息)
GuiguLogin
PostMapping(/updateOrderCart)
public ResultBoolean updateOrderCart(RequestBody UpdateOrderCartForm updateOrderCartForm) {Long driverId AuthContextHolder.getUserId();updateOrderCartForm.setDriverId(driverId);return Result.ok(orderService.updateOrderCart(updateOrderCartForm));
}Override
public Boolean updateOrderCart(UpdateOrderCartForm updateOrderCartForm) {return orderInfoFeignClient.updateOrderCart(updateOrderCartForm).getData();
}公司只有一个总的理想员工不能要求公司去实现你的理想你必须适应这个总的理想参加主力部队作战发挥你的作用。我们的主航道不会变化你们与大学合作的面宽一点到2012实验室的时候窄一点到产品研发更是窄窄的要有长期性的清晰指标。
https://baijiahao.baidu.com/s?id1760664270073856317wfrspiderforpc 擦亮花火、共创未来——任正非在“难题揭榜”花火奖座谈会上的讲话 任正非