|
|
@@ -1,5 +1,6 @@
|
|
|
package com.fs.course.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.lang.TypeReference;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
@@ -113,6 +114,7 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|
|
import java.util.concurrent.atomic.AtomicLong;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import static com.fs.common.utils.date.DateUtil.YYYY_MM_DD_HH_MM_SS;
|
|
|
import static com.fs.course.utils.LinkUtil.generateRandomStringWithLock;
|
|
|
|
|
|
/**
|
|
|
@@ -2645,7 +2647,22 @@ public class FsUserCourseVideoServiceImpl extends ServiceImpl<FsUserCourseVideoM
|
|
|
return ResponseResult.fail(BizResponseEnum.WATCH_LATEST_COURSE, userCoursePeriodValid);
|
|
|
}
|
|
|
// 项目看课数限制
|
|
|
- if (!EXCLUDE_PROJECTS.contains(signProjectName) && !CloudHostUtils.hasCloudHostName("弘德堂")) {
|
|
|
+ if (CloudHostUtils.hasCloudHostName("四福堂")) {
|
|
|
+ FsUserCoursePeriodDays fsUserCoursePeriodDays = fsUserCoursePeriodDaysMapper.selectFsUserCoursePeriodDaysByPeriodDays(param.getCourseId(), param.getPeriodId(), param.getVideoId());
|
|
|
+
|
|
|
+ String startTime = null;
|
|
|
+ String endTime = null;
|
|
|
+ if (ObjectUtils.isNotEmpty(fsUserCoursePeriodDays)) {
|
|
|
+ startTime = fsUserCoursePeriodDays.getStartDateTime() != null ? DateUtil.formatLocalDateTime(fsUserCoursePeriodDays.getStartDateTime(), YYYY_MM_DD_HH_MM_SS) : null;
|
|
|
+ endTime = fsUserCoursePeriodDays.getEndDateTime() != null ? DateUtil.formatLocalDateTime(fsUserCoursePeriodDays.getEndDateTime(), YYYY_MM_DD_HH_MM_SS) : null;
|
|
|
+ }
|
|
|
+
|
|
|
+ log.error("进入了看课限制:传入参数:={},watchCourseVideo={}", param, watchCourseVideo);
|
|
|
+ Long logCount = fsUserCourseMapper.countDistinctVideoByUserAndProject(param.getUserId(), courseProject, startTime, endTime);
|
|
|
+ if (Objects.isNull(watchCourseVideo) && logCount > 0) {
|
|
|
+ return ResponseResult.fail(ExceptionCodeEnum.EXCEED_COURSE_LIMIT.getCode(), ExceptionCodeEnum.EXCEED_COURSE_LIMIT.getDescription());
|
|
|
+ }
|
|
|
+ }else if (!EXCLUDE_PROJECTS.contains(signProjectName) && !CloudHostUtils.hasCloudHostName("弘德堂")) {
|
|
|
log.error("进入了看课限制:传入参数:={},watchCourseVideo={}",param, watchCourseVideo);
|
|
|
Integer logCount = fsUserCourseMapper.selectTodayCourseWatchLogCountByUserIdAndProjectId(param.getUserId(), courseProject);
|
|
|
if (Objects.isNull(watchCourseVideo) && logCount > 0) {
|