From 19dc96e814330dd957515b5eb4a57396af41b3b3 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 13 一月 2025 15:10:19 +0800
Subject: [PATCH] 修改快递查询逻辑

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java |   55 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 51 insertions(+), 4 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 4010b15..81f8194 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
@@ -500,9 +500,11 @@
 				}
 			}
 
-			confirmOrderVo.setActivityName(activityInfo1.getActivityName());
-			paymentMoney = paymentMoney.subtract(zyh);
-			activityAmount = activityAmount.add(zyh);
+			if(null != activityInfo1){
+				confirmOrderVo.setActivityName(activityInfo1.getActivityName());
+				paymentMoney = paymentMoney.subtract(zyh);
+				activityAmount = activityAmount.add(zyh);
+			}
 		}
 		confirmOrderVo.setDiscountAmount(activityAmount);
 		int earnPoint = goodsList.stream().mapToInt(MyShoppingCartVo::getEarnSpendingPoints).sum();
@@ -709,6 +711,14 @@
 					}
 				}
 			}
+			
+			if(goods.getStatus() == 1){
+				throw new RuntimeException(goods.getName() + "商品已被下架");
+			}
+			if(!goods.getCommodityAuthority().contains("-1") && !goods.getCommodityAuthority().contains(appUser.getVipId().toString())){
+				throw new RuntimeException("无权限购买" + goods.getName());
+			}
+			
 			ids.add(id);
 		}
 
@@ -871,7 +881,6 @@
 				}
 			}
 
-			discount = orderActivityInfo1.getDiscount();
 			paymentMoney = paymentMoney.subtract(zyh);
 			activityAmount = activityAmount.add(zyh);
 		}
@@ -938,6 +947,7 @@
 		}
 		if(3 != shoppingCartPayment.getPaymentType() && (fullReductionAmount.compareTo(BigDecimal.ZERO) > 0 ||moneyAmount.compareTo(BigDecimal.ZERO) > 0 || discountAmount.compareTo(BigDecimal.ZERO) > 0)){
 			order.setCouponJson(JSON.toJSONString(couponInfoVo));
+			order.setUserCouponId(shoppingCartPayment.getUserCouponId());
 		}
 		if(null != orderActivityInfo1){
 			order.setActivityJson(JSON.toJSONString(orderActivityInfo1));
@@ -1136,6 +1146,19 @@
 			orderService.updateById(order);
 			//删除购物车数据
 			this.removeBatchByIds(ids);
+			//处理优惠券
+			if(null != order.getUserCouponId()){
+				UserCoupon userCoupon = userCouponClient.getUserCoupon(order.getUserCouponId()).getData();
+				if(null != userCoupon && null == userCoupon.getUseTime()){
+					userCoupon.setUseTime(LocalDateTime.now());
+					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()){
@@ -1257,6 +1280,14 @@
 				//删除购物车数据
 				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));
+			}
 		}
 
 		//添加账户余额支付明细
@@ -1339,6 +1370,22 @@
 			order.setOrderStatus(2);
 		}
 		orderService.updateById(order);
+
+		//处理优惠券
+		if(null != order.getUserCouponId()){
+			UserCoupon userCoupon = userCouponClient.getUserCoupon(order.getUserCouponId()).getData();
+			if(null != userCoupon && null == userCoupon.getUseTime()){
+				userCoupon.setStatus(2);
+				userCoupon.setUseTime(LocalDateTime.now());
+				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();
 		List<OrderGood> list = orderGoodService.list(new LambdaQueryWrapper<OrderGood>().eq(OrderGood::getOrderId, order.getId()));

--
Gitblit v1.7.1