From 985b8a1395f628faa55a52214871d0d2a5ee5e60 Mon Sep 17 00:00:00 2001 From: Jack <46790855@qq.com> Date: Sun, 7 Sep 2025 22:50:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=97=A5=E5=BF=97=E6=89=93?= =?UTF-8?q?=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ShopOrderBaseServiceImpl.java | 65 +++++++++++++------ .../service/impl/ShopOrderLklServiceImpl.java | 4 +- 2 files changed, 46 insertions(+), 23 deletions(-) diff --git a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java index b284d0e2..c0aa7081 100644 --- a/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java +++ b/mall-shop/src/main/java/com/suisung/mall/shop/order/service/impl/ShopOrderBaseServiceImpl.java @@ -8513,12 +8513,14 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl shopOrderItemList = shopOrderItemService.list(queryWrapper); if (shopOrderBase == null || shopOrderData == null || CollUtil.isEmpty(shopOrderItemList)) { - logger.error("无法获取订单信息!"); + logger.error("构建顺丰订单失败:无法获取订单信息,订单ID={}", shopOrderId); return null; } Integer storeId = shopOrderBase.getStore_id(); if (storeId == null || storeId <= 0) { - logger.error("缺少店铺 Id!"); + logger.error("构建顺丰订单失败:缺少店铺Id,订单ID={},storeId={}", shopOrderId, storeId); return null; } @@ -8543,12 +8545,7 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl orderProductList = new ArrayList<>(); for (ShopOrderItem shopOrderItem : shopOrderItemList) { - productNum += shopOrderItem.getOrder_item_quantity(); + totalProductQuantity += shopOrderItem.getOrder_item_quantity(); // 产品详情 SFOrderProductDetailReq orderProductDetail = new SFOrderProductDetailReq(); orderProductDetail.setProduct_id(shopOrderItem.getProduct_id()); orderProductDetail.setProduct_name(shopOrderItem.getItem_name()); orderProductDetail.setProduct_num(shopOrderItem.getOrder_item_quantity()); - // 单个商品金额=数量*单价,单位分 - Integer itemPrice = shopOrderItem.getOrder_item_unit_price().multiply(BigDecimal.valueOf(shopOrderItem.getOrder_item_quantity())).multiply(BigDecimal.valueOf(100)).intValue(); + // 单个商品金额=单价*数量,单位分 + BigDecimal itemPriceDecimal = shopOrderItem.getOrder_item_unit_price() + .multiply(BigDecimal.valueOf(100)) + .multiply(BigDecimal.valueOf(shopOrderItem.getOrder_item_quantity())); + Integer itemPrice = itemPriceDecimal.intValue(); orderProductDetail.setProduct_price(itemPrice); orderProductList.add(orderProductDetail); + + // 记录商品详情日志,便于部署后排查问题 + logger.debug("订单{}商品详情:商品ID={}, 商品名称={}, 数量={}, 单价(分)={}, 小计(分)={}", + shopOrderId, + shopOrderItem.getProduct_id(), + shopOrderItem.getItem_name(), + shopOrderItem.getOrder_item_quantity(), + shopOrderItem.getOrder_item_unit_price().multiply(BigDecimal.valueOf(100)).intValue(), + itemPrice); } orderDetail.setProduct_type(businessType); // 店铺主营商品分类,参考:https://commit-openic.sf-express.com/#/apidoc orderDetail.setTotal_price(shopOrderBase.getOrder_payment_amount().multiply(BigDecimal.valueOf(100)).intValue()); // 单位分 orderDetail.setWeight_gram(0); // 重量一律传 0kg 先,谢总本地运营商协商好的 - orderDetail.setProduct_num(productNum); //物品个数 - orderDetail.setProduct_type_num(productTypeNum); //物品种类个数 - + orderDetail.setProduct_num(totalProductQuantity); //物品个数 + orderDetail.setProduct_type_num(productTypeCount); //物品种类个数 // 订单里的所有商品列表 orderDetail.setProduct_detail(orderProductList); @@ -8623,6 +8631,11 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl pairShopAddr = shopStoreBaseService.checkStoreAddress(shopStoreBase); + if (!pairShopAddr.getFirst()) { + logger.error("构建顺丰订单失败:店铺地址校验失败,订单ID={},storeId={}", shopOrderId, storeId); + return null; + } + shop.setShop_name(shopStoreBase.getStore_name()); shop.setShop_phone(shopStoreInfo.getStore_tel()); shop.setShop_address(pairShopAddr.getSecond().getFullAddress()); @@ -8631,6 +8644,11 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl pairReceiveAddr = shopOrderDeliveryAddressService.checkAddress(shopOrderDeliveryAddress); + if (!pairReceiveAddr.getFirst()) { + logger.error("构建顺丰订单失败:收货地址校验失败,订单ID={},storeId={}", shopOrderId, storeId); + return null; + } + receive.setUser_name(shopOrderDeliveryAddress.getDa_name()); receive.setUser_phone(shopOrderDeliveryAddress.getDa_mobile()); receive.setUser_address(pairReceiveAddr.getSecond().getFullAddress()); @@ -8655,6 +8673,11 @@ public class ShopOrderBaseServiceImpl extends BaseServiceImpl