From 433fa2c0acc2eb87905d5077161d11e2fc3525af Mon Sep 17 00:00:00 2001 From: cabbage <281119120@qq.com> Date: Tue, 22 Jul 2025 14:51:45 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E6=94=AF=E4=BB=98=E5=9B=9E=E8=B0=83?= =?UTF-8?q?=E5=A4=84=E7=90=86188=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/service/impl/SaOrderHandle.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderHandle.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderHandle.java index c33b4992..30d1b2e1 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderHandle.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/SaOrderHandle.java @@ -212,7 +212,7 @@ public class SaOrderHandle { // 获取汇率 CurrencyDTO currency = iCurrencyServiceApi.getCurrency(pkCountry).getData(); // 商品编号 + sku主键 + 数量 - List bdWaresDetailExtList = getWaresDetailExtList(orderParam, cuMember); + List bdWaresDetailExtList = getWaresDetailExtList(orderParam, cuMember, saOrder.getOrderTypeExtend()); if (CollectionUtil.isEmpty(bdWaresDetailExtList)) { throw new RuntimeException("没有找到商品,请刷新重试!"); } @@ -399,7 +399,7 @@ public class SaOrderHandle { */ SaOrder computeSaOrderAchieve(OrderParam orderParam) { // 商品编号 + sku主键 + 数量 - List bdWaresDetailExtList = getWaresDetailExtList(orderParam, null); + List bdWaresDetailExtList = getWaresDetailExtList(orderParam, null, null); SaOrder saOrder = SaOrder.builder().orderAmount(BigDecimal.ZERO) .orderAchieve(BigDecimal.ZERO).build(); bdWaresDetailExtList.forEach(waresDetailExt -> { @@ -419,13 +419,13 @@ public class SaOrderHandle { * @param orderParam 会员端参数 * @param cuMember 会员 */ - private List getWaresDetailExtList(OrderParam orderParam, CuMember cuMember) { + private List getWaresDetailExtList(OrderParam orderParam, CuMember cuMember, Integer orderTypeExtend) { // 商品编号 + sku列表找到所有的商品信息 // 查找所有商品 List bdWaresDetailExtList = new ArrayList<>(); if (CollectionUtil.isNotEmpty(orderParam.getOrderItemsParams())) { List waresDetailExtList = bdWaresDetailService.queryWaresDetailByCondition(orderParam.getSpecialArea(), orderParam.getTransType(), orderParam.getOrderItemsParams()); - setWaresRange(orderParam.getSpecialArea(), waresDetailExtList, cuMember); + setWaresRange(orderParam.getSpecialArea(), waresDetailExtList, cuMember, orderTypeExtend); if (waresDetailExtList.size() > 0) { bdWaresDetailExtList.addAll(waresDetailExtList); } @@ -440,15 +440,20 @@ public class SaOrderHandle { } /** - * 设置商品的极差 + * 设置商品的级差 * * @param specialArea 所属专区 * @param cuMember 会员 * @param bdWaresDetailExtList 商品明细 */ - private void setWaresRange(Integer specialArea, List bdWaresDetailExtList, CuMember cuMember) { + private void setWaresRange(Integer specialArea, List bdWaresDetailExtList, CuMember cuMember, Integer orderTypeExtend) { + if (null != orderTypeExtend && EOrderTypeExtend.REG_REP.getValue() == orderTypeExtend) { + // 订单扩展类型不为空,并且是注册转复购,则不需要处理级差 + return; + } // 复购订单商品跟业绩需要单独处理 - if (EOrderType.REPURCHASE_ORDER.getValue() == specialArea || EOrderType.SPECIAL_REPURCHASE_ORDER.getValue() == specialArea) { + if (EOrderType.REPURCHASE_ORDER.getValue() == specialArea + || EOrderType.SPECIAL_REPURCHASE_ORDER.getValue() == specialArea) { Map> waresDetailExtMap = new HashMap<>(); List specsSkuList = new ArrayList<>(); bdWaresDetailExtList.forEach(bdWaresDetailExt -> {