From 3347f782016986a32ad70b805fcca8ea8247f001 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 27 十二月 2024 11:25:54 +0800
Subject: [PATCH] 修改分佣逻辑

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java |   27 ++++++++++++++++-----------
 1 files changed, 16 insertions(+), 11 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
index db2b7cd..1d15775 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -101,12 +101,6 @@
 	@Resource
 	private UserChangeLogClient userChangeLogClient;
 
-
-
-
-
-
-	
 	@Resource
 	private PointSettingClient pointSettingClient;
 	
@@ -814,6 +808,12 @@
 				return R.fail("账户余额不足");
 			}
 		}
+		if(3 == shoppingCartPayment.getPaymentType()){
+			Integer availablePoint = appUser.getAvailablePoint();
+			if(availablePoint < orderPoint){
+				return R.fail("账户积分不足");
+			}
+		}
 		//判断运费支付是否足够
 		if(null != shoppingCartPayment.getFreightPaymentType() && 2 == shoppingCartPayment.getFreightPaymentType() && expressFee.compareTo(BigDecimal.ZERO) > 0){
 			BigDecimal balance = appUser.getBalance();
@@ -912,15 +912,16 @@
 				PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
 				int earnPoint1 = earnPoint;
 				if(null != pointSetting && 1 == pointSetting.getBuyPointOpen()){
-					earnPoint1 = earnPoint1 * (100 - pointSetting.getBuyPoint());
+					earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getBuyPoint().divide(new BigDecimal(100))).intValue();
 				}
 				appUser.setShopPoint(appUser.getShopPoint() + earnPoint);
-				appUser.setLavePoint(appUser.getLavePoint() + earnPoint1);
+				appUser.setLavePoint(appUser.getLavePoint() + earnPoint);
 				appUser.setTotalPoint(appUser.getTotalPoint() + earnPoint);
+				appUser.setAvailablePoint(appUser.getAvailablePoint() + earnPoint1);
 
 				UserPoint userPoint = new UserPoint();
 				userPoint.setType(1);
-				userPoint.setHistoricalPoint(appUser.getLavePoint() - earnPoint1);
+				userPoint.setHistoricalPoint(appUser.getLavePoint() - earnPoint);
 				userPoint.setVariablePoint(earnPoint);
 				userPoint.setBalance(appUser.getLavePoint());
 				userPoint.setCreateTime(LocalDateTime.now());
@@ -960,11 +961,15 @@
 			int earnPoint1 = earnPoint;
 			//计算可用积分比例
 			if(null != pointSetting && 1 == pointSetting.getBuyPointOpen()){
-				earnPoint1 = earnPoint1 * (100 - pointSetting.getBuyPoint());
+				earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getBuyPoint().divide(new BigDecimal(100))).intValue();
 			}
+			//扣减订单支付积分
 			appUser.setLavePoint(appUser.getLavePoint() - orderPoint);
+			appUser.setAvailablePoint(appUser.getAvailablePoint() - orderPoint);
+			
 			appUser.setShopPoint(appUser.getShopPoint() + earnPoint);
-			appUser.setLavePoint(appUser.getLavePoint() + earnPoint1);
+			appUser.setLavePoint(appUser.getLavePoint() + earnPoint);
+			appUser.setAvailablePoint(appUser.getAvailablePoint() + earnPoint1);
 			appUser.setTotalPoint(appUser.getTotalPoint() + earnPoint);
 			appUser.setLastShopTime(LocalDateTime.now());
 			appUserClient.editAppUserById(appUser);

--
Gitblit v1.7.1