|
@@ -200,6 +200,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
|
|
|
orderItem.setGiftGrowth(cartPromotionItem.getGrowth());
|
|
|
orderItem.setPromoterId(cartPromotionItem.getPromoterId());
|
|
|
orderItem.setPrecisionAmount(BigDecimal.ZERO);
|
|
|
+ orderItem.setIntegrationAmount(new BigDecimal(0));
|
|
|
orderItemList.add(orderItem);
|
|
|
}
|
|
|
//判断购物车中商品是否都有库存
|
|
@@ -242,40 +243,43 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
|
|
|
}
|
|
|
BigDecimal balanceAmount = BigDecimal.ZERO;
|
|
|
//判断是否使用积分
|
|
|
- if (orderParam.isUseBalance()) {
|
|
|
-
|
|
|
- // 查询余额
|
|
|
- HttpResponseResult<BigDecimal> balance = webFeignService.balance(orderParam.getUserId());
|
|
|
- if(balance.getStatus()) {
|
|
|
- balanceAmount = balance.getData();
|
|
|
- } else {
|
|
|
- LOG.error("余额查询失败:{}",balance.getMsg());
|
|
|
- }
|
|
|
-
|
|
|
- //不使用积分
|
|
|
- for (OmsOrderItem orderItem : orderItemList) {
|
|
|
- orderItem.setIntegrationAmount(new BigDecimal(0));
|
|
|
- }
|
|
|
- } else {
|
|
|
- for (OmsOrderItem orderItem : orderItemList) {
|
|
|
- orderItem.setIntegrationAmount(new BigDecimal(0));
|
|
|
- }
|
|
|
- //使用积分
|
|
|
- // BigDecimal totalAmount = calcTotalAmount(orderItemList);
|
|
|
- // BigDecimal integrationAmount = getUseIntegrationAmount(orderParam.getUseIntegration(), totalAmount,
|
|
|
- // currentMember, orderParam.getCouponId() != null);
|
|
|
- // if (integrationAmount.compareTo(new BigDecimal(0)) == 0) {
|
|
|
- // Asserts.fail("积分不可用");
|
|
|
- // } else {
|
|
|
- // //可用情况下分摊到可用商品中
|
|
|
- // for (OmsOrderItem orderItem : orderItemList) {
|
|
|
- // BigDecimal perAmount = orderItem.getProductPrice()
|
|
|
- // .divide(totalAmount, 3, RoundingMode.HALF_EVEN)
|
|
|
- // .multiply(integrationAmount);
|
|
|
- // orderItem.setIntegrationAmount(perAmount);
|
|
|
- // }
|
|
|
- // }
|
|
|
- }
|
|
|
+ // if (orderParam.isUseBalance()) {
|
|
|
+ //
|
|
|
+ // // 查询余额
|
|
|
+ // HttpResponseResult<BigDecimal> balance = webFeignService.balance(orderParam.getUserId());
|
|
|
+ // if(balance.getStatus()) {
|
|
|
+ // balanceAmount = balance.getData();
|
|
|
+ // } else {
|
|
|
+ // LOG.error("余额查询失败:{}",balance.getMsg());
|
|
|
+ // }
|
|
|
+ // if(balanceAmount.compareTo(orderParam.getOrderAmount()) >0) {
|
|
|
+ // balanceAmount = orderParam.getOrderAmount();
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // //不使用积分
|
|
|
+ // for (OmsOrderItem orderItem : orderItemList) {
|
|
|
+ // orderItem.setIntegrationAmount(new BigDecimal(0));
|
|
|
+ // }
|
|
|
+ // } else {
|
|
|
+ // for (OmsOrderItem orderItem : orderItemList) {
|
|
|
+ // orderItem.setIntegrationAmount(new BigDecimal(0));
|
|
|
+ // }
|
|
|
+ // //使用积分
|
|
|
+ // // BigDecimal totalAmount = calcTotalAmount(orderItemList);
|
|
|
+ // // BigDecimal integrationAmount = getUseIntegrationAmount(orderParam.getUseIntegration(), totalAmount,
|
|
|
+ // // currentMember, orderParam.getCouponId() != null);
|
|
|
+ // // if (integrationAmount.compareTo(new BigDecimal(0)) == 0) {
|
|
|
+ // // Asserts.fail("积分不可用");
|
|
|
+ // // } else {
|
|
|
+ // // //可用情况下分摊到可用商品中
|
|
|
+ // // for (OmsOrderItem orderItem : orderItemList) {
|
|
|
+ // // BigDecimal perAmount = orderItem.getProductPrice()
|
|
|
+ // // .divide(totalAmount, 3, RoundingMode.HALF_EVEN)
|
|
|
+ // // .multiply(integrationAmount);
|
|
|
+ // // orderItem.setIntegrationAmount(perAmount);
|
|
|
+ // // }
|
|
|
+ // // }
|
|
|
+ // }
|
|
|
//计算order_item的实付金额
|
|
|
handleRealAmount(orderItemList);
|
|
|
//进行sku库存锁定
|
|
@@ -408,8 +412,11 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
|
|
|
userOrderPayment.setStatus(TradeStatusEnum.succeeded.getCode());
|
|
|
userOrderPaymentService.saveOrUpdate(userOrderPayment);
|
|
|
}
|
|
|
- if (balanceAmount.compareTo(MapUtil.get(data, "balanceAmount",BigDecimal.class)) != 0 ) {
|
|
|
- throw new BizException("余额有变动,订单生成失败");
|
|
|
+ // 记录余额支付金额
|
|
|
+ BigDecimal balanceAmount1 = MapUtil.get(data, "balanceAmount", BigDecimal.class);
|
|
|
+ if (BigDecimal.ZERO.compareTo(balanceAmount1) !=0 ) {
|
|
|
+ order.setIntegrationAmount(balanceAmount1);
|
|
|
+ orderMapper.updateByPrimaryKey(order);
|
|
|
}
|
|
|
result.put("pay",data);
|
|
|
|