From b0cc9bd3619e69fa4c8bbdedebb56435cfd74a8f Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期五, 17 一月 2025 11:24:51 +0800
Subject: [PATCH] 12.18

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java |   28 ++++++++++++++++++++++------
 1 files changed, 22 insertions(+), 6 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 5d23be9..6df1678 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
@@ -333,10 +333,24 @@
 		long goodsSaleNum = orderService.getGoodsSaleNum(shoppingCart.getGoodsId(), null, userid);
 		long count = count(new LambdaQueryWrapper<ShoppingCart>()
 				.eq(ShoppingCart::getGoodsId, shoppingCart.getGoodsId())
+				.eq(ShoppingCart::getStatus,1)
 				.eq(ShoppingCart::getAppUserId, userid));
 		goodsSaleNum += count;
 		Goods goods = goodsClient.getGoodsById(shoppingCart.getGoodsId()).getData();
-		if(null != goods.getPurchaseLimit() && -1 != goods.getPurchaseLimit() && (goodsSaleNum + shoppingCart.getNumber()) > goods.getPurchaseLimit()){
+
+		Integer maxNum = 0;
+		if(shoppingCart.getType() == 2){
+			R<SeckillActivityInfo> r = seckillActivityInfoClient.getSeckillActivityInfoByGoodsId(shoppingCart.getGoodsId());
+			if (R.isError(r)){
+				throw new ServiceException("获取秒杀商品失败!");
+			}
+			SeckillActivityInfo seckillActivityInfo = r.getData();
+			maxNum = seckillActivityInfo.getMaxNum();
+		}else {
+			maxNum = goods.getPurchaseLimit();
+		}
+
+		if(null != goods.getPurchaseLimit() && -1 != maxNum && (goodsSaleNum + shoppingCart.getNumber()) > maxNum){
 			throw new ServiceException("超出购买数量限制");
 		}
 		ShoppingCart one = this.getOne(new LambdaQueryWrapper<ShoppingCart>().eq(ShoppingCart::getAppUserId, userid)
@@ -370,7 +384,9 @@
 		if(null != shoppingCart){
 
 			Goods goods1 = goodsClient.getGoodsById(shoppingCart.getGoodsId()).getData();
-			if(null != goods1.getPurchaseLimit() && -1 != goods1.getPurchaseLimit() && goods1.getPurchaseLimit() < setGoodsNumber.getNumber()){
+			if(null != goods1.getPurchaseLimit() && -1 != goods1.getPurchaseLimit()
+					&& goods1.getPurchaseLimit() < setGoodsNumber.getNumber()
+					&& setGoodsNumber.getNumber() >= shoppingCart.getNumber()){
 				return R.fail("修改数量不能大于限购数量");
 			}
 
@@ -1194,7 +1210,7 @@
 					totalDistributionAmount = totalDistributionAmount.subtract(paymentMoney1);
 					balance = balance.subtract(paymentMoney1);
 					appUser.setTotalRedPacketAmount(totalRedPacketAmount);
-					appUser.setTotalDistributionAmount(totalDistributionAmount);
+//					appUser.setTotalDistributionAmount(totalDistributionAmount);
 					appUser.setBalance(balance);
 					distributionAmount = paymentMoney1;
 				}else{
@@ -1202,7 +1218,7 @@
 					totalDistributionAmount = BigDecimal.ZERO;
 					balance = balance.subtract(paymentMoney1);
 					appUser.setTotalRedPacketAmount(totalRedPacketAmount);
-					appUser.setTotalDistributionAmount(totalDistributionAmount);
+//					appUser.setTotalDistributionAmount(totalDistributionAmount);
 					appUser.setBalance(balance);
 					distributionAmount = totalDistributionAmount;
 				}
@@ -1351,7 +1367,7 @@
 							totalDistributionAmount = totalDistributionAmount.subtract(expressFee1);
 							balance = balance.subtract(expressFee1);
 							appUser.setTotalRedPacketAmount(totalRedPacketAmount);
-							appUser.setTotalDistributionAmount(totalDistributionAmount);
+//							appUser.setTotalDistributionAmount(totalDistributionAmount);
 							appUser.setBalance(balance);
 							distributionAmount = expressFee1;
 						}else{
@@ -1359,7 +1375,7 @@
 							totalDistributionAmount = BigDecimal.ZERO;
 							balance = balance.subtract(expressFee1);
 							appUser.setTotalRedPacketAmount(totalRedPacketAmount);
-							appUser.setTotalDistributionAmount(totalDistributionAmount);
+//							appUser.setTotalDistributionAmount(totalDistributionAmount);
 							appUser.setBalance(balance);
 							distributionAmount = totalDistributionAmount;
 						}

--
Gitblit v1.7.1