From 49c1552ab77c0aca7f1f726a89fdccb7ddd428b2 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 27 十二月 2024 11:39:04 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java |   36 ++++++++++++++++++++++++------------
 1 files changed, 24 insertions(+), 12 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 c71b1b9..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;
 	
@@ -175,6 +169,7 @@
 				area.setCityCode(appUser.getCityCode());
 				area.setProvinceCode(appUser.getProvinceCode());
 				area.setVip(appUser.getVipId());
+				area.setGoodsId(goodsId);
 				GoodsArea goodsArea = goodsAreaClient.getGoodsArea(area).getData();
 				if(null == goodsArea){
 					//没有地区价格,则使用会员价格
@@ -191,6 +186,7 @@
 						price.setSuperiorSubcommission(goodsVip.getSuperiorSubcommission());
 						price.setSuperiorRebatePoints(goodsVip.getSuperiorRebatePoints());
 						price.setSuperiorType(goodsVip.getSuperiorType());
+						price.setSuperiorPriceType(goodsVip.getSuperiorPriceType());
 						price.setServuceShopCharges(goodsVip.getServuceShopCharges());
 						price.setServuceShopPoints(goodsVip.getServuceShopPoints());
 						price.setTechnicianPoints(goodsVip.getTechnicianPoints());
@@ -208,6 +204,7 @@
 					price.setSuperiorSubcommission(goodsArea.getSuperiorSubcommission());
 					price.setSuperiorRebatePoints(goodsArea.getSuperiorRebatePoints());
 					price.setSuperiorType(goodsArea.getSuperiorType());
+					price.setSuperiorPriceType(goodsArea.getSuperiorPriceType());
 					price.setServuceShopCharges(goodsArea.getServuceShopCharges());
 					price.setServuceShopPoints(goodsArea.getServuceShopPoints());
 					price.setTechnicianPoints(goodsArea.getTechnicianPoints());
@@ -232,6 +229,7 @@
 				price.setSuperiorSubcommission(goodsArea.getSuperiorSubcommission());
 				price.setSuperiorRebatePoints(goodsArea.getSuperiorRebatePoints());
 				price.setSuperiorType(goodsArea.getSuperiorType());
+				price.setSuperiorPriceType(goodsArea.getSuperiorPriceType());
 				price.setServuceShopCharges(goodsArea.getServuceShopCharges());
 				price.setServuceShopPoints(goodsArea.getServuceShopPoints());
 				price.setTechnicianPoints(goodsArea.getTechnicianPoints());
@@ -258,7 +256,8 @@
 			price.setEarnSpendingPoints(goodsSeckill.getEarnSpendingPoints());
 			price.setSuperiorSubcommission(goodsSeckill.getSuperiorSubcommission());
 			price.setSuperiorRebatePoints(goodsSeckill.getSuperiorRebatePoints());
-			price.setSuperiorType(String.valueOf(goodsSeckill.getSuperiorType()));
+			price.setSuperiorType(goodsSeckill.getSuperiorType());
+			price.setSuperiorPriceType(goodsSeckill.getSuperiorPriceType());
 			price.setServuceShopCharges(goodsSeckill.getServuceShopCharges());
 			price.setServuceShopPoints(goodsSeckill.getServuceShopPoints());
 			price.setTechnicianPoints(goodsSeckill.getTechnicianPoints());
@@ -516,6 +515,7 @@
 			vo.setSuperiorSubcommission(price.getSuperiorSubcommission());
 			vo.setSuperiorRebatePoints(price.getSuperiorRebatePoints());
 			vo.setSuperiorType(price.getSuperiorType());
+			vo.setSuperiorPriceType(price.getSuperiorPriceType());
 			vo.setServuceShopCharges(price.getServuceShopCharges());
 			vo.setServuceShopPoints(price.getServuceShopPoints());
 			vo.setTechnicianPoints(price.getTechnicianPoints());
@@ -808,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();
@@ -846,6 +852,7 @@
 			orderGood.setSuperiorSubcommission(myShoppingCartVo.getSuperiorSubcommission());
 			orderGood.setSuperiorRebatePoints(myShoppingCartVo.getSuperiorRebatePoints());
 			orderGood.setSuperiorType(myShoppingCartVo.getSuperiorType());
+			orderGood.setSuperiorPriceType(myShoppingCartVo.getSuperiorPriceType());
 			orderGood.setServuceShopCharges(myShoppingCartVo.getServuceShopCharges());
 			orderGood.setServuceShopPoints(myShoppingCartVo.getServuceShopPoints());
 			orderGood.setTechnicianPoints(myShoppingCartVo.getTechnicianPoints());
@@ -905,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());
@@ -953,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