liyuan 2 дней назад
Родитель
Сommit
8fb777c1cc

+ 11 - 1
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/coupon/service/impl/TireCouponServiceImpl.java

@@ -64,6 +64,10 @@ public class TireCouponServiceImpl extends ServiceImpl<TireCouponMapper, TireCou
 		if (Objects.isNull(nowShopUser)) {
 			return R.fail("您不是门店用户无法领取优惠券");
 		}
+		int count = tireUserCouponMapper.selectCount(new LambdaQueryWrapper<TireUserCoupon>().eq(TireUserCoupon::getCorpsId, nowShopUser.getPid()).eq(TireUserCoupon::getTenantId, nowReceiveUser.getTenantId()));
+		if (count > 0) {
+			return R.fail("您已领取优惠券");
+		}
 		Date nowDate = new Date();
 		List<TireUserCoupon> insertList = new ArrayList<>();
 		for (TireCoupon coupon : tireCouponList) {
@@ -96,7 +100,13 @@ public class TireCouponServiceImpl extends ServiceImpl<TireCouponMapper, TireCou
 
 	@Override
 	public R checkUserCoupon() {
-		List<TireUserCoupon> userCouponList = tireUserCouponMapper.selectList(new LambdaQueryWrapper<TireUserCoupon>().eq(TireUserCoupon::getUserId, AuthUtil.getUserId()));
+		BladeUser nowReceiveUser = AuthUtil.getUser();
+		PjCorpsAttn nowShopUser = corpsAttnMapper.selectOne(new LambdaQueryWrapper<PjCorpsAttn>().eq(PjCorpsAttn::getIsDeleted, 0)
+			.eq(PjCorpsAttn::getTenantId, nowReceiveUser.getTenantId()).eq(PjCorpsAttn::getUserId, nowReceiveUser.getUserId()).last("limit 1"));
+		if (Objects.isNull(nowShopUser)) {
+			return R.fail("门店信息异常");
+		}
+		List<TireUserCoupon> userCouponList = tireUserCouponMapper.selectList(new LambdaQueryWrapper<TireUserCoupon>().eq(TireUserCoupon::getCorpsId, nowShopUser.getPid()));
 		return R.data(CollectionUtil.isEmpty(userCouponList));
 	}
 

+ 2 - 2
blade-service/blade-sales-part/src/main/java/org/springblade/salesPart/order/service/impl/OrderServiceImpl.java

@@ -2474,7 +2474,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 						throw new NullPointerException("该订单使用的红包,但无法找到红包数据,故不能生成退货单");
 					}
 					BigDecimal userCouponAmount = useCouponList.stream().map(TireUserCouponDto::getCouponValue).reduce(BigDecimal.ZERO, BigDecimal::add);
-					pjOrderItems.setRedPacketAmount(BigDecimal.ZERO.compareTo(userCouponAmount) < 0 ? userCouponAmount.divide(new BigDecimal(useCouponList.size()), RoundingMode.HALF_UP) : userCouponAmount);
+					pjOrderItems.setRedPacketAmount(Objects.nonNull(order.getRedPacketAmount()) && BigDecimal.ZERO.compareTo(userCouponAmount) < 0 ? userCouponAmount.divide(new BigDecimal(useCouponList.size()), RoundingMode.HALF_UP) : userCouponAmount);
 					pjOrderItems.setReturnsAmount(pjOrderItems.getReturnsAmount().subtract(userCouponAmount));
 				}
 				pjOrderItemsList.add(pjOrderItems);
@@ -5519,7 +5519,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
 					order.setRebateCost(order.getOrderItemsList().stream().map(PjOrderItems::getRebateCostprie).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
 
 				}
-				if (BigDecimal.ZERO.compareTo(order.getRedPacketAmount()) <= 0) {
+				if (Objects.nonNull(order.getRedPacketAmount()) && BigDecimal.ZERO.compareTo(order.getRedPacketAmount()) <= 0) {
 					order.setTotalMoney(order.getTotalMoney().subtract(order.getRedPacketAmount()));
 				}
 			} else {