From 8093bf217b5dbe59a5703b013f3fc79ed0d4fc36 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期六, 11 一月 2025 18:06:03 +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 |  124 +++++++++++++++++++++--------------------
 1 files changed, 63 insertions(+), 61 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 7e53d6e..80522d8 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
@@ -410,6 +410,9 @@
 		//总优惠金额
 		BigDecimal activityAmount = BigDecimal.ZERO;
 
+
+		BaseSetting baseSetting = baseSettingClient.getBaseSetting(4).getData();
+		confirmOrderVo.setUseSimultaneously(JSON.parseObject(baseSetting.getContent()).getInteger("status") == 1);
 		//减去优惠券优惠金额
 		CouponInfoVo couponInfoVo = null;
 		if(null != confirmOrder.getCouponId() && 2 != confirmOrder.getPaymentType()){
@@ -480,7 +483,8 @@
 		//查询当前是否有订单活动
 		List<OrderActivityInfo> orderActivityInfo = orderActivityInfoClient.getNowOrderActivityInfo(appUser.getVipId()).getData();
 		//满XX才打折,只有现金才能优惠
-		if(null != orderActivityInfo && confirmOrder.getPaymentType() == 1){
+		if((confirmOrderVo.getUseSimultaneously() || (!confirmOrderVo.getUseSimultaneously() && activityAmount.equals(BigDecimal.ZERO)))
+				&& null != orderActivityInfo && confirmOrder.getPaymentType() == 1){
 			for (OrderActivityInfo activityInfo : orderActivityInfo) {
 				if(activityInfo.getConditionAmount().compareTo(paymentMoney) <= 0){
 					confirmOrderVo.setActivityName(activityInfo.getActivityName());
@@ -496,8 +500,6 @@
 
 		}
 		confirmOrderVo.setDiscountAmount(activityAmount);
-		BaseSetting baseSetting = baseSettingClient.getBaseSetting(4).getData();
-		confirmOrderVo.setUseSimultaneously(JSON.parseObject(baseSetting.getContent()).getInteger("status") == 1);
 		int earnPoint = goodsList.stream().mapToInt(MyShoppingCartVo::getEarnSpendingPoints).sum();
 		confirmOrderVo.setEarnPoint(earnPoint);
 		//支付金额,订单金额-订单优惠
@@ -1007,6 +1009,10 @@
 			orderGood.setBoundShopPoints(myShoppingCartVo.getBoundShopPoints());
 			orderGood.setBoundShopSuperiorsCharges(myShoppingCartVo.getBoundShopSuperiorsCharges());
 			orderGood.setBoundShopSuperiorsPoints(myShoppingCartVo.getBoundShopSuperiorsPoints());
+			orderGood.setCashPayment(myShoppingCartVo.getCashPayment() ? 1 : 0);
+			orderGood.setPointPayment(myShoppingCartVo.getPointPayment() ? 1 : 0);
+			orderGood.setSellingPrice(myShoppingCartVo.getCash());
+			orderGood.setIntegral(myShoppingCartVo.getPoint());
 			orderGoodService.save(orderGood);
 		}
 
@@ -1076,8 +1082,13 @@
 				appUser.setTotalPoint(appUser.getTotalPoint() + earnPoint);
 				appUser.setAvailablePoint(appUser.getAvailablePoint() + earnPoint1);
 				appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() + earnPoint1);
+
+				JSONObject jsonObject = new JSONObject();
+				jsonObject.put("shopPoint", earnPoint);
+				jsonObject.put("availablePoint", earnPoint1);
 				if(null != pointSetting && 1 == pointSetting.getBuyPointGift()){
 					appUser.setTransferablePoint(appUser.getTransferablePoint() + earnPoint1);
+					jsonObject.put("transferablePoint", earnPoint1);
 				}
 
 				if(earnPoint > 0){
@@ -1089,6 +1100,7 @@
 					userPoint.setCreateTime(LocalDateTime.now());
 					userPoint.setAppUserId(appUser.getId());
 					userPoint.setObjectId(order.getId());
+					userPoint.setExtention(jsonObject.toJSONString());
 					userPointClient.saveUserPoint(userPoint);
 				}
 			}
@@ -1164,38 +1176,13 @@
 			userPoint.setExtention((tra >= 0 ? orderPoint : transferablePoint) + "");
 			userPointClient.saveUserPoint(userPoint);
 
-			lavePoint = appUser.getLavePoint();
-			PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
-			int earnPoint1 = 0;
-			//计算可用积分比例
-			if(null != pointSetting && 1 == pointSetting.getBuyPointOpen()){
-				earnPoint1 = new BigDecimal(earnPoint).multiply(pointSetting.getBuyPoint().divide(new BigDecimal(100))).intValue();
-			}
-			appUser.setShopPoint(appUser.getShopPoint() + earnPoint);
-			appUser.setLavePoint(appUser.getLavePoint() + earnPoint);
-			appUser.setAvailablePoint(appUser.getAvailablePoint() + earnPoint1);
-			appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() + earnPoint1);
-			if(null != pointSetting && 1 == pointSetting.getBuyPointGift()){
-				appUser.setTransferablePoint(appUser.getTransferablePoint() + earnPoint1);
-			}
-			appUser.setTotalPoint(appUser.getTotalPoint() + earnPoint);
 			appUser.setLastShopTime(LocalDateTime.now());
 			appUserClient.editAppUserById(appUser);
 			//变更等级
 			appUserClient.vipUpgrade(appUser.getId());
 
-			//构建积分流水记录
-			if(earnPoint > 0){
-				userPoint = new UserPoint();
-				userPoint.setType(1);
-				userPoint.setHistoricalPoint(lavePoint);
-				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() == 2){
@@ -1262,6 +1249,7 @@
 				this.removeBatchByIds(ids);
 			}
 		}
+
 		//添加账户余额支付明细
 		if(redPacketAmount.compareTo(BigDecimal.ZERO) > 0 || distributionAmount.compareTo(BigDecimal.ZERO) > 0){
 			OrderBalancePayment orderBalancePayment = new OrderBalancePayment();
@@ -1296,31 +1284,39 @@
 		}
 		Integer earnPoint = order.getGetPoint();
 		AppUser appUser = appUserClient.getAppUserById(order.getAppUserId());
+		Integer lavePoint = appUser.getLavePoint();
 		BigDecimal paymentMoney = order.getPaymentAmount();
 		//构建积分流水记录
 		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);
 			appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() + earnPoint1);
-			
-			if(earnPoint > 0){
-				UserPoint 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);
+
+			JSONObject jsonObject = new JSONObject();
+			jsonObject.put("shopPoint", earnPoint);
+			jsonObject.put("availablePoint", earnPoint1);
+			if(null != pointSetting && 1 == pointSetting.getBuyPointGift()){
+				appUser.setTransferablePoint(appUser.getTransferablePoint() + earnPoint1);
+				jsonObject.put("transferablePoint", earnPoint1);
 			}
+
+			UserPoint userPoint = new UserPoint();
+			userPoint.setType(1);
+			userPoint.setHistoricalPoint(lavePoint);
+			userPoint.setVariablePoint(earnPoint);
+			userPoint.setBalance(appUser.getLavePoint());
+			userPoint.setCreateTime(LocalDateTime.now());
+			userPoint.setAppUserId(appUser.getId());
+			userPoint.setObjectId(order.getId());
+			userPoint.setExtention(jsonObject.toJSONString());
+			userPointClient.saveUserPoint(userPoint);
 		}
 		appUser.setShopAmount(appUser.getShopAmount().add(paymentMoney).setScale(2, RoundingMode.HALF_EVEN));
 		appUser.setLastShopTime(LocalDateTime.now());
@@ -1356,36 +1352,42 @@
 		if(null == order || order.getPayStatus() == 2){
 			return R.ok();
 		}
-		Integer earnPoint = order.getGetPoint();
+		Integer orderPoint = order.getPoint();
 		AppUser appUser = appUserClient.getAppUserById(order.getAppUserId());
+
 		Integer lavePoint = appUser.getLavePoint();
-		PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
-		int earnPoint1 = 0;
-		//计算可用积分比例
-		if(null != pointSetting && 1 == pointSetting.getBuyPointOpen()){
-			earnPoint1 = new BigDecimal(earnPoint).multiply(pointSetting.getBuyPoint().divide(new BigDecimal(100))).intValue();
+		//扣减订单支付积分
+		appUser.setLavePoint(appUser.getLavePoint() - orderPoint);
+		appUser.setAvailablePoint(appUser.getAvailablePoint() - orderPoint);
+		//可转增积分
+		Integer transferablePoint = appUser.getTransferablePoint();
+		Integer tra = 0;
+		if(transferablePoint > 0){
+			tra = transferablePoint - orderPoint;
+			appUser.setTransferablePoint(tra >= 0 ? tra : 0);
+		}else{
+			appUser.setTransferablePoint(appUser.getTransferablePoint() - orderPoint);
 		}
-		appUser.setShopPoint(appUser.getShopPoint() + earnPoint);
-		appUser.setLavePoint(appUser.getLavePoint() + earnPoint);
-		appUser.setAvailablePoint(appUser.getAvailablePoint() + earnPoint1);
-		appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() + earnPoint1);
-		appUser.setTotalPoint(appUser.getTotalPoint() + earnPoint);
-		appUser.setLastShopTime(LocalDateTime.now());
-		appUserClient.editAppUserById(appUser);
-		//变更等级
-		appUserClient.vipUpgrade(appUser.getId());
-		
+
 		//构建积分流水记录
 		UserPoint userPoint = new UserPoint();
-		userPoint.setType(1);
+		userPoint.setType(11);
 		userPoint.setHistoricalPoint(lavePoint);
-		userPoint.setVariablePoint(earnPoint);
+		userPoint.setVariablePoint(orderPoint);
 		userPoint.setBalance(appUser.getLavePoint());
 		userPoint.setCreateTime(LocalDateTime.now());
 		userPoint.setAppUserId(appUser.getId());
 		userPoint.setObjectId(order.getId());
+		userPoint.setExtention((tra >= 0 ? orderPoint : transferablePoint) + "");
 		userPointClient.saveUserPoint(userPoint);
 
+		//积分支付不反积分
+
+		appUser.setLastShopTime(LocalDateTime.now());
+		appUserClient.editAppUserById(appUser);
+		//变更等级
+		appUserClient.vipUpgrade(appUser.getId());
+
 		//修改订支付状态
 		order.setPayStatus(2);
 		//自提

--
Gitblit v1.7.1