From b60bcde40a5c9f1ce0947b89c9eec26a5f350ed5 Mon Sep 17 00:00:00 2001 From: xh-pan1 Date: Thu, 22 Jun 2023 14:05:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8A=A5=E5=85=B3=E8=AE=A1?= =?UTF-8?q?=E7=AE=97=E9=87=91=E9=A2=9D=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cereshop/app/domain/stock/IbOrderItemRequestBo.java | 4 ++++ .../cereshop/app/pay/xs/service/impl/XsPayServiceImpl.java | 4 ++-- .../app/service/stock/impl/CrossStockServiceImpl.java | 14 ++++++++++---- .../resources/mybatis/mapper/order/CereShopOrderDAO.xml | 2 +- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/cereshop-app/src/main/java/com/shop/cereshop/app/domain/stock/IbOrderItemRequestBo.java b/cereshop-app/src/main/java/com/shop/cereshop/app/domain/stock/IbOrderItemRequestBo.java index e2aa933..e78b795 100644 --- a/cereshop-app/src/main/java/com/shop/cereshop/app/domain/stock/IbOrderItemRequestBo.java +++ b/cereshop-app/src/main/java/com/shop/cereshop/app/domain/stock/IbOrderItemRequestBo.java @@ -18,4 +18,8 @@ public class IbOrderItemRequestBo implements Serializable { private BigDecimal qty; @ApiModelProperty(value = "商品货号") private String sku; + @ApiModelProperty(value = "税费小计") + private BigDecimal tax; + @ApiModelProperty(value = "商品小计") + private BigDecimal subtotal; } diff --git a/cereshop-app/src/main/java/com/shop/cereshop/app/pay/xs/service/impl/XsPayServiceImpl.java b/cereshop-app/src/main/java/com/shop/cereshop/app/pay/xs/service/impl/XsPayServiceImpl.java index d6edc8c..895a1a0 100644 --- a/cereshop-app/src/main/java/com/shop/cereshop/app/pay/xs/service/impl/XsPayServiceImpl.java +++ b/cereshop-app/src/main/java/com/shop/cereshop/app/pay/xs/service/impl/XsPayServiceImpl.java @@ -515,7 +515,7 @@ public class XsPayServiceImpl implements XsPayService { .eq(CereShopCrossDetail::getShopId, orderList.get(0).getShopId())); if(cereShopCrossDetail == null){ - throw new CoBusinessException("10000","商家没有开通跨境电商服务,请联系商家"); + throw new CoBusinessException("10000","商家没有开通跨境电商服务,请联系商家", "支付失败"); } @@ -562,7 +562,7 @@ public class XsPayServiceImpl implements XsPayService { }else{ e.printStackTrace(); } - throw new CoBusinessException("10000","支付单报关出错"); + throw new CoBusinessException("10000","支付单报关出错", "支付失败"); } } } diff --git a/cereshop-app/src/main/java/com/shop/cereshop/app/service/stock/impl/CrossStockServiceImpl.java b/cereshop-app/src/main/java/com/shop/cereshop/app/service/stock/impl/CrossStockServiceImpl.java index a6d8e36..ae299f4 100644 --- a/cereshop-app/src/main/java/com/shop/cereshop/app/service/stock/impl/CrossStockServiceImpl.java +++ b/cereshop-app/src/main/java/com/shop/cereshop/app/service/stock/impl/CrossStockServiceImpl.java @@ -128,22 +128,28 @@ public class CrossStockServiceImpl implements CrossStockService{ bo.setExpressid("SF"); List items = new ArrayList<>(); + //税费 BigDecimal taxtotal = BigDecimal.ZERO; + List curOrderCereOrderProductList = cereOrderProductList.stream().filter(item -> item.getOrderId().equals(cereShopOrder.getOrderId())).collect(Collectors.toList()); for (CereOrderProduct cereOrderProduct : curOrderCereOrderProductList) { + + BigDecimal rate = cereOrderProduct.getRate().divide(BigDecimal.valueOf(100f),2,BigDecimal.ROUND_HALF_UP); + IbOrderItemRequestBo item = new IbOrderItemRequestBo(); - item.setPrice(cereOrderProduct.getProductPrice()); + //这里需要计算不含税单价 + item.setPrice(cereOrderProduct.getProductPrice().divide(BigDecimal.ONE.add(rate),2,BigDecimal.ROUND_HALF_UP)); item.setQty(new BigDecimal(cereOrderProduct.getNumber())); if(StringUtils.isEmpty(CrossStockConfig.DEFAULT_SKU)){ item.setSku(cereOrderProduct.getSKU()); }else { item.setSku(CrossStockConfig.DEFAULT_SKU); } + item.setSubtotal(item.getPrice().multiply(new BigDecimal(cereOrderProduct.getNumber()))); + item.setTax(item.getSubtotal().multiply(rate)); items.add(item); - taxtotal = taxtotal.add(cereOrderProduct.getProductPrice() - .multiply(new BigDecimal(cereOrderProduct.getNumber())) - .multiply(cereOrderProduct.getRate().divide(BigDecimal.valueOf(100f),2,BigDecimal.ROUND_HALF_UP))); + taxtotal = taxtotal.add(item.getTax()); } bo.setItems(items); diff --git a/cereshop-app/src/main/resources/mybatis/mapper/order/CereShopOrderDAO.xml b/cereshop-app/src/main/resources/mybatis/mapper/order/CereShopOrderDAO.xml index 5050d6e..ac5e5d7 100644 --- a/cereshop-app/src/main/resources/mybatis/mapper/order/CereShopOrderDAO.xml +++ b/cereshop-app/src/main/resources/mybatis/mapper/order/CereShopOrderDAO.xml @@ -503,7 +503,7 @@