Quellcode durchsuchen

Merge remote-tracking branch 'origin/sit' into sit

lyx vor 1 Monat
Ursprung
Commit
541a34f260

+ 8 - 0
alien-store/src/main/java/shop/alien/store/service/LifeUserOrderService.java

@@ -561,6 +561,14 @@ public class LifeUserOrderService extends ServiceImpl<LifeUserOrderMapper, LifeU
                 lifeGroupBuyMainMapper.update(null, new LambdaUpdateWrapper<LifeGroupBuyMain>()
                         .setSql("inventory_num=inventory_num+" + refundCouponAmount)
                         .eq(LifeGroupBuyMain::getId, couponId));
+
+                //判断当前时间在开始时间start_date和结束时间end_date之间,并且库存single_qty大于0,则修改状态status为5
+                lifeGroupBuyMainMapper.update(null, new LambdaUpdateWrapper<LifeGroupBuyMain>()
+                        .set(LifeGroupBuyMain::getStatus, 5)
+                        .eq(LifeGroupBuyMain::getId, couponId)
+                        .le(LifeGroupBuyMain::getStartTimeValue, LocalDateTime.now())
+                        .ge(LifeGroupBuyMain::getEndTime, LocalDateTime.now())
+                        .gt(LifeGroupBuyMain::getInventoryNum, 0));
             }
         } catch (Exception e) {
             log.error("LifeUserOrderService,恢复团购券/代金券数量报错={}", e);

+ 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("效验通过");
     }