diff --git a/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/app/ShoppingController.java b/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/app/ShoppingController.java index 7c61c504..ea60d269 100644 --- a/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/app/ShoppingController.java +++ b/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/app/ShoppingController.java @@ -1052,19 +1052,34 @@ public class ShoppingController extends ControllerBase { order.setActualFee(request.getActualFee()); order.setDiscount(order.getTotalFee().subtract(request.getActualFee())); List adjustItems = new ArrayList<>(); + List carts = shoppingCartService.listByIds(request.getItems() + .stream() + .map(QuotationPriceUpdateItemRequest::getCartId) + .collect(Collectors.toList()) + ); request.getItems().forEach(item -> { - if (Objects.nonNull(item.getNewStandardFee())) { - adjustItems.add( - new QuotationShoppingOrderAdjustItem() - .setAdjustId(adjust.getId()) - .setOrderId(order.getId()) - .setCartId(item.getCartId()) - .setConfigItemId(0L) - .setOldFee(item.getOldStandardFee()) - .setNewFee(item.getNewStandardFee()) - ); - } + QuotationShoppingCart cart = carts.stream() + .filter(c -> Objects.equals(c.getId(), item.getCartId())) + .findFirst() + .get(); + cart.setStandardFee(item.getNewStandardFee()); + adjustItems.add( + new QuotationShoppingOrderAdjustItem() + .setAdjustId(adjust.getId()) + .setOrderId(order.getId()) + .setCartId(item.getCartId()) + .setConfigItemId(0L) + .setOldFee(item.getOldStandardFee()) + .setNewFee(item.getNewStandardFee()) + ); if (CollectionUtil.isNotEmpty(item.getParts())) { + cart.setOptionalFee(cart.getOptionalFee() + .add(item.getParts() + .stream() + .map(QuotationPriceUpdateItemPartRequest::getSpread) + .reduce(BigDecimal.ZERO, BigDecimal::add) + ) + ); item.getParts().forEach(part -> { adjustItems.add( new QuotationShoppingOrderAdjustItem() diff --git a/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/pojo/request/QuotationPriceUpdateItemPartRequest.java b/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/pojo/request/QuotationPriceUpdateItemPartRequest.java index 70422760..6c3bb3a1 100644 --- a/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/pojo/request/QuotationPriceUpdateItemPartRequest.java +++ b/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/pojo/request/QuotationPriceUpdateItemPartRequest.java @@ -25,4 +25,13 @@ public class QuotationPriceUpdateItemPartRequest { */ @NotNull(message = "标准配置调价后价格不能为空") private BigDecimal newStandardFee; + + /** + * 差价 + */ + private BigDecimal spread; + + public BigDecimal getSpread() { + return newStandardFee.subtract(oldStandardFee); + } }