无关风月
2025-01-15 d20a4aade6f9ed5111b496ac9abdff9f05f81535
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()){