| 
					
				 | 
			
			
				@@ -57,6 +57,7 @@ import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.math.BigDecimal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.math.RoundingMode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.time.LocalDateTime; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.time.LocalTime; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.concurrent.TimeUnit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.concurrent.atomic.AtomicLong; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -135,6 +136,12 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private FsUserCourseMapper fsUserCourseMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private FsUserCoursePeriodMapper fsUserCoursePeriodMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private FsUserCoursePeriodDaysMapper fsUserCoursePeriodDaysMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 查询课堂视频 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -728,6 +735,12 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return 处理结果 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private R sendRedPacketReward(FsCourseSendRewardUParam param, FsUser user, FsCourseWatchLog log, FsUserCourseVideo video, CourseConfig config) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 判断是否属于领取红包时间(会员看课发放红包) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FsUserCoursePeriod fsUserCoursePeriod = fsUserCoursePeriodMapper.selectFsUserCoursePeriodById(param.getPeriodId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(fsUserCoursePeriod != null && fsUserCoursePeriod.getLastJoinTime() !=null && LocalTime.now().isAfter(fsUserCoursePeriod.getLastJoinTime())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            R.error(403,"已超过领取红包时间"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 确定红包金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         BigDecimal amount = BigDecimal.ZERO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         FsUserCourseVideoRedPackage redPackage = fsUserCourseVideoRedPackageMapper.selectRedPacketByCompanyId(param.getVideoId(), param.getCompanyId(), param.getPeriodId()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -774,6 +787,7 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             redPacketLog.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             redPacketLog.setAmount(amount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             redPacketLog.setWatchLogId(log.getLogId() != null ? log.getLogId() : null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            redPacketLog.setPeriodId(param.getPeriodId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             redPacketLogMapper.insertFsCourseRedPacketLog(redPacketLog); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 更新观看记录的奖励类型 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -954,6 +968,26 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public ResponseResult<FsUserCourseVideoLinkDetailsVO> getLinkCourseVideoDetails(FsUserCourseVideoLinkParam param) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //判断营期的课程状态是否是进行中 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FsUserCoursePeriodDays periodDays = new FsUserCoursePeriodDays(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        periodDays.setVideoId(param.getVideoId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        periodDays.setPeriodId(param.getPeriodId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //正常情况是只能查询到一条,之前可能存在重复的脏数据,暂使用查询list的方式 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<FsUserCoursePeriodDays> fsUserCoursePeriodDays = fsUserCoursePeriodDaysMapper.selectFsUserCoursePeriodDaysList(periodDays); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(fsUserCoursePeriodDays != null && !fsUserCoursePeriodDays.isEmpty()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            periodDays = fsUserCoursePeriodDays.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(periodDays.getStatus() != 1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ResponseResult.fail(403, "当前课程未开始或已结束,暂不能看课"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 判断当前是否在看课时间范围内 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FsUserCoursePeriod fsUserCoursePeriod = fsUserCoursePeriodMapper.selectFsUserCoursePeriodById(param.getPeriodId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(fsUserCoursePeriod != null && fsUserCoursePeriod.getViewStartTime() != null && fsUserCoursePeriod.getViewEndTime() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (LocalTime.now().isBefore(fsUserCoursePeriod.getViewStartTime()) || LocalTime.now().isAfter(fsUserCoursePeriod.getViewEndTime())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ResponseResult.fail(403, "当前非看课时间,暂不能看课"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String json = configService.selectConfigByKey("course.config"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         CourseConfig config = JSONUtil.toBean(json, CourseConfig.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |