Ver Fonte

红德堂-打卡活动自定义打卡天数

Long há 1 semana atrás
pai
commit
b6e0450b36

+ 3 - 51
fs-service/src/main/java/com/fs/course/service/impl/FsCourseCheckinActivityServiceImpl.java

@@ -132,51 +132,10 @@ public class FsCourseCheckinActivityServiceImpl implements IFsCourseCheckinActiv
     @Transactional
     public int insertFsCourseCheckinActivity(FsCourseCheckinActivity fsCourseCheckinActivity) {
         fsCourseCheckinActivity.setCreateTime(DateUtils.getNowDate());
-        // 根据时间范围计算打卡天数
-        if (fsCourseCheckinActivity.getStartTime() != null && fsCourseCheckinActivity.getEndTime() != null) {
-            int checkinDays = calculateCheckinDays(fsCourseCheckinActivity.getStartTime(), fsCourseCheckinActivity.getEndTime());
-            fsCourseCheckinActivity.setCheckinDays(checkinDays);
-        }
-//        // 根据时间自动设置状态
-//        Date now = new Date();
-//        if (fsCourseCheckinActivity.getStartTime().after(now)) {
-//            fsCourseCheckinActivity.setStatus(0); // 未开始
-//        } else if (fsCourseCheckinActivity.getEndTime().before(now)) {
-//            fsCourseCheckinActivity.setStatus(2); // 已结束
-//        } else {
-//            fsCourseCheckinActivity.setStatus(1); // 进行中
-//        }
+        // 打卡天数由前端传入,不再自动计算
         return fsCourseCheckinActivityMapper.insertFsCourseCheckinActivity(fsCourseCheckinActivity);
     }
 
-    /**
-     * 计算打卡天数(根据时间范围)
-     * 从开始日期到结束日期的天数(包含开始和结束日期)
-     */
-    private int calculateCheckinDays(Date startTime, Date endTime) {
-        Calendar startCal = Calendar.getInstance();
-        startCal.setTime(startTime);
-        // 设置为当天的开始时间(00:00:00)
-        startCal.set(Calendar.HOUR_OF_DAY, 0);
-        startCal.set(Calendar.MINUTE, 0);
-        startCal.set(Calendar.SECOND, 0);
-        startCal.set(Calendar.MILLISECOND, 0);
-
-        Calendar endCal = Calendar.getInstance();
-        endCal.setTime(endTime);
-        // 设置为当天的开始时间(00:00:00)
-        endCal.set(Calendar.HOUR_OF_DAY, 0);
-        endCal.set(Calendar.MINUTE, 0);
-        endCal.set(Calendar.SECOND, 0);
-        endCal.set(Calendar.MILLISECOND, 0);
-
-        // 计算天数差
-        long diffMillis = endCal.getTimeInMillis() - startCal.getTimeInMillis();
-        int days = (int) (diffMillis / (1000 * 60 * 60 * 24)) + 1; // +1 包含开始和结束日期
-
-        return Math.max(days, 1); // 至少1天
-    }
-
     /**
      * 自动设置奖品名称
      * 红包类型:红包
@@ -297,11 +256,7 @@ public class FsCourseCheckinActivityServiceImpl implements IFsCourseCheckinActiv
     @Transactional
     public int updateFsCourseCheckinActivity(FsCourseCheckinActivity fsCourseCheckinActivity) {
         fsCourseCheckinActivity.setUpdateTime(DateUtils.getNowDate());
-        // 根据时间范围重新计算打卡天数
-        if (fsCourseCheckinActivity.getStartTime() != null && fsCourseCheckinActivity.getEndTime() != null) {
-            int checkinDays = calculateCheckinDays(fsCourseCheckinActivity.getStartTime(), fsCourseCheckinActivity.getEndTime());
-            fsCourseCheckinActivity.setCheckinDays(checkinDays);
-        }
+        // 打卡天数由前端传入,不再自动计算
         return fsCourseCheckinActivityMapper.updateFsCourseCheckinActivity(fsCourseCheckinActivity);
     }
 
@@ -503,15 +458,12 @@ public class FsCourseCheckinActivityServiceImpl implements IFsCourseCheckinActiv
             throw new RuntimeException("结束时间不能早于开始时间");
         }
 
-        // 3. 计算打卡天数(根据时间范围自动计算)
-        int checkinDays = calculateCheckinDays(startTime, endTime);
-
         // 4. 创建新活动
         FsCourseCheckinActivity newActivity = new FsCourseCheckinActivity();
         newActivity.setActivityName(sourceActivity.getActivityName() + "_复制");
         newActivity.setStartTime(startTime);
         newActivity.setEndTime(endTime);
-        newActivity.setCheckinDays(checkinDays); // 自动计算打卡天数
+        newActivity.setCheckinDays(sourceActivity.getCheckinDays()); // 复制源活动的打卡天数
         newActivity.setCompanyIds(sourceActivity.getCompanyIds());
         newActivity.setProjectIds(sourceActivity.getProjectIds());
         newActivity.setNotifyTemplate(sourceActivity.getNotifyTemplate());