| | |
| | | } |
| | | // 查询当前订单 检查订单是否已经被其他骑手抢到或取消 直接返回 |
| | | OrderResponse orderResponse = orderService.getByOrderNum(orderNum); |
| | | if (orderResponse == null || orderResponse.getOrder() == null) { |
| | | return R.fail(400, "订单信息不存在,请稍后重试"); |
| | | } |
| | | int orderStatus = orderResponse.getOrder().getOrderStatus(); |
| | | // 2商家已接单 4商家已备货 这两个状态可以接单 |
| | | if (null == orderResponse || (orderResponse.getOrder().getOrderStatus() != 2 && orderResponse.getOrder().getOrderStatus() != 4)) { |
| | | return R.fail(400, "订单已经被其他骑手接单或顾客取消,请稍后重试"); |
| | | if (orderStatus != 2 && orderStatus != 4) { |
| | | return R.fail(400, "订单状态异常,不允许接单"); |
| | | } |
| | | // 商家备货状态 查看是否存在骑手信息 |
| | | if (orderStatus == 4 && orderResponse.getOrder().getRiderId() == null) { |
| | | return R.fail(400, "该订单已备货,但未分配骑手,请联系商家确认"); |
| | | } |
| | | // 订单没有被接单或取消的情况下,进行接单操作 |
| | | // 1.新增骑手接单记录 |
| | |
| | | riderOrderRecord.setMerchantId(orderResponse.getOrder().getStoreId()); |
| | | riderOrderRecord.setMerchantName(orderResponse.getOrder().getStoreName()); |
| | | riderOrderRecord.setMerchantAddress(orderResponse.getOrder().getStoreAddress()); |
| | | riderOrderRecord.setReceiverAddress(orderResponse.getAddress().getDetail()); |
| | | // 收货地址 拼接地址 |
| | | String receiverAddress = orderResponse.getAddress().getCity() |
| | | + orderResponse.getAddress().getDistrict() |
| | | + orderResponse.getAddress().getStreet() |
| | | + orderResponse.getAddress().getShortAddress() |
| | | + orderResponse.getAddress().getDetail(); |
| | | riderOrderRecord.setReceiverAddress(receiverAddress); |
| | | // 当前为接单 设置为待取货状态 0-已接单 1-已到店 2-配送中 3-已完成 4-商家取消 5-骑手取消 6-客户取消 7-系统取消 |
| | | riderOrderRecord.setOrderStatus(Constants.ORDER_STATUS_OK); |
| | | riderOrderRecord.setAcceptTime(new Timestamp(System.currentTimeMillis())); |
| | |
| | | riderIncomeDetail.setDeliveryTime(new Timestamp(System.currentTimeMillis())); |
| | | riderIncomeDetail.setOrderStatus(Constants.ORDER_STATUS_FINISH); |
| | | riderIncomeDetail.setStartAddress(orderResponse.getOrder().getStoreAddress()); |
| | | riderIncomeDetail.setEndAddress(orderResponse.getAddress().getDetail()); |
| | | // 收货地址 拼接地址 |
| | | String receiverAddress = orderResponse.getAddress().getCity() |
| | | + orderResponse.getAddress().getDistrict() |
| | | + orderResponse.getAddress().getStreet() |
| | | + orderResponse.getAddress().getShortAddress() |
| | | + orderResponse.getAddress().getDetail(); |
| | | riderIncomeDetail.setEndAddress(receiverAddress); |
| | | riderIncomeDetailService.save(riderIncomeDetail); |
| | | return R.success(orderResponse); |
| | | } |