Pārlūkot izejas kodu

会员看课状态和领取红包判断调整

caoliqin 1 mēnesi atpakaļ
vecāks
revīzija
acfd78b64c

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

@@ -737,8 +737,16 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
      */
     private R sendRedPacketReward(FsCourseSendRewardUParam param, FsUser user, FsCourseWatchLog log, FsUserCourseVideo video, CourseConfig config) {
         // 判断是否属于领取红包时间(会员看课发放红包)
-        FsUserCoursePeriod fsUserCoursePeriod = fsUserCoursePeriodMapper.selectFsUserCoursePeriodById(param.getPeriodId());
-        if(fsUserCoursePeriod != null && fsUserCoursePeriod.getLastJoinTime() !=null && LocalTime.now().isAfter(fsUserCoursePeriod.getLastJoinTime())) {
+        FsUserCoursePeriodDays periodDays = new FsUserCoursePeriodDays();
+        periodDays.setVideoId(param.getVideoId());
+        periodDays.setPeriodId(param.getPeriodId());
+        //正常情况是只能查询到一条,之前可能存在重复的脏数据,暂使用查询list的方式
+        List<FsUserCoursePeriodDays> fsUserCoursePeriodDays = fsUserCoursePeriodDaysMapper.selectFsUserCoursePeriodDaysList(periodDays);
+        if(fsUserCoursePeriodDays != null && !fsUserCoursePeriodDays.isEmpty()){
+            periodDays = fsUserCoursePeriodDays.get(0);
+        }
+
+        if(periodDays != null && periodDays.getLastJoinTime() !=null && LocalDateTime.now().isAfter(periodDays.getLastJoinTime())) {
             R.error(403,"已超过领取红包时间");
         }
 
@@ -982,13 +990,6 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
             ResponseResult.fail(403, "当前课程未开始或已结束,暂不能看课");
         }
 
-        // 判断当前是否在看课时间范围内
-        FsUserCoursePeriod fsUserCoursePeriod = fsUserCoursePeriodMapper.selectFsUserCoursePeriodById(param.getPeriodId());
-        if(fsUserCoursePeriod != null && fsUserCoursePeriod.getViewStartTime() != null && fsUserCoursePeriod.getViewEndTime() != null) {
-            if (LocalTime.now().isBefore(fsUserCoursePeriod.getViewStartTime()) || LocalTime.now().isAfter(fsUserCoursePeriod.getViewEndTime())) {
-                ResponseResult.fail(403, "当前非看课时间,暂不能看课");
-            }
-        }
         String json = configService.selectConfigByKey("course.config");
         CourseConfig config = JSONUtil.toBean(json, CourseConfig.class);
 

+ 3 - 3
fs-service-system/src/main/resources/mapper/course/FsUserCoursePeriodDaysMapper.xml

@@ -30,9 +30,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         inner join fs_user_course b on a.course_id = b.course_id
         inner join fs_user_course_video c on a.video_id = c.video_id
         <where>
-            <if test="periodId != null "> and period_id = #{periodId}</if>
-            <if test="courseId != null "> and course_id = #{courseId}</if>
-            <if test="videoId != null "> and video_id = #{videoId}</if>
+            <if test="periodId != null "> and aperiod_id = #{periodId}</if>
+            <if test="courseId != null "> and a.course_id = #{courseId}</if>
+            <if test="videoId != null "> and a.video_id = #{videoId}</if>
             <if test="videoIds != null and videoIds.size > 0">
                 and a.video_id in
                 <foreach collection="videoIds" open="(" close=")" separator="," item="videoId">