|
|
@@ -642,22 +642,49 @@ public class FsExternalOrderServiceImpl implements IFsExternalOrderService {
|
|
|
updateOrder.setStatus(3);
|
|
|
updateOrder.setDeliverySn(delivery.getMail_no());
|
|
|
|
|
|
- if (StringUtils.isNotBlank(delivery.getExpress_code())) {
|
|
|
- FsExpress express = expressService.selectFsExpressByOmsCode(delivery.getExpress_code());
|
|
|
+ String deliveryCode = delivery.getExpress_code();
|
|
|
+ String deliveryName = delivery.getExpress_name();
|
|
|
+ if (StringUtils.isNotBlank(deliveryCode)) {
|
|
|
+ FsExpress express = expressService.selectFsExpressByOmsCode(deliveryCode);
|
|
|
+ if (express == null) {
|
|
|
+ express = expressService.selectFsExpressByCode(deliveryCode);
|
|
|
+ }
|
|
|
+ if (express == null && StringUtils.isNotBlank(deliveryName)) {
|
|
|
+ express = expressService.selectFsExpressByName(deliveryName);
|
|
|
+ }
|
|
|
if (express != null) {
|
|
|
- updateOrder.setDeliveryName(express.getName());
|
|
|
- updateOrder.setDeliveryCode(express.getCode());
|
|
|
+ deliveryName = express.getName();
|
|
|
+ deliveryCode = express.getCode();
|
|
|
+ updateOrder.setDeliveryName(deliveryName);
|
|
|
+ updateOrder.setDeliveryCode(deliveryCode);
|
|
|
} else {
|
|
|
- updateOrder.setDeliveryCode(delivery.getExpress_code());
|
|
|
- if (StringUtils.isNotBlank(delivery.getExpress_name())) {
|
|
|
- updateOrder.setDeliveryName(delivery.getExpress_name());
|
|
|
+ updateOrder.setDeliveryCode(deliveryCode);
|
|
|
+ if (StringUtils.isNotBlank(deliveryName)) {
|
|
|
+ updateOrder.setDeliveryName(deliveryName);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
updateOrder.setDeliveryTime(new Date());
|
|
|
fsExternalOrderMapper.updateFsExternalOrder(updateOrder);
|
|
|
- log.info("外部订单已发货: {}, 快递: {}, 单号: {}", localOrder.getOrderCode(), delivery.getExpress_code(), delivery.getMail_no());
|
|
|
+ subscribeExternalOrderExpress(localOrder, deliveryCode, delivery.getMail_no());
|
|
|
+ log.info("外部订单已发货: {}, 快递: {}, 单号: {}", localOrder.getOrderCode(), deliveryCode, delivery.getMail_no());
|
|
|
+ }
|
|
|
+
|
|
|
+ private void subscribeExternalOrderExpress(FsExternalOrder order, String deliveryCode, String deliverySn) {
|
|
|
+ if (order == null || StringUtils.isBlank(deliveryCode) || StringUtils.isBlank(deliverySn)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ String userPhone = order.getUserPhone();
|
|
|
+ String lastFourNumber = StringUtils.isNotBlank(userPhone) && userPhone.length() >= 4
|
|
|
+ ? userPhone.substring(userPhone.length() - 4)
|
|
|
+ : userPhone;
|
|
|
+ expressService.subscribeEspress(order.getOrderCode(), deliveryCode, deliverySn, lastFourNumber);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("外部订单订阅快递鸟物流失败: {}, 快递: {}, 单号: {}", order.getOrderCode(), deliveryCode, deliverySn, e);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|