|  | @@ -405,15 +405,23 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public R updateWatchDuration(FsUserCourseVideoFinishUParam param) {
 | 
	
		
			
				|  |  | -        //临时短链不做记录
 | 
	
		
			
				|  |  | -        if (param.getLinkType()!=null && param.getLinkType()==1){
 | 
	
		
			
				|  |  | -            return R.ok();
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          if (param.getIsRoom()!=null&¶m.getIsRoom()==1&¶m.getQwExternalId()==null){
 | 
	
		
			
				|  |  |              return R.ok();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        Long videoDuration = 0L;
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +            videoDuration = getVideoDuration(param.getVideoId());
 | 
	
		
			
				|  |  | +        }catch (Exception e){
 | 
	
		
			
				|  |  | +            log.error("视频时长识别错误:{}", param);
 | 
	
		
			
				|  |  | +            return R.error();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 判断param.getDuration()是否大于videoDuration(允许10的误差区间)
 | 
	
		
			
				|  |  | +        if (param.getDuration() > videoDuration + 10) {
 | 
	
		
			
				|  |  | +            return R.error();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          // 从Redis中获取观看时长
 | 
	
		
			
				|  |  |          String redisKey = "h5user:watch:duration:" + param.getQwUserId()+ ":" + param.getQwExternalId() + ":" + param.getVideoId();
 | 
	
		
			
				|  |  |  //        log.info("看课redis-key:{}", redisKey);
 | 
	
	
		
			
				|  | @@ -2415,6 +2423,17 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
 | 
	
		
			
				|  |  |          if (param.getCompanyUserId()==null){
 | 
	
		
			
				|  |  |              param.setCompanyUserId(0L);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        Long videoDuration = 0L;
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +            videoDuration = getVideoDuration(param.getVideoId());
 | 
	
		
			
				|  |  | +        }catch (Exception e){
 | 
	
		
			
				|  |  | +            log.error("视频时长识别错误:{}", param);
 | 
	
		
			
				|  |  | +            return R.error();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 判断param.getDuration()是否大于videoDuration(允许10的误差区间)
 | 
	
		
			
				|  |  | +        if (param.getDuration() > videoDuration + 10) {
 | 
	
		
			
				|  |  | +            return R.error();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          // 从Redis中获取观看时长
 | 
	
		
			
				|  |  |          String redisKey = "h5wxuser:watch:duration:" + param.getUserId() + ":" + param.getVideoId() + ":" + param.getCompanyUserId();
 | 
	
		
			
				|  |  |  //        log.info("看课redis缓存key:{}", redisKey);
 |