Ver código fonte

迁移天降宝箱,领取

yfh 3 semanas atrás
pai
commit
f0fa775f4f

+ 86 - 6
fs-user-app/src/main/java/com/fs/app/controller/course/CourseQwController.java

@@ -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;

+ 52 - 0
fs-user-app/src/main/java/com/fs/app/controller/course/FsCourseRewardRoundController.java

@@ -0,0 +1,52 @@
+package com.fs.app.controller.course;
+
+import com.fs.app.annotation.Login;
+import com.fs.app.controller.AppBaseController;
+import com.fs.common.core.domain.R;
+import com.fs.course.domain.FsCourseRewardRound;
+import com.fs.course.service.IFsCourseRewardRoundService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 奖励领取记录Controller
+ *
+ * @author 杨衍生
+ * @date 2025-09-02
+ */
+@RestController
+@RequestMapping("/app/course/rewardRound")
+public class FsCourseRewardRoundController extends AppBaseController
+{
+    @Autowired
+    private IFsCourseRewardRoundService rewardRoundService;
+
+    /**
+     *领取奖励
+     */
+    @Login
+    @PostMapping("/claim")
+    public R claim(@RequestBody FsCourseRewardRound rewardRound)
+    {
+        Long userId = Long.parseLong(getUserId());
+        rewardRound.setUserId(userId);
+//        rewardRound.setUserId(0L);
+        return rewardRoundService.claim(rewardRound);
+    }
+    /**
+     *校验奖励是否能领取
+     */
+    @Login
+    @PostMapping("/isClaim")
+    public R isClaim(@RequestBody FsCourseRewardRound rewardRound)
+    {
+        Long userId = Long.parseLong(getUserId());
+        rewardRound.setUserId(userId);
+        return rewardRoundService.isClaim(rewardRound);
+    }
+
+
+}

+ 32 - 0
fs-user-app/src/main/java/com/fs/app/vo/FsUserCourseRewardRoundStatusVO.java

@@ -0,0 +1,32 @@
+package com.fs.app.vo;
+
+import com.fs.common.annotation.Excel;
+import com.fs.course.domain.FsCourseRewardVideoRelation;
+import lombok.Data;
+
+@Data
+public class FsUserCourseRewardRoundStatusVO
+{
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private Long status;
+
+    /** 选项 */
+    @Excel(name = "选项")
+    private String question;
+
+    /**
+     * 关闭宝箱url
+     */
+    private String closeChestUrl;
+
+    /**
+     * 开启宝箱url
+     */
+    private String openChestUrl;
+
+
+    private FsCourseRewardVideoRelation rewardVideoRelation;
+
+}