lubo 3 miesięcy temu
rodzic
commit
f8f456a0fe

+ 13 - 2
ruoyi-shop/src/main/java/com/ruoyi/shop/coupon/service/impl/CouponServiceImpl.java

@@ -108,16 +108,27 @@ public class CouponServiceImpl implements ICouponService {
         }
         lqw.eq(bo.getReceiveNum() != null, Coupon::getReceiveNum, bo.getReceiveNum());
         lqw.ge(bo.getStartTime() != null, Coupon::getStartTime, bo.getStartTime());
-        lqw.le(bo.getCanReceiveStartTime() != null, Coupon::getStartTime, bo.getCanReceiveStartTime());
+
         lqw.eq(bo.getExpiredDay() != null, Coupon::getExpiredDay, bo.getExpiredDay());
         lqw.le(bo.getEndTime() != null, Coupon::getEndTime, bo.getEndTime());
-        lqw.ge(bo.getCanReceiveEndTime() != null, Coupon::getEndTime, bo.getCanReceiveEndTime());
+
         lqw.eq(bo.getBusinessId() != null, Coupon::getBusinessId, bo.getBusinessId());
         lqw.eq(StringUtils.isNotBlank(bo.getContent()), Coupon::getContent, bo.getContent());
         lqw.eq(bo.getAdaptOrNo() != null, Coupon::getAdaptOrNo, bo.getAdaptOrNo());
         lqw.eq(bo.getReceiveLimit() != null, Coupon::getReceiveLimit, bo.getReceiveLimit());
         lqw.eq(bo.getTrait() != null, Coupon::getTrait, bo.getTrait());
         lqw.eq(bo.getStatus() != null, Coupon::getStatus, bo.getStatus());
+
+        if(bo.getCanReceiveStartTime() != null &&  bo.getCanReceiveEndTime() != null)
+        {
+            bo.setCanReceiveStartTime(DateUtil.beginOfDay(bo.getCanReceiveStartTime()));
+            bo.setCanReceiveEndTime(DateUtil.endOfDay(bo.getCanReceiveEndTime()));
+            lqw.and(lqw1 ->
+                lqw1.ge(Coupon::getStartTime, bo.getCanReceiveStartTime()).le(Coupon::getEndTime, bo.getCanReceiveEndTime())
+                .or(lqw2 -> lqw2.le(Coupon::getStartTime, bo.getCanReceiveStartTime()).ge(Coupon::getEndTime, bo.getCanReceiveStartTime()))
+                .or(lqw3 -> lqw3.le(Coupon::getStartTime, bo.getCanReceiveEndTime()).ge(Coupon::getEndTime, bo.getCanReceiveEndTime()))
+            );
+        }
         lqw.orderByAsc(Coupon::getStatus).orderByDesc(Coupon::getStartTime);
         return lqw;
     }