Quellcode durchsuchen

活动问题修改

zhangchen vor 2 Monaten
Ursprung
Commit
5bd161d4af

+ 3 - 2
alien-store/src/main/java/shop/alien/store/service/impl/StoreOperationalActivityAchievementServiceImpl.java

@@ -22,6 +22,7 @@ import shop.alien.mapper.storePlantform.StoreOperationalActivityAchievementMappe
 import shop.alien.mapper.storePlantform.StoreOperationalActivityMapper;
 import shop.alien.store.dto.StoreOperationalActivityAchievementDto;
 import shop.alien.store.service.StoreOperationalActivityAchievementService;
+import shop.alien.util.common.DateUtils;
 
 /**
  * 运营活动成果服务实现
@@ -56,8 +57,8 @@ public class StoreOperationalActivityAchievementServiceImpl implements StoreOper
         if (activity == null) {
             throw new IllegalArgumentException("活动不存在");
         }
-        Date now = new Date();
-        if (activity.getStartTime() != null && now.before(activity.getStartTime())) {
+        Date nowDay = DateUtils.toDateOnly(new Date());
+        if (activity.getStartTime() != null && nowDay.before(DateUtils.toDateOnly(activity.getStartTime()))) {
             throw new IllegalArgumentException("活动未开始,不允许新增成果");
         }
 

+ 17 - 16
alien-store/src/main/java/shop/alien/store/service/impl/StoreOperationalActivityServiceImpl.java

@@ -23,6 +23,7 @@ import shop.alien.mapper.storePlantform.StoreOperationalActivitySignupMapper;
 import shop.alien.store.config.BaseRedisService;
 import shop.alien.store.dto.StoreOperationalActivitySignupDto;
 import shop.alien.store.service.StoreOperationalActivityService;
+import shop.alien.util.common.DateUtils;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 
 import java.util.ArrayList;
@@ -271,11 +272,11 @@ public class StoreOperationalActivityServiceImpl implements StoreOperationalActi
         if (status == null || (status != 2 && status != 5)) {
             throw new IllegalArgumentException("活动状态不允许报名");
         }
-        Date now = new Date();
-        if (activity.getSignupStartTime() != null && now.before(activity.getSignupStartTime())) {
+        Date nowDay = DateUtils.toDateOnly(new Date());
+        if (activity.getSignupStartTime() != null && nowDay.before(DateUtils.toDateOnly(activity.getSignupStartTime()))) {
             throw new IllegalArgumentException("未到报名时间");
         }
-        if (activity.getSignupEndTime() != null && now.after(activity.getSignupEndTime())) {
+        if (activity.getSignupEndTime() != null && nowDay.after(DateUtils.toDateOnly(activity.getSignupEndTime()))) {
             throw new IllegalArgumentException("报名已结束");
         }
 //        if (activity.getStartTime() != null && status == 5 && now.before(activity.getStartTime())) {
@@ -376,13 +377,13 @@ public class StoreOperationalActivityServiceImpl implements StoreOperationalActi
         if (activity == null) {
             return false;
         }
-        Date now = new Date();
-        Date start = activity.getSignupStartTime();
-        Date end = activity.getSignupEndTime();
-        if (start != null && now.before(start)) {
+        Date nowDay = DateUtils.toDateOnly(new Date());
+        Date start = DateUtils.toDateOnly(activity.getSignupStartTime());
+        Date end = DateUtils.toDateOnly(activity.getSignupEndTime());
+        if (start != null && nowDay.before(start)) {
             return false;
         }
-        if (end != null && now.after(end)) {
+        if (end != null && nowDay.after(end)) {
             return false;
         }
         return true;
@@ -392,11 +393,11 @@ public class StoreOperationalActivityServiceImpl implements StoreOperationalActi
         if (activity == null) {
             return null;
         }
-        Date now = new Date();
+        Date nowDay = DateUtils.toDateOnly(new Date());
         if (activity.getStatus() != null && activity.getStatus() == 7) {
             return 0;
         }
-        if (activity.getEndTime() != null && now.after(activity.getEndTime())) {
+        if (activity.getEndTime() != null && nowDay.after(DateUtils.toDateOnly(activity.getEndTime()))) {
             return 0;
         }
         Integer status = activity.getStatus();
@@ -404,10 +405,10 @@ public class StoreOperationalActivityServiceImpl implements StoreOperationalActi
             return 1;
         }
         if (signupStatus != null && signupStatus == 2
-                && activity.getStartTime() != null && now.before(activity.getStartTime())) {
+                && activity.getStartTime() != null && nowDay.before(DateUtils.toDateOnly(activity.getStartTime()))) {
             return 2;
         }
-        if (activity.getSignupEndTime() != null && now.after(activity.getSignupEndTime())) {
+        if (activity.getSignupEndTime() != null && nowDay.after(DateUtils.toDateOnly(activity.getSignupEndTime()))) {
             if (status != null && status == 5 && signupStatus != null && signupStatus == 2) {
                 return 3;
             }
@@ -421,7 +422,7 @@ public class StoreOperationalActivityServiceImpl implements StoreOperationalActi
                 return 4;
             }
             if (signupStatus == 1) {
-                if (activity.getSignupEndTime() != null && now.before(activity.getSignupEndTime())) {
+                if (activity.getSignupEndTime() != null && nowDay.before(DateUtils.toDateOnly(activity.getSignupEndTime()))) {
                     return 5;
                 }
                 return 1;
@@ -467,14 +468,14 @@ public class StoreOperationalActivityServiceImpl implements StoreOperationalActi
         if (item == null) {
             return null;
         }
-        Date now = new Date();
+        Date nowDay = DateUtils.toDateOnly(new Date());
         Integer activityStatus = item.getActivityStatus();
         boolean hasAchievement = item.getHasAchievement() != null && item.getHasAchievement() == 1;
         Integer auditStatus = item.getSignupAuditStatus();
         Date startTime = item.getStartTime();
         Date endTime = item.getEndTime();
         boolean ended = (activityStatus != null && (activityStatus == 7 || activityStatus == 6))
-                || (endTime != null && now.after(endTime));
+                || (endTime != null && nowDay.after(DateUtils.toDateOnly(endTime)));
         if (ended) {
             return hasAchievement ? 2 : 1;
         }
@@ -490,7 +491,7 @@ public class StoreOperationalActivityServiceImpl implements StoreOperationalActi
             }
         }
         if (auditStatus != null && auditStatus == 0
-                && startTime != null && now.before(startTime)) {
+                && startTime != null && nowDay.before(DateUtils.toDateOnly(startTime))) {
             return 7;
         }
         return null;

+ 19 - 0
alien-util/src/main/java/shop/alien/util/common/DateUtils.java

@@ -76,6 +76,25 @@ public class DateUtils {
     }
 
     /**
+     * 将日期截断为仅保留年月日(时分秒置为 00:00:00),用于按“天”比较,不比较时分秒。
+     *
+     * @param date 日期,可为 null
+     * @return 当天 00:00:00 的 Date,若入参为 null 则返回 null
+     */
+    public static Date toDateOnly(Date date) {
+        if (date == null) {
+            return null;
+        }
+        Calendar c = Calendar.getInstance();
+        c.setTime(date);
+        c.set(Calendar.HOUR_OF_DAY, 0);
+        c.set(Calendar.MINUTE, 0);
+        c.set(Calendar.SECOND, 0);
+        c.set(Calendar.MILLISECOND, 0);
+        return c.getTime();
+    }
+
+    /**
      * 日期比较
      *
      * @param dateOne 日期1