Commit 2f3c20ce by 张跃

异常回调

parent c3f45d59
......@@ -44,6 +44,13 @@ public class DeliveryController {
return deliveryService.callbackUrl(request);
}
@ApiAnnotation(logMessage = "配送异常回调")
@ApiOperation(value = "配送异常回调", notes = "配送异常回调", produces = "application/json")
@PostMapping("/delivery/errorCallbackUrl")
public BaseResponse errorCallbackUrl(@Valid @LogParams @RequestBody CallbackUrlRequestDto request) {
return deliveryService.callbackUrl(request);
}
@ApiAnnotation(logMessage = "麦咖啡配送回调")
@ApiOperation(value = "麦咖啡配送回调", notes = "麦咖啡配送回调", produces = "application/json")
@PostMapping("/delivery/macCafeCallback")
......
......@@ -15,6 +15,7 @@ public interface ThirdDeliveryService {
* 配送回调
*/
BaseResponse callbackUrl(CallbackUrlRequestDto request);
/**
* 配送回调
*/
......@@ -31,4 +32,8 @@ public interface ThirdDeliveryService {
*/
BaseResponse<DeliveryAmountVo> queryDeliveryAmount(WeixinDeliveryAddressDto request);
/**
* 配送异常回调
*/
BaseResponse errorCallbackUrl(CallbackUrlRequestDto request);
}
......@@ -328,6 +328,43 @@ public class ThirdDeliveryServiceImpl implements ThirdDeliveryService {
return ResponseUtil.success(deliveryAmountVo);
}
@Override
public BaseResponse errorCallbackUrl(CallbackUrlRequestDto request) {
// 获取回调状态
int deliveryStatus = request.getDeliveryStatus();
String partnerId = request.getPartnerId();
String storeCode = request.getStoreId();
PosBaseRequestDto posBaseRequestDto = new PosBaseRequestDto();
posBaseRequestDto.setOrder_id(request.getOrderId());
posBaseRequestDto.setPartner_id(partnerId);
Integer sendPosDeliveryStatus;
if (request.getDeliveryStatus() == DeliveryStatus.DELIVERYERROR.getCode()) {
sendPosDeliveryStatus = 71;
} else {
sendPosDeliveryStatus = 81;
}
sendPosMessage(partnerId, storeCode, request.getOrderId(), sendPosDeliveryStatus, request.getRemark());
//推送异常到生态
sendException(request.getOrderId(), request.getExceptionDesc(), request.getUpdateTime(), DeliveryStatus.getDeliveryStatusByCode(deliveryStatus).getDesc());
// 运单异常,取消订单
posBaseRequestDto.setReason("没有骑手接单");
posBaseRequestDto.setDeliveryId(request.getDeliveryId());
sendPosService(deliveryStatus, posBaseRequestDto);
// 订单配送状态变化时发送到MQ
if (DeliveryStatus.checkDeliveryStatueForPlatform(deliveryStatus)) {
produceMQService.sendOfDeliveryInfo(request);
produceMQService.sendRocketMqOfDeliveryInfo(request);
}
//配送订阅消息
sendMicroMessage(partnerId, request.getOrderId(), deliveryStatus);
return ResponseUtil.success();
}
/**
* 配送单异常取消配送单
*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment