|
|
|
@ -64,6 +64,9 @@ public class OrderAfterSalesApplyController { |
|
|
|
|
if (orderChild == null) { |
|
|
|
|
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "未知的商品订单"); |
|
|
|
|
} |
|
|
|
|
if (productCount > orderChild.getSurplusRefundCount()) { |
|
|
|
|
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "数量超过子订单可退数量"); |
|
|
|
|
} |
|
|
|
|
Map<String,Object> param = new HashMap<>(); |
|
|
|
|
if (orderChild.getSurplusRefundCount().equals(productCount)) { |
|
|
|
|
// 全部退款
|
|
|
|
@ -72,9 +75,9 @@ public class OrderAfterSalesApplyController { |
|
|
|
|
} else { |
|
|
|
|
// 部分退款
|
|
|
|
|
// 计算单价
|
|
|
|
|
BigDecimal unitPrice = orderChild.getSurplusRefundPrice().divide(new BigDecimal(productCount.toString()), 2, BigDecimal.ROUND_DOWN).setScale(2); |
|
|
|
|
BigDecimal unitPrice = orderChild.getSurplusRefundPrice().divide(new BigDecimal(orderChild.getProductCount().toString()), 2, BigDecimal.ROUND_DOWN).setScale(2); |
|
|
|
|
BigDecimal unitPriceIntegral = new BigDecimal(orderChild.getSurplusRefundIntegral().toString()).divide(new BigDecimal("100")) |
|
|
|
|
.divide(new BigDecimal(productCount.toString()), 2, BigDecimal.ROUND_DOWN).setScale(2); |
|
|
|
|
.divide(new BigDecimal(orderChild.getProductCount().toString()), 2, BigDecimal.ROUND_DOWN).setScale(2); |
|
|
|
|
param.put("refundPrice", unitPrice.multiply(new BigDecimal(productCount.toString()))); |
|
|
|
|
param.put("refundIntegral", unitPriceIntegral.multiply(new BigDecimal("100")).longValue()); |
|
|
|
|
} |
|
|
|
|