Pu Zhibing
2024-12-10 cd82e959bc407cc2a62a11b3ef9156cfd21d7e16
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -327,10 +327,11 @@
   
   @Override
   public void addGoods(ShoppingCart shoppingCart) {
   public Long addGoods(ShoppingCart shoppingCart) {
      Long userid = tokenService.getLoginUserApplet().getUserid();
      shoppingCart.setAppUserId(userid);
      this.save(shoppingCart);
      return shoppingCart.getId();
   }
   
   
@@ -530,7 +531,7 @@
         goodsShop.setGoodsId(shoppingCart.getGoodsId());
         goodsShop.setShopId(shopId);
         GoodsShop goodsShop1 = goodsShopClient.getGoodsShop(goodsShop).getData();
         vo.setVerifiable(null == goodsShop1 ? false : true);
         vo.setVerifiable(goods.getAppointStore() == 1 && null == goodsShop1 ? false : true);
         //判断当前数量是否已经超出限购数量(需要计算已经购买的数量)
         if(null == goods.getPurchaseLimit() || -1 == goods.getPurchaseLimit()){
            vo.setPurchaseLimit(false);
@@ -570,7 +571,22 @@
    */
   @Override
   public R shoppingCartPayment(ShoppingCartPayment shoppingCartPayment) {
      Integer position = shoppingCartPayment.getPosition();
      Long userid = tokenService.getLoginUserApplet().getUserid();
      //直接购买商品
      if(2 == position){
         //先加入购物车
         String goodsJson = shoppingCartPayment.getGoodsJson();
         JSONArray objects = JSON.parseArray(goodsJson);
         Long id = objects.getJSONObject(0).getLong("id");
         Integer num1 = objects.getJSONObject(0).getInteger("num");
         ShoppingCart shoppingCart = new ShoppingCart();
         shoppingCart.setAppUserId(userid);
         shoppingCart.setGoodsId(id.intValue());
         shoppingCart.setNumber(num1);
         Long shoppingCarId = addGoods(shoppingCart);
         shoppingCartPayment.setGoodsJson("[{\"id\": " + shoppingCarId + ", \"num\": " + num1 + "}]");
      }
      AppUser appUser = appUserClient.getAppUserById(userid);
      Integer shopId = shoppingCartPayment.getShopId();
      String goodsJson = shoppingCartPayment.getGoodsJson();
@@ -629,12 +645,15 @@
      if(data.size() != goodsList.size()){
         String goodsName = "";
         for (Integer goodsId : goodsIds) {
            if(!collect.contains(goodsId)){
               goodsName = goodsClient.getGoodsById(goodsId).getData().getName();
            Goods goods = goodsClient.getGoodsById(goodsId).getData();
            if(1 == goods.getAppointStore() && !collect.contains(goodsId)){
               goodsName = goods.getName();
               break;
            }
         }
         return R.fail(goodsName + "不能在该门店核销");
         if(StringUtils.isNotEmpty(goodsName)){
            return R.fail(goodsName + "不能在该门店核销");
         }
      }
      //开始构建支付信息
      //现金支付的订单金额
@@ -854,10 +873,11 @@
         }
         for (int i = 0; i < objects.size(); i++) {
            Long id = objects.getJSONObject(i).getLong("id");
            if(myShoppingCartVo.getId().equals(id)){
            if(myShoppingCartVo.getId().equals(id.toString())){
               ShoppingCart shoppingCart = this.getById(id);
               Integer num1 = objects.getJSONObject(i).getInteger("num");
               orderGood.setNum(num1);
               Goods goods1 = goodsClient.getGoodsById(myShoppingCartVo.getGoodsId()).getData();
               Goods goods1 = goodsClient.getGoodsById(shoppingCart.getGoodsId()).getData();
               orderGood.setGoodJson(JSON.toJSONString(goods1));
               break;
            }