Browse Source

修改报关计算金额功能

master
xh-pan1 2 years ago
parent
commit
b60bcde40a
  1. 4
      cereshop-app/src/main/java/com/shop/cereshop/app/domain/stock/IbOrderItemRequestBo.java
  2. 4
      cereshop-app/src/main/java/com/shop/cereshop/app/pay/xs/service/impl/XsPayServiceImpl.java
  3. 14
      cereshop-app/src/main/java/com/shop/cereshop/app/service/stock/impl/CrossStockServiceImpl.java
  4. 2
      cereshop-app/src/main/resources/mybatis/mapper/order/CereShopOrderDAO.xml

4
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;
}

4
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","支付单报关出错", "支付失败");
}
}
}

14
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<IbOrderItemRequestBo> items = new ArrayList<>();
//税费
BigDecimal taxtotal = BigDecimal.ZERO;
List<CereOrderProduct> 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);

2
cereshop-app/src/main/resources/mybatis/mapper/order/CereShopOrderDAO.xml

@ -503,7 +503,7 @@
</select>
<select id="findByFormid" parameterType="java.lang.Object" resultType="com.shop.cereshop.commons.domain.order.CereShopOrder">
SELECT order_id, buyer_user_id, customer_phone, shop_id, price, order_formid, customer_name, shop_group_work_id,
SELECT order_id, buyer_user_id, customer_phone, shop_id, price, logistics_price ,discount_price, order_formid, customer_name, shop_group_work_id,
shop_seckill_id, shop_discount_id, payment_mode, coupon_id, receive_name, receive_phone, address, remark,
receive_adress
FROM cere_shop_order where order_formid=#{orderFormId}

Loading…
Cancel
Save