From e23242d09e31e1c78f7ecdbc2859c9f99a3c4171 Mon Sep 17 00:00:00 2001
From: luofl <1442745593@qq.com>
Date: 星期一, 17 三月 2025 10:00:59 +0800
Subject: [PATCH] 迭代版本:2.28

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java |   90 +++++++++++++++++++++++++--------------------
 1 files changed, 50 insertions(+), 40 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 78427d1..ee69283 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
@@ -14,6 +14,7 @@
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.security.service.TokenService;
+import com.ruoyi.order.event.PayEvent;
 import com.ruoyi.order.mapper.ShoppingCartMapper;
 import com.ruoyi.order.model.Order;
 import com.ruoyi.order.model.OrderBalancePayment;
@@ -31,6 +32,7 @@
 import com.ruoyi.other.api.vo.GetGoodsShopByGoodsIds;
 import com.ruoyi.other.api.vo.GetSeckillActivityInfo;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
@@ -41,6 +43,9 @@
 import java.time.LocalDateTime;
 import java.time.ZoneOffset;
 import java.util.*;
+import java.util.concurrent.ArrayBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 @Slf4j
@@ -105,12 +110,6 @@
 	private CommissionService commissionService;
 
 	@Resource
-	private VipSettingClient vipSettingClient;
-
-	@Resource
-	private UserChangeLogClient userChangeLogClient;
-
-	@Resource
 	private PointSettingClient pointSettingClient;
 	
 	@Resource
@@ -118,6 +117,9 @@
 	
 	@Resource
 	private RedisTemplate redisTemplate;
+
+	@Resource
+	private ApplicationEventPublisher applicationEventPublisher;
 	
 	
 	
@@ -1164,7 +1166,7 @@
 				appUser.setLastShopTime(LocalDateTime.now());
 				appUserClient.editAppUserById(appUser);
 				//变更等级
-				appUserClient.vipUpgrade(appUser.getId());
+				applicationEventPublisher.publishEvent(new PayEvent(JSON.toJSONString(appUser)));
 				//修改订支付状态
 				order.setPayStatus(2);
 				//自提
@@ -1201,33 +1203,36 @@
 			BigDecimal balance = appUser.getBalance();
 			//红包金额满足支付
 			BigDecimal paymentMoney1 = paymentMoney;
-			if(paymentMoney1.compareTo(totalRedPacketAmount) <= 0){
-				totalRedPacketAmount = totalRedPacketAmount.subtract(paymentMoney1);
-				balance = balance.subtract(paymentMoney1);
-				appUser.setTotalRedPacketAmount(totalRedPacketAmount);
-				appUser.setBalance(balance);
-				redPacketAmount = paymentMoney1;
-			}else{
-				paymentMoney1 = paymentMoney1.subtract(totalRedPacketAmount);
-				redPacketAmount = totalRedPacketAmount;
-				totalRedPacketAmount = BigDecimal.ZERO;
-				if(paymentMoney1.compareTo(totalDistributionAmount) <= 0){
-					totalDistributionAmount = totalDistributionAmount.subtract(paymentMoney1);
-					balance = balance.subtract(paymentMoney1);
-					appUser.setTotalRedPacketAmount(totalRedPacketAmount);
-//					appUser.setTotalDistributionAmount(totalDistributionAmount);
-					appUser.setBalance(balance);
-					distributionAmount = paymentMoney1;
-				}else{
-					paymentMoney1 = paymentMoney1.subtract(totalDistributionAmount);
-					totalDistributionAmount = BigDecimal.ZERO;
-					balance = balance.subtract(paymentMoney1);
-					appUser.setTotalRedPacketAmount(totalRedPacketAmount);
-//					appUser.setTotalDistributionAmount(totalDistributionAmount);
-					appUser.setBalance(balance);
-					distributionAmount = totalDistributionAmount;
-				}
-			}
+			balance = balance.subtract(paymentMoney1);
+			appUser.setBalance(balance);
+
+//			if(paymentMoney1.compareTo(totalRedPacketAmount) <= 0){
+//				totalRedPacketAmount = totalRedPacketAmount.subtract(paymentMoney1);
+//				balance = balance.subtract(paymentMoney1);
+//				appUser.setTotalRedPacketAmount(totalRedPacketAmount);
+//				appUser.setBalance(balance);
+//				redPacketAmount = paymentMoney1;
+//			}else{
+//				paymentMoney1 = paymentMoney1.subtract(totalRedPacketAmount);
+//				redPacketAmount = totalRedPacketAmount;
+//				totalRedPacketAmount = BigDecimal.ZERO;
+//				if(paymentMoney1.compareTo(totalDistributionAmount) <= 0){
+////					totalDistributionAmount = totalDistributionAmount.subtract(paymentMoney1);
+//					balance = balance.subtract(paymentMoney1);
+//					appUser.setTotalRedPacketAmount(totalRedPacketAmount);
+////					appUser.setTotalDistributionAmount(totalDistributionAmount);
+//					appUser.setBalance(balance);
+//					distributionAmount = paymentMoney1;
+//				}else{
+//					paymentMoney1 = paymentMoney1.subtract(totalDistributionAmount);
+//					totalDistributionAmount = BigDecimal.ZERO;
+//					balance = balance.subtract(paymentMoney1);
+//					appUser.setTotalRedPacketAmount(totalRedPacketAmount);
+////					appUser.setTotalDistributionAmount(totalDistributionAmount);
+//					appUser.setBalance(balance);
+//					distributionAmount = totalDistributionAmount;
+//				}
+//			}
 			//构建积分流水记录
 			if(earnPoint > 0){
 				PointSetting pointSetting = pointSettingClient.getPointSetting(appUser.getVipId()).getData();
@@ -1266,7 +1271,7 @@
 			appUser.setLastShopTime(LocalDateTime.now());
 			appUserClient.editAppUserById(appUser);
 			//变更等级
-			appUserClient.vipUpgrade(appUser.getId());
+			applicationEventPublisher.publishEvent(new PayEvent(JSON.toJSONString(appUser)));
 			//构建余额明细变动记录
 			BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord();
 			balanceChangeRecord.setAppUserId(appUser.getId());
@@ -1349,7 +1354,7 @@
 			appUser.setLastShopTime(LocalDateTime.now());
 			appUserClient.editAppUserById(appUser);
 			//变更等级
-			appUserClient.vipUpgrade(appUser.getId());
+			applicationEventPublisher.publishEvent(new PayEvent(JSON.toJSONString(appUser)));
 
 			//积分支付不返佣
 
@@ -1431,8 +1436,8 @@
 			orderBalancePayment.setDistributionAmount(distributionAmount);
 			orderBalancePaymentService.save(orderBalancePayment);
 		}
-
-		commissionService.calculationCommissionCopy(order);
+		
+		commissionService.calculationCommissionUser(order.getId());
 		return R.ok(order.getId().toString());
 	}
 
@@ -1507,13 +1512,16 @@
 		appUser.setLastShopTime(LocalDateTime.now());
 		appUserClient.editAppUserById(appUser);
 		//变更等级
-		appUserClient.vipUpgrade(appUser.getId());
+		applicationEventPublisher.publishEvent(new PayEvent(JSON.toJSONString(appUser)));
 		//修改订支付状态
 		order.setPayStatus(2);
 		//自提
 		if(order.getOrderType() == 1 && StringUtils.isEmpty(order.getAddressJson())){
 			order.setOrderStatus(2);
 		}
+
+		String r7TrxNo = uniPayCallbackResult.getR9_BankTrxNo();
+		order.setSerialNumber(r7TrxNo);
 		orderService.updateById(order);
 
 		//处理优惠券
@@ -1536,6 +1544,8 @@
 		for (Integer goodsId : goodsIds) {
 			goodsClient.editGoodsNum(goodsId, 1);
 		}
+		
+		commissionService.calculationCommissionUser(order.getId());
 		return R.ok();
 	}
 	
@@ -1589,7 +1599,7 @@
 		appUser.setLastShopTime(LocalDateTime.now());
 		appUserClient.editAppUserById(appUser);
 		//变更等级
-		appUserClient.vipUpgrade(appUser.getId());
+		applicationEventPublisher.publishEvent(new PayEvent(JSON.toJSONString(appUser)));
 
 		//修改订支付状态
 		order.setPayStatus(2);

--
Gitblit v1.7.1