From e0623f1a914ecbc99d5926c0df3cf26032c02499 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 01 一月 2025 17:11:50 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/qijisheng

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java |   24 +++++++++++++++---------
 1 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
index 0ad64c1..55f9cef 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -401,7 +401,7 @@
 			List<PaymentUserCouponVo> data = userCouponClient.getPaymentUserCoupon(paymentUserCoupon).getData();
 			if(null != data){
 				for (PaymentUserCouponVo couponInfo : data) {
-					List<Integer> forGoodIds = couponInfo.getForGoodIds();
+					List<String> forGoodIds = couponInfo.getForGoodIds();
 					//全部商品适用
 					if(null == forGoodIds){
 						//满减券
@@ -630,7 +630,6 @@
 				orderMoney = orderMoney.add(myShoppingCartVo.getCash().multiply(new BigDecimal(myShoppingCartVo.getNumber())));
 			}
 		}else{
-			orderPoint = goodsList.stream().mapToInt(MyShoppingCartVo::getPoint).sum();
 			for (MyShoppingCartVo myShoppingCartVo : goodsList) {
 				orderPoint += (myShoppingCartVo.getPoint() * myShoppingCartVo.getNumber());
 			}
@@ -654,9 +653,10 @@
 		if(null != shoppingCartPayment.getUserCouponId() && 3 != shoppingCartPayment.getPaymentType()){
 			couponInfoVo = userCouponClient.getCouponInfo(shoppingCartPayment.getUserCouponId()).getData();
 			String forGoodIds = couponInfoVo.getForGoodIds();
-			List<Integer> parseArray = JSON.parseArray(forGoodIds, Integer.class);
+			String[] split = forGoodIds.split(",");
+			List<String> parseArray = Arrays.asList(split);
 			//全部商品
-			if(parseArray.contains(-1)){
+			if("-1".equals(forGoodIds)){
 				//满减
 				if(1 == couponInfoVo.getCouponType() && couponInfoVo.getConditionAmount().compareTo(paymentMoney) <= 0){
 					paymentMoney = paymentMoney.subtract(couponInfoVo.getDiscountAmount());
@@ -683,7 +683,7 @@
 				paymentMoney = BigDecimal.ZERO;
 				BigDecimal goodsMoney = BigDecimal.ZERO;
 				for (MyShoppingCartVo myShoppingCartVo : goodsList) {
-					Integer goodsId = myShoppingCartVo.getGoodsId();
+					String goodsId = myShoppingCartVo.getGoodsId().toString();
 					BigDecimal cash = myShoppingCartVo.getCash();
 					if(parseArray.contains(goodsId)){
 						goodsMoney = goodsMoney.add(cash);
@@ -928,14 +928,17 @@
 			//构建积分流水记录
 			if(earnPoint > 0){
 				PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
-				int earnPoint1 = earnPoint;
+				int earnPoint1 = 0;
 				if(null != pointSetting && 1 == pointSetting.getBuyPointOpen()){
-					earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getBuyPoint().divide(new BigDecimal(100))).intValue();
+					earnPoint1 = new BigDecimal(earnPoint).multiply(pointSetting.getBuyPoint().divide(new BigDecimal(100))).intValue();
 				}
 				appUser.setShopPoint(appUser.getShopPoint() + earnPoint);
 				appUser.setLavePoint(appUser.getLavePoint() + earnPoint);
 				appUser.setTotalPoint(appUser.getTotalPoint() + earnPoint);
 				appUser.setAvailablePoint(appUser.getAvailablePoint() + earnPoint1);
+				if(null != pointSetting && 1 == pointSetting.getBuyPointGift()){
+					appUser.setTransferablePoint(appUser.getTransferablePoint() + earnPoint1);
+				}
 
 				UserPoint userPoint = new UserPoint();
 				userPoint.setType(1);
@@ -993,10 +996,10 @@
 			
 			Integer lavePoint = appUser.getLavePoint();
 			PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
-			int earnPoint1 = earnPoint;
+			int earnPoint1 = 0;
 			//计算可用积分比例
 			if(null != pointSetting && 1 == pointSetting.getBuyPointOpen()){
-				earnPoint1 = new BigDecimal(earnPoint1).multiply(pointSetting.getBuyPoint().divide(new BigDecimal(100))).intValue();
+				earnPoint1 = new BigDecimal(earnPoint).multiply(pointSetting.getBuyPoint().divide(new BigDecimal(100))).intValue();
 			}
 			//扣减订单支付积分
 			appUser.setLavePoint(appUser.getLavePoint() - orderPoint);
@@ -1005,6 +1008,9 @@
 			appUser.setShopPoint(appUser.getShopPoint() + earnPoint);
 			appUser.setLavePoint(appUser.getLavePoint() + earnPoint);
 			appUser.setAvailablePoint(appUser.getAvailablePoint() + earnPoint1);
+			if(null != pointSetting && 1 == pointSetting.getBuyPointGift()){
+				appUser.setTransferablePoint(appUser.getTransferablePoint() + earnPoint1);
+			}
 			appUser.setTotalPoint(appUser.getTotalPoint() + earnPoint);
 			appUser.setLastShopTime(LocalDateTime.now());
 			appUserClient.editAppUserById(appUser);

--
Gitblit v1.7.1