|
|
@@ -205,6 +205,7 @@ public class AdminOrderServiceImpl implements AdminOrderService {
|
|
|
validatePendingDispatchOrder(order);
|
|
|
validateDispatchOrderLocation(order);
|
|
|
|
|
|
+ // 处理派单半径,默认10000米
|
|
|
BigDecimal radiusMeters = normalizeDispatchRadius(dto.getRadiusMeters());
|
|
|
AdminOrderDispatchMerchantVO merchant = adminOrderMapper.selectDispatchMerchantById(order, dto.getMerchantId(), radiusMeters);
|
|
|
if (merchant == null) {
|
|
|
@@ -257,6 +258,11 @@ public class AdminOrderServiceImpl implements AdminOrderService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 验证待派单订单的下单坐标是否为空
|
|
|
+ *
|
|
|
+ * @param order
|
|
|
+ */
|
|
|
private void validateDispatchOrderLocation(AdminOrderDispatchOrderVO order) {
|
|
|
if (order.getUserLatitude() == null || order.getUserLongitude() == null) {
|
|
|
throw new ServiceException("订单下单坐标不能为空");
|
|
|
@@ -298,6 +304,13 @@ public class AdminOrderServiceImpl implements AdminOrderService {
|
|
|
return radiusMeters;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 构建订单派单记录
|
|
|
+ * @param order
|
|
|
+ * @param merchant
|
|
|
+ * @param dto
|
|
|
+ * @return OrderDispatch
|
|
|
+ */
|
|
|
private OrderDispatch buildOrderDispatch(AdminOrderDispatchOrderVO order, AdminOrderDispatchMerchantVO merchant, AdminOrderDispatchDTO dto) {
|
|
|
LocalDateTime now = LocalDateTime.now();
|
|
|
String operator = getCurrentOperator();
|
|
|
@@ -325,7 +338,6 @@ public class AdminOrderServiceImpl implements AdminOrderService {
|
|
|
dispatch.setOrderStatusBefore(ORDER_STATUS_PENDING_DISPATCH);
|
|
|
dispatch.setOrderStatusAfter(ORDER_STATUS_PENDING_ACCEPT);
|
|
|
dispatch.setDispatchTime(now);
|
|
|
- dispatch.setRemark(StringUtils.hasText(dto.getRemark()) ? dto.getRemark().trim() : null);
|
|
|
dispatch.setOperatorName(operator);
|
|
|
dispatch.setCreateBy(operator);
|
|
|
dispatch.setCreateTime(now);
|