Selaa lähdekoodia

1、调整答题接口
2、红包多条数据问题处理

yfh 2 viikkoa sitten
vanhempi
commit
a825f15b7b

+ 2 - 0
fs-service-system/src/main/java/com/fs/course/mapper/FsUserCourseVideoRedPackageMapper.java

@@ -108,4 +108,6 @@ public interface FsUserCourseVideoRedPackageMapper
             "</foreach>" +
             "</script>")
     int updateBatchDelFlag(@Param("ids") Long [] ids, @Param("delFlag") Integer delFlag);
+
+    Integer selectRedPacketByCompanyCount(@Param("videoId") Long videoId,@Param("companyId") Long companyId, @Param("periodId") Long periodId);
 }

+ 18 - 35
fs-service-system/src/main/java/com/fs/course/service/impl/FsCourseQuestionBankServiceImpl.java

@@ -166,49 +166,32 @@ public class FsCourseQuestionBankServiceImpl implements IFsCourseQuestionBankSer
         new FsCourseAnswerLogs();
         FsCourseAnswerLogs rightLog;
         //判断短链类型
-        if (param.getLinkType()!=null&&param.getLinkType()==1){
-            rightLog = courseAnswerLogsMapper.selectRightLogByCourseVideo(param.getVideoId(), param.getUserId(),null);
-            if (rightLog!=null){
+
+        FsCourseWatchLog log = courseWatchLogMapper.getWatchLogByFsUser(param.getVideoId(), param.getUserId(), param.getCompanyUserId());
+        if (log==null){
+            return R.error("无记录");
+        }
+        if (log.getLogType()!=2){
+            return R.error("未完课");
+        }
+        logId = log.getLogId();
+
+        rightLog = courseAnswerLogsMapper.selectRightLogByCourseVideo(param.getVideoId(), param.getUserId(), param.getQwUserId());
+        if (rightLog != null) {
+            if (log.getRewardType() != null) {
                 // 增加判断,去查询红包记录是否已发送成功,如果成功,则返回当前提示,否则返回答题成功(让其可以继续答题,直到红包领取完成)
                 FsCourseRedPacketLog fsCourseRedPacketLog = redPacketLogMapper.selectUserFsCourseRedPacketLog(param.getVideoId(), param.getUserId(),param.getPeriodId());
-                if(fsCourseRedPacketLog != null && fsCourseRedPacketLog.getStatus() == 1){
+                if(fsCourseRedPacketLog != null && fsCourseRedPacketLog.getStatus() == 1) {
                     return R.error("该课程已答题完成,不可重复答题");
-                }
-            }
-            errorCount = courseAnswerLogsMapper.selectErrorCountByCourseVideo(param.getVideoId(), param.getUserId(),null);
-
-        }else {
-            FsCourseWatchLog log;
-            if(isH5User){
-               log = courseWatchLogMapper.getWatchLogByFsUser(param.getVideoId(), param.getUserId(), param.getCompanyUserId());
-            } else {
-                log = courseWatchLogMapper.getWatchCourseVideo(param.getUserId(), param.getVideoId(), param.getQwUserId(), param.getQwExternalId());
-            }
-            if (log==null){
-                return R.error("无记录");
-            }
-            if (log.getLogType()!=2){
-                return R.error("未完课");
-            }
-            logId = log.getLogId();
-
-            rightLog = courseAnswerLogsMapper.selectRightLogByCourseVideo(param.getVideoId(), param.getUserId(), param.getQwUserId());
-            if (rightLog != null) {
-                if (log.getRewardType() != null) {
-                    // 增加判断,去查询红包记录是否已发送成功,如果成功,则返回当前提示,否则返回答题成功(让其可以继续答题,直到红包领取完成)
-                    FsCourseRedPacketLog fsCourseRedPacketLog = redPacketLogMapper.selectUserFsCourseRedPacketLog(param.getVideoId(), param.getUserId(),param.getPeriodId());
-                    if(fsCourseRedPacketLog != null && fsCourseRedPacketLog.getStatus() == 1) {
-                        return R.error("该课程已答题完成,不可重复答题");
-                    } else {
-                        return R.ok("答题成功");
-                    }
                 } else {
                     return R.ok("答题成功");
                 }
-//                return R.error("该课程已答题完成,不可重复答题");
+            } else {
+                return R.ok("答题成功");
             }
-            errorCount = courseAnswerLogsMapper.selectErrorCountByCourseVideo(param.getVideoId(), param.getUserId(),param.getQwUserId());
         }
+        errorCount = courseAnswerLogsMapper.selectErrorCountByCourseVideo(param.getVideoId(), param.getUserId(),param.getQwUserId());
+
 
 
         if (errorCount >= config.getAnswerErrorCount()) {

+ 2 - 2
fs-service-system/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -1141,8 +1141,8 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
 //
         if (courseVideoDetails != null && courseVideoDetails.getDuration() != null){
             // 查询视频是否设置了红包,没有就不提示
-            FsUserCourseVideoRedPackage fsUserCourseVideoRedPackage = fsUserCourseVideoRedPackageMapper.selectRedPacketByCompanyId(param.getVideoId(), null, param.getPeriodId());
-            if(fsUserCourseVideoRedPackage != null){
+            Integer fsUserCourseVideoRedPackage = fsUserCourseVideoRedPackageMapper.selectRedPacketByCompanyCount(param.getVideoId(), null, param.getPeriodId());
+            if(fsUserCourseVideoRedPackage>0){
                 tipsTime = courseVideoDetails.getDuration() / 3;
                 tipsTime2 = (courseVideoDetails.getDuration() * 2) / 3;
             }

+ 8 - 1
fs-service-system/src/main/resources/mapper/course/FsUserCourseVideoRedPackageMapper.xml

@@ -148,5 +148,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="periodId != null "> and period_id = #{periodId}</if>
         </where>
     </select>
-
+    <select id="selectRedPacketByCompanyCount" resultType="java.lang.Integer">
+        select count(0) from fs_user_course_video_red_package
+        <where>
+            <if test="videoId != null "> and video_id =#{videoId}</if>
+            <if test="companyId != null "> and company_id = #{companyId}</if>
+            <if test="periodId != null "> and period_id = #{periodId}</if>
+        </where>
+    </select>
 </mapper>