Explorar o código

无红包课程展示红包代码优化

luolinsong hai 2 días
pai
achega
1d4fdd47a1

+ 1 - 1
fs-service/src/main/java/com/fs/course/mapper/FsUserCourseVideoRedPackageMapper.java

@@ -112,7 +112,7 @@ public interface FsUserCourseVideoRedPackageMapper
     int deleteBatchByVideoIds(@Param("ids") Long[] ids);
 
 
-//    FsUserCourseVideoRedPackage selectRedPacket(@Param("videoId") Long videoId,@Param("companyId") Long companyId, @Param("periodId") Long periodId);
+    List<FsUserCourseVideoRedPackage> selectRedPacketList(@Param("videoId") Long videoId,@Param("companyId") Long companyId, @Param("periodId") Long periodId);
     Integer selectRedPacketByCompanyCount(@Param("videoId") Long videoId,@Param("companyId") Long companyId, @Param("periodId") Long periodId);
     void batchInsertOrUpdate(List<FsUserCourseVideoRedPackage> list);
 

+ 13 - 11
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -2589,19 +2589,22 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
         } else {
             duration = Objects.isNull(watchLog) ? 0 : watchLog.getDuration();
         }
-        //int isRedPackage = 0;
+        int isRedPackage = 0;
+        CompanyUser companyUser = companyUserMapper.selectCompanyUserByCompanyUserId(param.getCompanyUserId());
+        // 查询视频是否设置了红包,没有就不提示  //根据公司ID 视频ID 营期ID  默认没有红包  手动看课视频
+        List<FsUserCourseVideoRedPackage> fsUserCourseVideoRedPackageList = fsUserCourseVideoRedPackageMapper.selectRedPacketList(param.getVideoId(), companyUser == null || companyUser.getCompanyId() == null  ? null : companyUser.getCompanyId(), param.getPeriodId());
+        if (fsUserCourseVideoRedPackageList.size() != 1) {
+            isRedPackage = 0;
+        } else {
+            if (fsUserCourseVideoRedPackageList.get(0).getRedPacketMoney() != null && BigDecimal.ZERO.compareTo(fsUserCourseVideoRedPackageList.get(0).getRedPacketMoney()) != 0) {
+                isRedPackage = 1;
+            }
+        }
+        vo.setIsRedPackage(isRedPackage);
+        
         // 2025-11-16 鹤颜堂 xgb 添加配置控制休息提示是否打开要暂停 默认打开 0-关闭 1-打开
         if(config.getIsOpenRestReminder()==null || config.getIsOpenRestReminder()==1 ){
             if (courseVideoDetails != null && courseVideoDetails.getDuration() != null){
-                // 查询视频是否设置了红包,没有就不提示
-//                FsUserCourseVideoRedPackage fsUserCourseVideoRedPackage = fsUserCourseVideoRedPackageMapper.selectRedPacketByCompanyCount(param.getVideoId(), watchLog == null ? null : watchLog.getCompanyId(), param.getPeriodId());
-//                if(fsUserCourseVideoRedPackage != null){
-//                    tipsTime = courseVideoDetails.getDuration() / 3;
-//                    tipsTime2 = (courseVideoDetails.getDuration() * 2) / 3;
-//                    if (fsUserCourseVideoRedPackage.getRedPacketMoney() != null && BigDecimal.ZERO.compareTo(fsUserCourseVideoRedPackage.getRedPacketMoney()) != 0){
-//                        isRedPackage = 1;
-//                    }
-//                }
                 Integer fsUserCourseVideoRedPackage = fsUserCourseVideoRedPackageMapper.selectRedPacketByCompanyCount(param.getVideoId(), null, param.getPeriodId());
                 if(fsUserCourseVideoRedPackage>0){
                     tipsTime = courseVideoDetails.getDuration() / 3;
@@ -2609,7 +2612,6 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
                 }
             }
         }
-        //vo.setIsRedPackage(isRedPackage);
         vo.setTipsTime(tipsTime);
         vo.setTipsTime2(tipsTime2);
         //判断是否完课

+ 2 - 1
fs-service/src/main/java/com/fs/course/vo/FsUserCourseVideoH5DVO.java

@@ -50,5 +50,6 @@ public class FsUserCourseVideoH5DVO extends BaseEntity
     private Long listingStartTime;//商品售卖时间
 
     private Long listingEndTime;//商品结束售卖时间
-
+    
+    private String redPacketMoney;
 }

+ 1 - 1
fs-service/src/main/java/com/fs/course/vo/newfs/FsUserCourseVideoLinkDetailsVO.java

@@ -35,5 +35,5 @@ public class FsUserCourseVideoLinkDetailsVO {
     @ApiModelProperty(value = "视频提示时间-第二阶段")
     private Long tipsTime2;
     //视频是否有红包  1有  0无
-//    private Integer isRedPackage;
+    private Integer isRedPackage;
 }

+ 9 - 9
fs-service/src/main/resources/mapper/course/FsUserCourseVideoRedPackageMapper.xml

@@ -151,15 +151,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="listByRuleIds" resultType="com.fs.course.domain.FsUserCourseVideoRedPackage">
         select * from fs_user_course_video_red_package where del_flag ='0' and data_type = 3 and rule_id in <foreach collection="ids" item="item" open="(" separator="," close=")">#{item}</foreach>
     </select>
-<!--    <select id="selectRedPacket" resultType="com.fs.course.domain.FsUserCourseVideoRedPackage">-->
-<!--        <include refid="selectFsUserCourseVideoRedPackageVo"/>-->
-<!--        <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>-->
-<!--        limit 1-->
-<!--    </select>-->
+    <select id="selectRedPacketList" resultType="com.fs.course.domain.FsUserCourseVideoRedPackage">
+        <include refid="selectFsUserCourseVideoRedPackageVo"/>
+        <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>
+             and data_type = 2
+        </where>
+    </select>
     
         <select id="selectRedPacketByCompanyCount" resultType="java.lang.Integer">
         select count(0) from fs_user_course_video_red_package

+ 16 - 17
fs-user-app/src/main/java/com/fs/app/controller/course/CourseQwController.java

@@ -16,7 +16,7 @@ import com.fs.course.domain.FsCourseQuestionBank;
 import com.fs.course.domain.FsCourseWatchLog;
 import com.fs.course.domain.FsUserCourseVideo;
 import com.fs.course.domain.FsUserCourseVideoRedPackage;
-import com.fs.course.mapper.FsUserCourseVideoRedPackageMapper;
+import com.fs.course.mapper.FsUserCourseMapper;
 import com.fs.course.param.*;
 import com.fs.course.service.*;
 import com.fs.course.service.impl.TencentCloudCosService;
@@ -85,8 +85,6 @@ public class CourseQwController extends AppBaseController {
 
     @Autowired
     private IQwSopService qwSopService;
-//    @Autowired
-//    private FsUserCourseVideoRedPackageMapper fsUserCourseVideoRedPackageMapper;
     @Autowired
     private IFsUserService userService;
     @ApiOperation("查询全部公域的课程")
@@ -149,17 +147,18 @@ public class CourseQwController extends AppBaseController {
             Long duration = 0L;
             long tipsTime = 0L;
             int isFinish = 0;
-//            int isRedPackage = 0;
-//            FsUserCourseVideoRedPackage fsUserCourseVideoRedPackage = fsUserCourseVideoRedPackageMapper.selectRedPacketByCompanyCount(param.getVideoId(), param.getCompanyId(), param.getPeriodId());
-//            if (fsUserCourseVideoRedPackage != null && fsUserCourseVideoRedPackage.getRedPacketMoney() !=null && BigDecimal.ZERO.compareTo(fsUserCourseVideoRedPackage.getRedPacketMoney()) != 0) {
-//                isRedPackage = 1;
-//            }
+            int isRedPackage = 1;
+            //自动
+
+            if (course.getRedPacketMoney() == null || "0".equals(course.getRedPacketMoney())) {
+                isRedPackage = 0;
+            }
             if (param.getLinkType()!=null&&param.getLinkType()==1){
-                return R.ok().put("course",course).put("questions",questionVOList).put("config",config).put("playDuration",duration).put("tipsTime",tipsTime);
+                return R.ok().put("course",course).put("questions",questionVOList).put("config",config).put("playDuration",duration).put("tipsTime",tipsTime).put("isRedPackage",isRedPackage);
             }
 
             if (param.getIsRoom()!=null&&param.getIsRoom()==1&&param.getQwExternalId()==null){
-                return R.ok().put("course",course).put("questions",questionVOList).put("config",config).put("playDuration",duration).put("tipsTime",tipsTime);
+                return R.ok().put("course",course).put("questions",questionVOList).put("config",config).put("playDuration",duration).put("tipsTime",tipsTime).put("isRedPackage",isRedPackage);
             }
             // 从Redis中获取观看时长
             String redisKey = "h5user:watch:duration:" + param.getQwUserId()+ ":" + param.getQwExternalId() + ":" + param.getVideoId();
@@ -196,19 +195,19 @@ 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);
+            return R.ok().put("course",course).put("questions",questionVOList).put("config",config).put("playDuration",duration).put("tipsTime",tipsTime).put("isFinish",isFinish).put("isRedPackage",isRedPackage);
         }else{
             Long duration = 0L;
             int isFinish = 0;
-            //int isRedPackage = 0;
+            int isRedPackage = 1;
             // 从Redis中获取观看时长
             String redisKey = "h5OpenUser:watch:duration:" + param.getUserId() + ":" + param.getVideoId();
             String durationStr = redisCache.getCacheObject(redisKey);
             FsCourseWatchLog log = courseWatchLogService.getWatchCourseVideoIsOpen(param.getUserId(),param.getVideoId());
-//            FsUserCourseVideoRedPackage fsUserCourseVideoRedPackage = fsUserCourseVideoRedPackageMapper.selectRedPacketByCompanyCount(param.getVideoId(), param.getCompanyId(), param.getPeriodId());
-//            if (fsUserCourseVideoRedPackage != null && fsUserCourseVideoRedPackage.getRedPacketMoney() != null && BigDecimal.ZERO.compareTo(fsUserCourseVideoRedPackage.getRedPacketMoney()) != 0) {
-//                isRedPackage = 1;
-//            }
+
+            if (course.getRedPacketMoney() == null || "0".equals(course.getRedPacketMoney())) {
+                isRedPackage = 0;
+            }
             if (log==null){
                 return R.error("记录不存在,请联系客服!");
             }
@@ -223,7 +222,7 @@ public class CourseQwController extends AppBaseController {
                 isFinish=1;
             }
 
-            return R.ok().put("course",course).put("questions",questionVOList).put("config",config).put("playDuration",duration).put("isFinish",isFinish);
+            return R.ok().put("course",course).put("questions",questionVOList).put("config",config).put("playDuration",duration).put("isFinish",isFinish).put("isRedPackage",isRedPackage);
         }
 
     }