| 
					
				 | 
			
			
				@@ -4,6 +4,7 @@ import java.math.BigDecimal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.math.BigInteger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.sql.Wrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.time.LocalDate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.time.LocalDateTime; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.concurrent.atomic.AtomicInteger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.function.Function; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -24,6 +25,7 @@ import com.fs.course.param.PeriodCountParam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.course.service.IFsUserCoursePeriodDaysService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.course.vo.FsPeriodCountVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.course.vo.PeriodRedPacketVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.fs.course.vo.UpdateCourseTimeVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.course.vo.newfs.FsCourseAnalysisCountVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.his.vo.OptionsVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.fs.store.mapper.FsUserMapper; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -153,6 +155,9 @@ public class FsUserCoursePeriodDaysServiceImpl extends ServiceImpl<FsUserCourseP 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             day.setLesson(dayList.size() + i.getAndIncrement()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             day.setDayDate(period.getPeriodStartingTime().plusDays(day.getLesson())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             day.setCourseId(entity.getCourseId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            day.setStartDateTime(LocalDateTime.of(day.getDayDate(), entity.getStartTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            day.setEndDateTime(LocalDateTime.of(day.getDayDate(), entity.getEndTime1())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            day.setLastJoinTime(LocalDateTime.of(day.getDayDate(), entity.getJoinTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             day.setVideoId(e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             day.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return day; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -264,6 +269,31 @@ public class FsUserCoursePeriodDaysServiceImpl extends ServiceImpl<FsUserCourseP 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return R.ok(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public R updateCourseTime(UpdateCourseTimeVo vo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<FsUserCoursePeriodDays> list = fsUserCoursePeriodDaysMapper.selectBatchIds(vo.getIds()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        list.forEach(day -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            day.setStartDateTime(LocalDateTime.of(day.getDayDate(), vo.getStartTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            day.setEndDateTime(LocalDateTime.of(day.getDayDate(), vo.getEndTime1())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            day.setLastJoinTime(LocalDateTime.of(day.getDayDate(), vo.getJoinTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            fsUserCoursePeriodDaysMapper.updateById(day); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return R.ok(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public R updateCourseDate(UpdateCourseTimeVo vo) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FsUserCoursePeriodDays day = getById(vo.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FsUserCoursePeriod period = fsUserCoursePeriodMapper.selectFsUserCoursePeriodById(day.getPeriodId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(!DateUtil.isWithinRangeSafe(vo.getDayDate(), period.getPeriodStartingTime(), period.getPeriodEndTime())) return R.error("时间不在营期范围内"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        day.setDayDate(vo.getDayDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        day.setStartDateTime(LocalDateTime.of(day.getDayDate(), day.getStartDateTime().toLocalTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        day.setEndDateTime(LocalDateTime.of(day.getDayDate(), day.getEndDateTime().toLocalTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        day.setLastJoinTime(LocalDateTime.of(day.getDayDate(), day.getLastJoinTime().toLocalTime())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        updateById(day); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return R.ok(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private static FsCourseAnalysisCountVO getCourseAnalysisCountVO(FsUserCoursePeriodDays v, Map<Long, FsCourseAnalysisCountVO> courseMap, Map<Long, FsCourseAnalysisCountVO> redPacketMap, Map<Long, FsCourseAnalysisCountVO> answerMap) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         FsCourseAnalysisCountVO countVO = new FsCourseAnalysisCountVO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         FsCourseAnalysisCountVO courseVO = courseMap.getOrDefault(v.getVideoId(), countVO); 
			 |