| 
														
															@@ -200,6 +200,7 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             orderItem.setGiftGrowth(cartPromotionItem.getGrowth()); 
														 | 
														
														 | 
														
															             orderItem.setGiftGrowth(cartPromotionItem.getGrowth()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             orderItem.setPromoterId(cartPromotionItem.getPromoterId()); 
														 | 
														
														 | 
														
															             orderItem.setPromoterId(cartPromotionItem.getPromoterId()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             orderItem.setPrecisionAmount(BigDecimal.ZERO); 
														 | 
														
														 | 
														
															             orderItem.setPrecisionAmount(BigDecimal.ZERO); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            orderItem.setIntegrationAmount(new BigDecimal(0)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             orderItemList.add(orderItem); 
														 | 
														
														 | 
														
															             orderItemList.add(orderItem); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //判断购物车中商品是否都有库存 
														 | 
														
														 | 
														
															         //判断购物车中商品是否都有库存 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -242,40 +243,43 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         BigDecimal balanceAmount = BigDecimal.ZERO; 
														 | 
														
														 | 
														
															         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的实付金额 
														 | 
														
														 | 
														
															         //计算order_item的实付金额 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         handleRealAmount(orderItemList); 
														 | 
														
														 | 
														
															         handleRealAmount(orderItemList); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //进行sku库存锁定 
														 | 
														
														 | 
														
															         //进行sku库存锁定 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -408,8 +412,11 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             userOrderPayment.setStatus(TradeStatusEnum.succeeded.getCode()); 
														 | 
														
														 | 
														
															             userOrderPayment.setStatus(TradeStatusEnum.succeeded.getCode()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             userOrderPaymentService.saveOrUpdate(userOrderPayment); 
														 | 
														
														 | 
														
															             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); 
														 | 
														
														 | 
														
															         result.put("pay",data); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 |