无关风月
2025-01-14 6ccd0f9e28c083e5f62d7d5074a85584a77af6bb
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -418,12 +418,14 @@
         BigDecimal bigDecimal = BigDecimal.ZERO;
         for (MyShoppingCartVo myShoppingCartVo : goodsList) {
            bigDecimal = bigDecimal.add(myShoppingCartVo.getCash().multiply(new BigDecimal(myShoppingCartVo.getNumber())));
            myShoppingCartVo.setEarnSpendingPoints(myShoppingCartVo.getEarnSpendingPoints() * myShoppingCartVo.getNumber());
         }
         confirmOrderVo.setOrderMoney(bigDecimal);
      }else{
         int sum = 0;
         for (MyShoppingCartVo myShoppingCartVo : goodsList) {
            sum += (myShoppingCartVo.getPoint() * myShoppingCartVo.getNumber());
            myShoppingCartVo.setEarnSpendingPoints(myShoppingCartVo.getEarnSpendingPoints() * myShoppingCartVo.getNumber());
         }
         confirmOrderVo.setOrderPoint(sum);
      }
@@ -532,7 +534,7 @@
      confirmOrderVo.setDiscountAmount(activityAmount);
      int earnPoint = goodsList.stream().mapToInt(MyShoppingCartVo::getEarnSpendingPoints).sum();
      confirmOrderVo.setEarnPoint(earnPoint);
      if(BigDecimal.ZERO.compareTo(paymentMoney) > 0){
      if(null != paymentMoney && BigDecimal.ZERO.compareTo(paymentMoney) > 0){
         paymentMoney = BigDecimal.ZERO;
      }
@@ -543,6 +545,7 @@
      UserAddress userAddress = userAddressClient.getDefaultUserAddress(userid).getData();
      if(null != userAddress){
         userAddress.setIdStr(userAddress.getId().toString());
         userAddress.setRecieveAddress(userAddress.getProvince() + userAddress.getCity() + userAddress.getDistrict() + userAddress.getRecieveAddress());
         confirmOrderVo.setUserAddress(userAddress);
      }
      confirmOrderVo.setPaymentType(confirmOrder.getPaymentType());
@@ -568,11 +571,11 @@
                  }
               }else{
                  //部分商品适用
                  BigDecimal goodsMoney = BigDecimal.ZERO;
                   BigDecimal goodsMoney = BigDecimal.ZERO;
                  for (MyShoppingCartVo myShoppingCartVo : goodsList) {
                     Integer goodsId = myShoppingCartVo.getGoodsId();
                     BigDecimal cash = myShoppingCartVo.getCash();
                     if(forGoodIds.contains(goodsId)){
                     if(forGoodIds.contains(String.valueOf(goodsId))){
                        goodsMoney = goodsMoney.add(cash);
                     }
                  }
@@ -961,7 +964,7 @@
      order.setGoodName(goodName.substring(0, goodName.length() - 1));
      Goods goods = goodsClient.getGoodsById(goodsList.get(0).getGoodsId()).getData();
      order.setOrderType(goods.getType());
      order.setOrderStatus(goods.getType() == 1 ? 3 : 1);
      order.setOrderStatus(goods.getType() == 1 ? 3 : (shoppingCartPayment.getDistributionMode() == 2 ? 1 : 2));
      SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
      order.setOrderNumber("QJS" + getNumber(3) + sdf.format(new Date()));
      order.setTotalAmount(orderMoney.setScale(2, RoundingMode.HALF_EVEN));
@@ -983,7 +986,7 @@
      if(null != orderActivityInfo1){
         order.setActivityJson(JSON.toJSONString(orderActivityInfo1));
      }
      if(null != shoppingCartPayment.getUserAddressId()){
      if(2 == shoppingCartPayment.getDistributionMode()){
         UserAddress address = userAddressClient.getUserAddressById(shoppingCartPayment.getUserAddressId()).getData();
         order.setExpressAmount(expressFee);
         order.setAddressJson(JSON.toJSONString(address));
@@ -994,6 +997,7 @@
      order.setDelFlag(0);
      order.setCreateTime(LocalDateTime.now());
      order.setExpressPayMethod(shoppingCartPayment.getFreightPaymentType());
      order.setDistributionMode(shoppingCartPayment.getDistributionMode());
      if(2 == shoppingCartPayment.getPaymentType()){
         BigDecimal balance = appUser.getBalance();
@@ -1146,11 +1150,7 @@
                  userCouponClient.editUserCoupon(userCoupon);
               }
            }
            //添加查询快递信息队列
            if(StringUtils.isNotEmpty(order.getExpressJson())){
               //一小时后定时查询快递信息
               redisTemplate.opsForZSet().add("order_express", order.getId(), LocalDateTime.now().plusHours(1).toEpochSecond(ZoneOffset.UTC));
            }
            //删除购物车数据
            userid = tokenService.getLoginUserApplet().getUserid();
@@ -1238,6 +1238,7 @@
         //构建余额明细变动记录
         BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
         balanceChangeRecord.setAppUserId(appUser.getId());
         balanceChangeRecord.setVipId(appUser.getVipId());
         balanceChangeRecord.setOrderId(order.getId());
         balanceChangeRecord.setChangeType(5);
         balanceChangeRecord.setBeforeAmount(balance.add(paymentMoney));
@@ -1262,11 +1263,7 @@
               userCouponClient.editUserCoupon(userCoupon);
            }
         }
         //添加查询快递信息队列
         if(StringUtils.isNotEmpty(order.getExpressJson())){
            //一小时后定时查询快递信息
            redisTemplate.opsForZSet().add("order_express", order.getId(), LocalDateTime.now().plusHours(1).toEpochSecond(ZoneOffset.UTC));
         }
      }
      //积分支付
      if(3 == shoppingCartPayment.getPaymentType()){
@@ -1361,6 +1358,7 @@
               //构建余额明细变动记录
               BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
               balanceChangeRecord.setAppUserId(appUser.getId());
               balanceChangeRecord.setVipId(appUser.getVipId());
               balanceChangeRecord.setOrderId(order.getId());
               balanceChangeRecord.setChangeType(5);
               balanceChangeRecord.setBeforeAmount(balance.add(expressFee));
@@ -1388,14 +1386,7 @@
            //删除购物车数据
            this.removeBatchByIds(ids);
         }
         //添加查询快递信息队列
         if(StringUtils.isNotEmpty(order.getExpressJson())){
            //一小时后定时查询快递信息
            SystemConfig systemConfig = systemConfigClient.getSystemConfig(3).getData();
            JSONObject jsonObject = JSON.parseObject(systemConfig.getContent());
            Integer waitTime = jsonObject.getInteger("waitTime");
            redisTemplate.opsForZSet().add("order_express", order.getId(), LocalDateTime.now().plusHours(waitTime).toEpochSecond(ZoneOffset.UTC));
         }
      }
      //添加账户余额支付明细
@@ -1488,14 +1479,9 @@
            userCouponClient.editUserCoupon(userCoupon);
         }
      }
      //添加查询快递信息队列
      if(StringUtils.isNotEmpty(order.getExpressJson())){
         //一小时后定时查询快递信息
         redisTemplate.opsForZSet().add("order_express", order.getId(), LocalDateTime.now().plusHours(1).toEpochSecond(ZoneOffset.UTC));
      }
      //删除购物车数据
      Long userid = tokenService.getLoginUserApplet().getUserid();
      Long userid = order.getAppUserId();
      List<OrderGood> list = orderGoodService.list(new LambdaQueryWrapper<OrderGood>().eq(OrderGood::getOrderId, order.getId()));
      List<Integer> goodsIds = list.stream().map(OrderGood::getGoodsId).collect(Collectors.toList());
      this.remove(new LambdaQueryWrapper<ShoppingCart>().eq(ShoppingCart::getAppUserId, userid).in(ShoppingCart::getGoodsId, goodsIds));