|
|
@@ -6,15 +6,14 @@ import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
|
|
import com.fs.app.annotation.Login;
|
|
|
import com.fs.app.annotation.UserOperationLog;
|
|
|
import com.fs.app.controller.AppBaseController;
|
|
|
+import com.fs.app.vo.FsUserCourseRewardRoundStatusVO;
|
|
|
import com.fs.common.annotation.RepeatSubmit;
|
|
|
import com.fs.common.core.domain.R;
|
|
|
import com.fs.common.utils.ServletUtils;
|
|
|
import com.fs.common.utils.StringUtils;
|
|
|
import com.fs.core.utils.OrderCodeUtils;
|
|
|
import com.fs.course.config.CourseConfig;
|
|
|
-import com.fs.course.domain.FsCourseQuestionBank;
|
|
|
-import com.fs.course.domain.FsCourseWatchLog;
|
|
|
-import com.fs.course.domain.FsUserCourseVideo;
|
|
|
+import com.fs.course.domain.*;
|
|
|
import com.fs.course.param.*;
|
|
|
import com.fs.course.service.*;
|
|
|
import com.fs.course.service.impl.TencentCloudCosService;
|
|
|
@@ -33,6 +32,7 @@ import io.jsonwebtoken.Claims;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
import io.swagger.annotations.ApiParam;
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.redisson.api.RLock;
|
|
|
import org.redisson.api.RedissonClient;
|
|
|
import org.slf4j.Logger;
|
|
|
@@ -57,8 +57,11 @@ public class CourseQwController extends AppBaseController {
|
|
|
@Autowired
|
|
|
private IFsUserCourseService courseService;
|
|
|
@Autowired
|
|
|
- private IFsUserCourseCategoryService courseCategoryService;
|
|
|
-
|
|
|
+ private IFsCourseRewardVideoRelationService fsCourseRewardVideoRelationService;
|
|
|
+ @Autowired
|
|
|
+ private IFsCourseRewardService fsCourseRewardService;
|
|
|
+ @Autowired
|
|
|
+ private IFsCourseRewardRoundService courseRewardRoundService;
|
|
|
@Autowired
|
|
|
private IFsUserCourseVideoService courseVideoService;
|
|
|
|
|
|
@@ -185,7 +188,84 @@ public class CourseQwController extends AppBaseController {
|
|
|
config.setOpenCommentStatus(qwSop.getOpenCommentStatus());
|
|
|
}
|
|
|
|
|
|
- return R.ok().put("course",course).put("questions",questionVOList).put("config",config).put("playDuration",duration).put("tipsTime",tipsTime).put("isFinish",isFinish);
|
|
|
+
|
|
|
+ FsCourseRewardVideoRelation fsCourseRewardVideoRelation = new FsCourseRewardVideoRelation();
|
|
|
+ fsCourseRewardVideoRelation.setVideoSectionId(log.getVideoId());
|
|
|
+ fsCourseRewardVideoRelation.setCompanyId(log.getCompanyId());
|
|
|
+ fsCourseRewardVideoRelation.setType(2);
|
|
|
+ List<FsCourseRewardVideoRelation> fsCourseRewardVideoRelationList = fsCourseRewardVideoRelationService.selectFsCourseRewardVideoRelationListByType(fsCourseRewardVideoRelation);
|
|
|
+
|
|
|
+ List<FsUserCourseRewardRoundStatusVO> fsUserCourseRewardRoundStatusVOArrayList = new ArrayList<>();
|
|
|
+
|
|
|
+ if (CollectionUtils.isEmpty(fsCourseRewardVideoRelationList)){
|
|
|
+ return R.ok()
|
|
|
+ .put("course",course)
|
|
|
+ .put("questions",questionVOList)
|
|
|
+ .put("config",config)
|
|
|
+ .put("playDuration",duration)
|
|
|
+ .put("tipsTime",tipsTime)
|
|
|
+ .put("maxBufferLength",config.getMaxBufferLength())
|
|
|
+ .put("isFinish",isFinish)
|
|
|
+ .put("fsUserCourseRewardRoundStatusVO",fsUserCourseRewardRoundStatusVOArrayList);
|
|
|
+ }
|
|
|
+ for (FsCourseRewardVideoRelation relation : fsCourseRewardVideoRelationList) {
|
|
|
+ FsUserCourseRewardRoundStatusVO fsUserCourseRewardRoundStatusVO = new FsUserCourseRewardRoundStatusVO();
|
|
|
+ FsCourseRewardRound rewardRound = new FsCourseRewardRound();
|
|
|
+ rewardRound.setWatchId(log.getLogId());
|
|
|
+ rewardRound.setUserId(param.getUserId());
|
|
|
+ rewardRound.setRewardVideoRelationId(relation.getId());
|
|
|
+ rewardRound.setRewardId(relation.getRewardId());
|
|
|
+ rewardRound.setCompanyId(relation.getCompanyId());
|
|
|
+ rewardRound.setRewardVideoRelationId(relation.getId());
|
|
|
+ List<FsCourseRewardRound> fsCourseRewardRounds = courseRewardRoundService.selectFsCourseRewardRoundList(rewardRound);
|
|
|
+ if (CollectionUtils.isEmpty(fsCourseRewardRounds)){
|
|
|
+ FsCourseReward fsCourseReward = fsCourseRewardService.selectFsCourseRewardById(relation.getRewardId());
|
|
|
+ fsUserCourseRewardRoundStatusVO.setQuestion(relation.getMark().replace("%",""));
|
|
|
+ fsUserCourseRewardRoundStatusVO.setRewardVideoRelation(relation);
|
|
|
+ fsUserCourseRewardRoundStatusVO.setCloseChestUrl(fsCourseReward.getCloseChestUrl());
|
|
|
+ fsUserCourseRewardRoundStatusVO.setOpenChestUrl(fsCourseReward.getOpenChestUrl());
|
|
|
+ switch (relation.getMark()) {
|
|
|
+ case "30":
|
|
|
+ case "30%":
|
|
|
+ fsUserCourseRewardRoundStatusVO.setStatus(0L);
|
|
|
+ fsUserCourseRewardRoundStatusVOArrayList.add(fsUserCourseRewardRoundStatusVO);
|
|
|
+ break;
|
|
|
+ case "70":
|
|
|
+ case "70%":
|
|
|
+ fsUserCourseRewardRoundStatusVO.setStatus(0L);
|
|
|
+ fsUserCourseRewardRoundStatusVOArrayList.add(fsUserCourseRewardRoundStatusVO);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ fsUserCourseRewardRoundStatusVO.setQuestion(relation.getMark().replace("%",""));
|
|
|
+ fsUserCourseRewardRoundStatusVO.setRewardVideoRelation(relation);
|
|
|
+ switch (relation.getMark()) {
|
|
|
+ case "30":
|
|
|
+ case "30%":
|
|
|
+ fsUserCourseRewardRoundStatusVO.setStatus(1L);
|
|
|
+ fsUserCourseRewardRoundStatusVOArrayList.add(fsUserCourseRewardRoundStatusVO);
|
|
|
+ break;
|
|
|
+ case "70":
|
|
|
+ case "70%":
|
|
|
+ fsUserCourseRewardRoundStatusVO.setStatus(1L);
|
|
|
+ fsUserCourseRewardRoundStatusVOArrayList.add(fsUserCourseRewardRoundStatusVO);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return R.ok()
|
|
|
+ .put("course",course)
|
|
|
+ .put("questions",questionVOList)
|
|
|
+ .put("config",config)
|
|
|
+ .put("playDuration",duration)
|
|
|
+ .put("tipsTime",tipsTime)
|
|
|
+ .put("maxBufferLength",config.getMaxBufferLength())
|
|
|
+ .put("isFinish",isFinish)
|
|
|
+ .put("fsUserCourseRewardRoundStatusVO",fsUserCourseRewardRoundStatusVOArrayList);
|
|
|
}else{
|
|
|
Long duration = 0L;
|
|
|
int isFinish = 0;
|