Pu Zhibing
2024-12-10 d341be8242db41136119a842e29194af4902a9b7
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -105,6 +105,9 @@
   @Resource
   private UserChangeLogClient userChangeLogClient;
   
   @Resource
   private PointSettingClient pointSettingClient;
   
   
   
@@ -949,13 +952,18 @@
         }
         //构建积分流水记录
         if(earnPoint > 0){
            PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
            int earnPoint1 = earnPoint;
            if(null != pointSetting && 1 == pointSetting.getBuyPointOpen()){
               earnPoint1 = earnPoint1 * (100 - pointSetting.getBuyPoint());
            }
            appUser.setShopPoint(appUser.getShopPoint() + earnPoint);
            appUser.setLavePoint(appUser.getLavePoint() + earnPoint);
            appUser.setLavePoint(appUser.getLavePoint() + earnPoint1);
            appUser.setTotalPoint(appUser.getTotalPoint() + earnPoint);
            
            UserPoint userPoint = new UserPoint();
            userPoint.setType(1);
            userPoint.setHistoricalPoint(appUser.getLavePoint() - earnPoint);
            userPoint.setHistoricalPoint(appUser.getLavePoint() - earnPoint1);
            userPoint.setVariablePoint(earnPoint);
            userPoint.setBalance(appUser.getLavePoint());
            userPoint.setCreateTime(LocalDateTime.now());
@@ -988,9 +996,15 @@
      //积分支付
      if(3 == shoppingCartPayment.getPaymentType()){
         Integer lavePoint = appUser.getLavePoint();
         appUser.setLavePoint(lavePoint - orderPoint);
         PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
         int earnPoint1 = earnPoint;
         //计算可用积分比例
         if(null != pointSetting && 1 == pointSetting.getBuyPointOpen()){
            earnPoint1 = earnPoint1 * (100 - pointSetting.getBuyPoint());
         }
         appUser.setLavePoint(appUser.getLavePoint() - orderPoint);
         appUser.setShopPoint(appUser.getShopPoint() + earnPoint);
         appUser.setLavePoint(appUser.getLavePoint() + earnPoint);
         appUser.setLavePoint(appUser.getLavePoint() + earnPoint1);
         appUser.setTotalPoint(appUser.getTotalPoint() + earnPoint);
         appUser.setShopAmount(appUser.getShopAmount().add(paymentMoney).setScale(2, RoundingMode.HALF_EVEN));
         appUser.setLastShopTime(LocalDateTime.now());
@@ -1000,7 +1014,7 @@
         
         //构建积分流水记录
         UserPoint userPoint = new UserPoint();
         userPoint.setType(4);
         userPoint.setType(1);
         userPoint.setHistoricalPoint(lavePoint);
         userPoint.setVariablePoint(orderPoint);
         userPoint.setBalance(appUser.getLavePoint());
@@ -1008,17 +1022,6 @@
         userPoint.setAppUserId(appUser.getId());
         userPoint.setObjectId(order.getId());
         userPointClient.saveUserPoint(userPoint);
         if(earnPoint > 0){
            userPoint = new UserPoint();
            userPoint.setType(1);
            userPoint.setHistoricalPoint(appUser.getLavePoint() - earnPoint);
            userPoint.setVariablePoint(earnPoint);
            userPoint.setBalance(appUser.getLavePoint());
            userPoint.setCreateTime(LocalDateTime.now());
            userPoint.setAppUserId(appUser.getId());
            userPoint.setObjectId(order.getId());
            userPointClient.saveUserPoint(userPoint);
         }
         //如果有运费,需要先扣除账户积分,再进行支付。支付成功后修改订单状态,未支付成功则回退积分,删除的订单
         if(expressFee.compareTo(BigDecimal.ZERO) > 0){
            if(shoppingCartPayment.getFreightPaymentType() == 1){