|
|
@@ -747,10 +747,10 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
|
|
|
Asserts.notNull(deliveryDTO.getDeliverId(), "快递号不能为空!");
|
|
|
Asserts.notNull(deliveryDTO.getDeliverSn(), "快递类型不能为空!");
|
|
|
|
|
|
- liveOrder.setDeliverySn(deliveryDTO.getDeliverId());
|
|
|
- liveOrder.setDeliveryCode(deliveryDTO.getDeliverSn());
|
|
|
- liveOrder.setStatus(3);
|
|
|
- liveOrderService.updateLiveOrder(liveOrder);
|
|
|
+// liveOrder.setDeliverySn(deliveryDTO.getDeliverId());
|
|
|
+// liveOrder.setDeliveryCode(deliveryDTO.getDeliverSn());
|
|
|
+// liveOrder.setStatus(3);
|
|
|
+// liveOrderService.updateLiveOrder(liveOrder);
|
|
|
|
|
|
|
|
|
fsStoreDeliversService.editDeliveryId(deliveryDTO);
|
|
|
@@ -830,7 +830,17 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
|
|
|
order.setDeliveryStatus(null);
|
|
|
order.setDeliveryType(null);
|
|
|
}
|
|
|
+
|
|
|
+ // 商品合计 = totalPrice + discountMoney - payDelivery (全部转为Double再相加减,保留两位小数)
|
|
|
+ Double totalPrice = order.getTotalPrice() != null ? Double.parseDouble(order.getTotalPrice().toString()) : 0d;
|
|
|
+ Double discountMoney = order.getDiscountMoney() != null ? Double.parseDouble(order.getDiscountMoney().toString()) : 0d;
|
|
|
+ double payDelivery = order.getPayDelivery() != null ? Double.parseDouble(order.getPayDelivery().toString()) : 0d;
|
|
|
+ double goodsAmount = totalPrice + discountMoney - payDelivery;
|
|
|
+ // 保留两位小数,进行四舍五入
|
|
|
+ goodsAmount = new java.math.BigDecimal(goodsAmount).setScale(2, java.math.RoundingMode.HALF_UP).doubleValue();
|
|
|
+
|
|
|
order.setPayPrice(order.getTotalPrice());
|
|
|
+ order.setTotalPrice(BigDecimal.valueOf(goodsAmount));
|
|
|
|
|
|
LiveOrderPayment liveOrderPayment = paymentMap.get(String.valueOf(order.getOrderId()));
|
|
|
if (ObjectUtil.isNotNull(liveOrderPayment)) {
|
|
|
@@ -1184,6 +1194,8 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
|
|
|
// 部分发货或者全部发货
|
|
|
if (ObjectUtils.equals(orderQuery.getDelivery_state(), 1) || ObjectUtils.equals(orderQuery.getDelivery_state(), 2)) {
|
|
|
|
|
|
+ liveOrderLogsService.create(order.getOrderId(), OrderLogEnum.DELIVERY_GOODS.getValue(),
|
|
|
+ OrderLogEnum.DELIVERY_GOODS.getDesc());
|
|
|
for (ErpDeliverys delivery : orderQuery.getDeliverys()) {
|
|
|
if (delivery.getDelivery()) {
|
|
|
this.deliveryOrder(order.getOrderCode(), delivery.getMail_no(),
|
|
|
@@ -2311,32 +2323,73 @@ public class LiveOrderServiceImpl implements ILiveOrderService {
|
|
|
if (byOrderId.isEmpty()) {
|
|
|
return R.error("当前账号没有快递记录!");
|
|
|
}
|
|
|
- FsStoreDelivers delivers = byOrderId.get(0);
|
|
|
+ String orderCode = order.getOrderCode();
|
|
|
|
|
|
- ExpressInfoDTO dto = expressService.getExpressInfo(order.getOrderCode(), delivers.getDeliverSn(), delivers.getDeliverId(), lastFourNumber);
|
|
|
- log.info("快递鸟查询dto:{}", JSONUtil.toJsonStr(dto));
|
|
|
- if (!dto.isSuccess()) {
|
|
|
- return R.error(dto.getReason());
|
|
|
- }
|
|
|
- if ("0".equals(dto.getStateEx()) && "0".equals(dto.getState())) {
|
|
|
- lastFourNumber = "19923690275";
|
|
|
- if (order.getDeliveryCode().equals(ShipperCodeEnum.SF.getValue()) || order.getDeliveryCode().equals(ShipperCodeEnum.ZTO.getValue())) {
|
|
|
- lastFourNumber = order.getUserPhone();
|
|
|
- if (lastFourNumber.length() == 11) {
|
|
|
- lastFourNumber = StrUtil.sub(lastFourNumber, lastFourNumber.length(), -4);
|
|
|
+ for (FsStoreDelivers fsStoreDelivers : byOrderId) {
|
|
|
+ if (ObjectUtil.isNotEmpty(fsStoreDelivers.getDeliverId())) {
|
|
|
+
|
|
|
+ ExpressInfoDTO dto = null;
|
|
|
+ try {
|
|
|
+ // 记录HTTP请求前的信息
|
|
|
+ log.info("开始调用快递查询接口, 订单号: {}, 快递公司编码: {}, 快递单号: {}, 手机号后四位: {}",
|
|
|
+ orderCode, fsStoreDelivers.getDeliverId(), fsStoreDelivers.getDeliverSn(), lastFourNumber);
|
|
|
+ dto = expressService.getExpressInfo(orderCode,
|
|
|
+ fsStoreDelivers.getDeliverSn(), fsStoreDelivers.getDeliverId(), lastFourNumber);
|
|
|
+ // 假设expressService.getExpressInfo内部进行了HTTP请求,你需要在expressService内部打印更详细的日志
|
|
|
+ // 这里只记录返回结果
|
|
|
+ if (ObjectUtil.isNotNull(dto)) {
|
|
|
+ log.info("快递查询接口调用成功, 订单号: {}, 快递状态: {}, 扩展状态: {}",
|
|
|
+ orderCode, dto.getState(), dto.getStateEx());
|
|
|
+ fsStoreDelivers.setStatus(Integer.valueOf(dto.getState()));
|
|
|
+ fsStoreDelivers.setStateEx(Integer.valueOf(dto.getStateEx()));
|
|
|
+ } else {
|
|
|
+ log.warn("快递查询接口调用成功,但返回结果为空, 订单号: {}", orderCode);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("快递查询接口调用失败, 订单号: {}, 快递单号: {}, 错误信息: {}", orderCode, fsStoreDelivers.getDeliverSn(), e.getMessage(), e);
|
|
|
}
|
|
|
+ } else {
|
|
|
+ log.info("发货单信息中快递ID为空, 跳过处理, 发货单ID: {}", fsStoreDelivers.getId());
|
|
|
}
|
|
|
- dto = expressService.getExpressInfo(order.getOrderCode(), delivers.getDeliverSn(), delivers.getDeliverId(), lastFourNumber);
|
|
|
- }
|
|
|
- LiveOrder updateEntity = new LiveOrder();
|
|
|
- updateEntity.setOrderId(order.getOrderId());
|
|
|
- updateEntity.setDeliveryStatus(Integer.parseInt(dto.getState()));
|
|
|
- updateEntity.setDeliveryType(dto.getStateEx());
|
|
|
- baseMapper.updateLiveOrder(updateEntity);
|
|
|
- //如果是正常签收,更新订单状态
|
|
|
- if (dto.getState().equals("3") && (dto.getStateEx().equals("301") || dto.getStateEx().equals("302") || dto.getStateEx().equals("304") || dto.getStateEx().equals("311"))) {
|
|
|
- this.getGoods(order.getOrderId());
|
|
|
}
|
|
|
+ fsStoreDeliversMapper.updateBatch(byOrderId);
|
|
|
+
|
|
|
+// FsStoreDelivers delivers = byOrderId.get(0);
|
|
|
+//
|
|
|
+// ExpressInfoDTO dto = expressService.getExpressInfo(order.getOrderCode(), delivers.getDeliverSn(), delivers.getDeliverId(), lastFourNumber);
|
|
|
+// log.info("快递鸟查询dto:{}", JSONUtil.toJsonStr(dto));
|
|
|
+// if (!dto.isSuccess()) {
|
|
|
+// return R.error(dto.getReason());
|
|
|
+// }
|
|
|
+// if ("0".equals(dto.getStateEx()) && "0".equals(dto.getState())) {
|
|
|
+// lastFourNumber = "19923690275";
|
|
|
+// if (order.getDeliveryCode().equals(ShipperCodeEnum.SF.getValue()) || order.getDeliveryCode().equals(ShipperCodeEnum.ZTO.getValue())) {
|
|
|
+// lastFourNumber = order.getUserPhone();
|
|
|
+// if (lastFourNumber.length() == 11) {
|
|
|
+// lastFourNumber = StrUtil.sub(lastFourNumber, lastFourNumber.length(), -4);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// dto = expressService.getExpressInfo(order.getOrderCode(), delivers.getDeliverSn(), delivers.getDeliverId(), lastFourNumber);
|
|
|
+// // 这里只记录返回结果
|
|
|
+// if (ObjectUtil.isNotNull(dto)) {
|
|
|
+// log.info("快递查询接口调用成功, 订单号: {}, 快递状态: {}, 扩展状态: {}",
|
|
|
+// order.getOrderCode(), dto.getState(), dto.getStateEx());
|
|
|
+// delivers.setStatus(Integer.valueOf(dto.getState()));
|
|
|
+// delivers.setStateEx(Integer.valueOf(dto.getStateEx()));
|
|
|
+// fsStoreDeliversMapper.update(delivers);
|
|
|
+// } else {
|
|
|
+// log.warn("快递查询接口调用成功,但返回结果为空, 订单号: {}", order.getOrderCode());
|
|
|
+// }
|
|
|
+// }
|
|
|
+// LiveOrder updateEntity = new LiveOrder();
|
|
|
+// updateEntity.setOrderId(order.getOrderId());
|
|
|
+// updateEntity.setDeliveryStatus(Integer.parseInt(dto.getState()));
|
|
|
+// updateEntity.setDeliveryType(dto.getStateEx());
|
|
|
+// baseMapper.updateLiveOrder(updateEntity);
|
|
|
+// //如果是正常签收,更新订单状态
|
|
|
+// if (dto.getState().equals("3") && (dto.getStateEx().equals("301") || dto.getStateEx().equals("302") || dto.getStateEx().equals("304") || dto.getStateEx().equals("311"))) {
|
|
|
+// this.getGoods(order.getOrderId());
|
|
|
+// }
|
|
|
return R.ok();
|
|
|
}
|
|
|
|