Browse Source

Merge remote-tracking branch 'origin/bjcz_his_scrm' into bjcz_his_scrm

吴树波 4 days ago
parent
commit
0de6718b94

+ 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);
 
 
-    Integer selectRedPacketByCompanyCount(@Param("videoId") Long videoId,@Param("companyId") Long companyId, @Param("periodId") Long periodId);
+    FsUserCourseVideoRedPackage selectRedPacketByCompanyCount(@Param("videoId") Long videoId,@Param("companyId") Long companyId, @Param("periodId") Long periodId);
 
     void batchInsertOrUpdate(List<FsUserCourseVideoRedPackage> list);
 

+ 7 - 4
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -2584,19 +2584,22 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
         } else {
             duration = Objects.isNull(watchLog) ? 0 : watchLog.getDuration();
         }
-
+        int isRedPackage = 0;
         // 2025-11-16 鹤颜堂 xgb 添加配置控制休息提示是否打开要暂停 默认打开 0-关闭 1-打开
         if(config.getIsOpenRestReminder()==null || config.getIsOpenRestReminder()==1 ){
             if (courseVideoDetails != null && courseVideoDetails.getDuration() != null){
                 // 查询视频是否设置了红包,没有就不提示
-                Integer fsUserCourseVideoRedPackage = fsUserCourseVideoRedPackageMapper.selectRedPacketByCompanyCount(param.getVideoId(), null, param.getPeriodId());
-                if(fsUserCourseVideoRedPackage>0){
+                FsUserCourseVideoRedPackage fsUserCourseVideoRedPackage = fsUserCourseVideoRedPackageMapper.selectRedPacketByCompanyCount(param.getVideoId(), null, 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;
+                    }
                 }
             }
         }
-
+        vo.setIsRedPackage(isRedPackage);
         vo.setTipsTime(tipsTime);
         vo.setTipsTime2(tipsTime2);
         //判断是否完课

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

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

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

@@ -151,8 +151,8 @@ 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="selectRedPacketByCompanyCount" resultType="java.lang.Integer">
-        select count(0) from fs_user_course_video_red_package
+    <select id="selectRedPacketByCompanyCount" 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>

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

@@ -15,6 +15,8 @@ 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.FsUserCourseVideoRedPackage;
+import com.fs.course.mapper.FsUserCourseVideoRedPackageMapper;
 import com.fs.course.param.*;
 import com.fs.course.service.*;
 import com.fs.course.service.impl.TencentCloudCosService;
@@ -41,6 +43,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -80,7 +83,8 @@ public class CourseQwController extends AppBaseController {
 
     @Autowired
     private IQwSopService qwSopService;
-
+    @Autowired
+    private FsUserCourseVideoRedPackageMapper fsUserCourseVideoRedPackageMapper;
     @ApiOperation("查询全部公域的课程")
     @GetMapping("/getAppletCourse")
     public R getAppletCourse()
@@ -141,6 +145,7 @@ public class CourseQwController extends AppBaseController {
             Long duration = 0L;
             long tipsTime = 0L;
             int isFinish = 0;
+            int 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);
             }
@@ -152,6 +157,10 @@ public class CourseQwController extends AppBaseController {
             String redisKey = "h5user:watch:duration:" + param.getQwUserId()+ ":" + param.getQwExternalId() + ":" + param.getVideoId();
             String durationStr = redisCache.getCacheObject(redisKey);
             FsCourseWatchLog log = courseWatchLogService.getWatchCourseVideo(param.getUserId(),param.getVideoId(),param.getQwUserId(),param.getQwExternalId());
+            FsUserCourseVideoRedPackage fsUserCourseVideoRedPackage = fsUserCourseVideoRedPackageMapper.selectRedPacketByCompanyCount(param.getVideoId(), null, param.getPeriodId());
+            if (fsUserCourseVideoRedPackage != null && fsUserCourseVideoRedPackage.getRedPacketMoney() !=null && BigDecimal.ZERO.compareTo(fsUserCourseVideoRedPackage.getRedPacketMoney()) != 0) {
+                isRedPackage = 1;
+            }
             if (log==null){
                 return R.error("记录不存在,请联系客服!");
             }
@@ -183,14 +192,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;
             // 从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(), null, param.getPeriodId());
+            if (fsUserCourseVideoRedPackage != null && fsUserCourseVideoRedPackage.getRedPacketMoney() != null && BigDecimal.ZERO.compareTo(fsUserCourseVideoRedPackage.getRedPacketMoney()) != 0) {
+                isRedPackage = 1;
+            }
             if (log==null){
                 return R.error("记录不存在,请联系客服!");
             }
@@ -205,7 +219,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);
         }
 
     }