From d20a4aade6f9ed5111b496ac9abdff9f05f81535 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期三, 15 一月 2025 22:32:02 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/qijisheng

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java |   21 ++++++++++++++++-----
 1 files changed, 16 insertions(+), 5 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 bfda500..5d23be9 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
@@ -11,6 +11,7 @@
 import com.ruoyi.account.api.vo.PaymentUserCoupon;
 import com.ruoyi.account.api.vo.PaymentUserCouponVo;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.order.mapper.ShoppingCartMapper;
@@ -190,7 +191,7 @@
 		info.setVip(appUser.getVipId());
 		GoodsSeckill goodsSeckill = seckillActivityInfoClient.getSeckillActivityInfo(info).getData();
 		//没有秒杀活动或者添加的普通商品则不使用秒杀活动价格
-		if((null == goodsSeckill || (null != goodsSeckill.getCashPayment() && null != goodsSeckill.getPointPayment())) || type == 1){
+		if((null == goodsSeckill || (null == goodsSeckill.getCashPayment() && null == goodsSeckill.getPointPayment())) || type == 1){
 			//没有秒杀价,则判断门店特价
 			GetGoodsBargainPrice goodsBargainPrice = new GetGoodsBargainPrice();
 			goodsBargainPrice.setGoodsId(goodsId);
@@ -329,6 +330,15 @@
 	@Override
 	public Long addGoods(ShoppingCart shoppingCart) {
 		Long userid = tokenService.getLoginUserApplet().getUserid();
+		long goodsSaleNum = orderService.getGoodsSaleNum(shoppingCart.getGoodsId(), null, userid);
+		long count = count(new LambdaQueryWrapper<ShoppingCart>()
+				.eq(ShoppingCart::getGoodsId, shoppingCart.getGoodsId())
+				.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()){
+			throw new ServiceException("超出购买数量限制");
+		}
 		ShoppingCart one = this.getOne(new LambdaQueryWrapper<ShoppingCart>().eq(ShoppingCart::getAppUserId, userid)
 				.eq(ShoppingCart::getGoodsId, shoppingCart.getGoodsId()).eq(ShoppingCart::getType, shoppingCart.getType()).eq(ShoppingCart::getStatus, 1));
 		if(null != one){
@@ -351,15 +361,16 @@
 	 */
 	@Override
 	public R setGoodsNumber(SetGoodsNumber setGoodsNumber) {
+
+		ShoppingCart shoppingCart = this.getById(setGoodsNumber.getId());
 		if(0 >= setGoodsNumber.getNumber()){
 			return R.fail("修改数量不能小于等于0");
 		}
-		ShoppingCart shoppingCart = this.getById(setGoodsNumber.getId());
 
 		if(null != shoppingCart){
 
-			Goods goods = goodsClient.getGoodsById(shoppingCart.getGoodsId()).getData();
-			if(null != goods.getPurchaseLimit() && -1 != goods.getPurchaseLimit() && goods.getPurchaseLimit() < setGoodsNumber.getNumber()){
+			Goods goods1 = goodsClient.getGoodsById(shoppingCart.getGoodsId()).getData();
+			if(null != goods1.getPurchaseLimit() && -1 != goods1.getPurchaseLimit() && goods1.getPurchaseLimit() < setGoodsNumber.getNumber()){
 				return R.fail("修改数量不能大于限购数量");
 			}
 
@@ -723,7 +734,7 @@
 			num += num1;
 			ShoppingCart shoppingCart = this.getById(id);
 			//判断当前数量是否已经超出限购数量(需要计算已经购买的数量)
-			Integer goodsSaleNum = orderService.getGoodsSaleNum(shoppingCart.getGoodsId(), type);
+			Integer goodsSaleNum = orderService.getGoodsSaleNum(shoppingCart.getGoodsId(), type, userid);
 			Goods goods = goodsClient.getGoodsById(shoppingCart.getGoodsId()).getData();
 			if(1 == type){
 				if(null != goods.getPurchaseLimit() && -1 != goods.getPurchaseLimit() && (goodsSaleNum + num1) > goods.getPurchaseLimit()){

--
Gitblit v1.7.1