luodangjia
2024-12-05 56f732ed7af0e82f32f809ff0797fd0b83b62306
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -3,7 +3,6 @@
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.account.api.feignClient.*;
@@ -15,9 +14,12 @@
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.web.domain.AjaxResult;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.order.mapper.ShoppingCartMapper;
import com.ruoyi.order.model.Order;
import com.ruoyi.order.model.OrderGood;
import com.ruoyi.order.model.ShoppingCart;
import com.ruoyi.order.service.OrderGoodService;
import com.ruoyi.order.service.OrderService;
import com.ruoyi.order.service.ShoppingCartService;
@@ -27,11 +29,7 @@
import com.ruoyi.other.api.vo.GetGoodsBargainPrice;
import com.ruoyi.other.api.vo.GetGoodsShopByGoodsIds;
import com.ruoyi.other.api.vo.GetSeckillActivityInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import model.Order;
import model.OrderGood;
import model.ShoppingCart;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -39,6 +37,7 @@
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
@@ -342,11 +341,14 @@
         return R.fail("修改数量不能小于等于0");
      }
      ShoppingCart shoppingCart = this.getById(setGoodsNumber.getId());
      Goods goods = goodsClient.getGoodsById(shoppingCart.getGoodsId()).getData();
      if(null != goods.getPurchaseLimit() && -1 != goods.getPurchaseLimit() && goods.getPurchaseLimit() < setGoodsNumber.getNumber()){
         return R.fail("修改数量不能大于限购数量");
      }
      if(null != shoppingCart){
         Goods goods = goodsClient.getGoodsById(shoppingCart.getGoodsId()).getData();
         if(null != goods.getPurchaseLimit() && -1 != goods.getPurchaseLimit() && goods.getPurchaseLimit() < setGoodsNumber.getNumber()){
            return R.fail("修改数量不能大于限购数量");
         }
         shoppingCart.setNumber(setGoodsNumber.getNumber());
         this.updateById(shoppingCart);
      }
@@ -398,7 +400,7 @@
         confirmOrderVo.setDiscountAmount(orderMoney.subtract(paymentMoney).setScale(2, RoundingMode.HALF_EVEN));
      }
      BaseSetting baseSetting = baseSettingClient.getBaseSetting(4).getData();
      confirmOrderVo.setUseSimultaneously(baseSetting.getContent().equals("1") ? true : false);
      confirmOrderVo.setUseSimultaneously(baseSetting.getContent().equals("1"));
      int earnPoint = goodsList.stream().mapToInt(MyShoppingCartVo::getEarnSpendingPoints).sum();
      confirmOrderVo.setEarnPoint(earnPoint);
      //支付金额,订单金额-订单优惠
@@ -795,6 +797,9 @@
      order.setPaymentAmount(paymentMoney);
      order.setPoint(orderPoint);
      order.setPayMethod(shoppingCartPayment.getPaymentType());
      if(StringUtils.isNotEmpty(shoppingCartPayment.getExpectedDeliveryTime())){
         order.setExpectedDeliveryTime(shoppingCartPayment.getExpectedDeliveryTime());
      }
      if(3 != shoppingCartPayment.getPaymentType() && (fullReductionAmount.compareTo(BigDecimal.ZERO) > 0 ||moneyAmount.compareTo(BigDecimal.ZERO) > 0 || discountAmount.compareTo(BigDecimal.ZERO) > 0)){
         order.setCouponJson(JSON.toJSONString(couponInfoVo));
      }