Browse Source

bugfix:1197 扫码核销 增加单日次数判断

qxy 1 month ago
parent
commit
0c8e3ec7e0

+ 15 - 0
alien-store/src/main/java/shop/alien/store/service/impl/LifeCouponServiceImpl.java

@@ -648,6 +648,21 @@ public class LifeCouponServiceImpl extends ServiceImpl<LifeCouponMapper, LifeCou
                 return R.fail("该劵不在有效期内");
             }
         }
+
+        // 获取当天开始时间(00:00:00)
+        LocalDateTime todayStart = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
+        // 获取当天结束时间(23:59:59.999)
+        LocalDateTime todayEnd = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
+        if(!lifeCoupon.getSingleCanUse().equals("0")){
+            Integer orderNum = orderCouponMiddleMapper.selectCount(new LambdaQueryWrapper<OrderCouponMiddle>()
+                    .eq(OrderCouponMiddle :: getOrderId, orderCouponMiddle.getOrderId())
+                    .between(OrderCouponMiddle :: getUsedTime,todayStart,todayEnd)
+                    .eq(OrderCouponMiddle ::getStatus, 2)
+            );
+            if(orderNum >= Integer.parseInt(lifeCoupon.getSingleCanUse())){
+                return R.fail("该订单已经超过今日单次核销数量");
+            }
+        }
         return R.success("效验通过");
     }