diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java index fa861c3a..fad42328 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/sale/order/service/impl/OrderBusinessServiceImpl.java @@ -648,16 +648,13 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { return "订单已经发货,不能进行调换货物"; } - // 是否扣款 - boolean orderCostFlag = false; // 修改前的订单金额 + 邮费 BigDecimal beforeAmount = saOrder.getOrderAmount().add(saOrder.getPostage()).setScale(2, BigDecimal.ROUND_HALF_UP); // 修改后的订单金额 + 邮费 BigDecimal afterAmount = afterData.getOrderAmount().add(param.getPostage()).setScale(2, BigDecimal.ROUND_HALF_UP); - // 对比修改前后订单价格处理是否补差价 + // 校验订单原订单价格和调换完货之后的价格不相同不进行换货 if (beforeAmount.compareTo(afterAmount) != 0) { - // 修改前后金额不相同则进行处理 - orderCostFlag = true; + return TransactionUtils.getContent(CommonMsgConstants.OPERATION_FAILED) + ":" + param.getOrderCode() + SaOrderMsgConstants.PRODUCT_CONFIRM_PRICE; } if (iSaOrderChargeLogService.save(saOrderChargeLog)) { @@ -666,13 +663,7 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { changeIdList, noChangeIdList, userId, pkCountry, nowDate); - if (orderCostFlag) { - // 订单调换货物扣费处理 - R resultR = iMemberAccountServiceApi.orderChangeProduct(saOrder, updateOrder, userId, dto); - if (!resultR.isSuccess()) { - throw new BaseException(resultR.getMsg()); - } - } else if (null != dto) { + if (null != dto) { // 订单总价未变化,但是需要手续费 R resultR = iMemberAccountServiceApi.orderChangeProduct(null, null, userId, dto); if (!resultR.isSuccess()) { @@ -755,24 +746,9 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { BigDecimal beforeAmount = saOrder.getOrderAmount().add(saOrder.getPostage()).setScale(2, BigDecimal.ROUND_HALF_UP); // 修改后的订单金额 + 邮费 BigDecimal afterAmount = afterData.getOrderAmount().add(param.getPostage()).setScale(2, BigDecimal.ROUND_HALF_UP); - // 对比修改前后订单价格处理是否补差价 - if (beforeAmount.compareTo(afterAmount) < 0) { - // 存在差额 - // 封装订单数据 - SaOrder updateOrder = BeanUtil.copyProperties(saOrder, SaOrder.class); - updateOrder.setPkId(saOrder.getPkId()); - updateOrder.setOrderAmount(afterData.getOrderAmount()); - updateOrder.setOrderAchieve(afterData.getOrderAchieve()); - updateOrder.setOrderAssAchieve(afterData.getOrderAssAchieve()); - updateOrder.setPostage(param.getPostage()); - updateOrder.setPkModified(userId); - updateOrder.setModifiedTime(nowDate); - - // 校验订单支付金额是否足够 - R resultR = iMemberAccountServiceApi.orderChangeProductPre(saOrder, updateOrder); - if (!resultR.isSuccess()) { - return resultR.getMsg(); - } + //校验订单原订单价格和调换完货之后的价格不相同不进行换货 + if (beforeAmount.compareTo(afterAmount) != 0) { + return TransactionUtils.getContent(CommonMsgConstants.OPERATION_FAILED) + ":" + param.getOrderCode() + SaOrderMsgConstants.PRODUCT_CONFIRM_PRICE; } if (iSaOrderChargeLogService.save(saOrderChargeLog)) { @@ -2015,7 +1991,6 @@ public class OrderBusinessServiceImpl implements IOrderBusinessService { BigDecimal afterOrderAssAchieve = BigDecimal.ZERO; // 修改后明细数据 List afterDetailList = new ArrayList<>(); - // 产品ID列表 List productIdList = param.getItemList().stream().map(OrderProductDetailParam::getPkProduct).collect(Collectors.toList()); // 查询产品列表 diff --git a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/SaOrderMsgConstants.java b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/SaOrderMsgConstants.java index dec42129..2cf68e3d 100644 --- a/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/SaOrderMsgConstants.java +++ b/bd-common/bd-common-core/src/main/java/com/hzs/common/core/constant/msg/SaOrderMsgConstants.java @@ -163,4 +163,9 @@ public class SaOrderMsgConstants { */ public static final String CHECK_MEMBER_LOWER_EXIST = "该会员推荐存在会员不能撤单"; + /** + * 原订单价格和调换完货之后的价格不相同 -- 不允许货物调换 + */ + public static final String PRODUCT_CONFIRM_PRICE = "原订单价格和调换完货之后的价格不相同"; + }