Kaynağa Gözat

修复看课接口

caoliqin 1 ay önce
ebeveyn
işleme
f3ae58d507

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

@@ -301,7 +301,7 @@ public interface FsCourseWatchLogMapper extends BaseMapper<FsCourseWatchLog> {
     @Select("select log_id from fs_course_watch_log where create_time < '2025-03-01'")
     List<Long> selectFsCourseWatchLogByLastmonth();
 
-    FsCourseWatchLog getWatchLogByFsUser(@Param("videoId") Long videoId, @Param("fsUserId") Long fsUserId);
+    FsCourseWatchLog getWatchLogByFsUser(@Param("videoId") Long videoId, @Param("fsUserId") Long fsUserId, @Param("companyUserId") Long companyUserId);
 
     @Select("select * from fs_course_watch_log " +
             "where video_id = #{videoId} " +

+ 6 - 0
fs-service-system/src/main/java/com/fs/course/param/newfs/FsUserCourseVideoLinkParam.java

@@ -3,10 +3,12 @@ package com.fs.course.param.newfs;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotNull;
 import java.io.Serializable;
 
 @Data
 public class FsUserCourseVideoLinkParam implements Serializable {
+    @NotNull(message = "销售id不能为空")
     @ApiModelProperty(value = "视频id")
     private Long videoId;
 
@@ -18,4 +20,8 @@ public class FsUserCourseVideoLinkParam implements Serializable {
 
     @ApiModelProperty(value = "链接类型,0:正常链接;1:应急链接")
     private Integer linkType;
+
+    @NotNull(message = "销售id不能为空")
+    @ApiModelProperty(value = "销售id")
+    private Long companyUserId;
 }

+ 1 - 1
fs-service-system/src/main/java/com/fs/course/service/IFsCourseWatchLogService.java

@@ -125,5 +125,5 @@ public interface IFsCourseWatchLogService extends IService<FsCourseWatchLog> {
      * @param fsUserId
      * @return
      */
-    FsCourseWatchLog getWatchLogByFsUser(Long videoId, Long fsUserId);
+    FsCourseWatchLog getWatchLogByFsUser(Long videoId, Long fsUserId, Long companyUserId);
 }

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

@@ -160,7 +160,7 @@ public class FsCourseQuestionBankServiceImpl implements IFsCourseQuestionBankSer
         }else {
             FsCourseWatchLog log;
             if(isH5User){
-               log = courseWatchLogMapper.getWatchLogByFsUser(param.getVideoId(), param.getUserId());
+               log = courseWatchLogMapper.getWatchLogByFsUser(param.getVideoId(), param.getUserId(), param.getCompanyUserId());
             } else {
                 log = courseWatchLogMapper.getWatchCourseVideo(param.getUserId(), param.getVideoId(), param.getQwUserId(), param.getQwExternalId());
             }

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

@@ -848,8 +848,8 @@ public class FsCourseWatchLogServiceImpl extends ServiceImpl<FsCourseWatchLogMap
     }
 
     @Override
-    public FsCourseWatchLog getWatchLogByFsUser(Long videoId, Long fsUserId) {
-        return fsCourseWatchLogMapper.getWatchLogByFsUser(videoId, fsUserId);
+    public FsCourseWatchLog getWatchLogByFsUser(Long videoId, Long fsUserId, Long companyUserId) {
+        return fsCourseWatchLogMapper.getWatchLogByFsUser(videoId, fsUserId, companyUserId);
     }
 
     private void processDelCourseLogs(List<Long> logIds) {

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

@@ -59,6 +59,7 @@ import java.time.LocalDateTime;
 import java.util.Collections;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicLong;
@@ -961,11 +962,11 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
         String durationCurrent = redisCache.getCacheObject(redisKey);
 
         //3、获取看课记录
-        FsCourseWatchLog watchLog = courseWatchLogMapper.getWatchLogByFsUser(param.getVideoId(), param.getFsUserId());
+        FsCourseWatchLog watchLog = courseWatchLogMapper.getWatchLogByFsUser(param.getVideoId(), param.getFsUserId(), param.getCompanyUserId());
         if (durationCurrent != null) {
             duration = Long.parseLong(durationCurrent);
         } else {
-            duration = watchLog.getDuration();
+            duration = Objects.isNull(watchLog) ? 0 : watchLog.getDuration();
         }
 //
 //        if (course.getDuration()!=null){

+ 1 - 0
fs-service-system/src/main/resources/mapper/course/FsCourseWatchLogMapper.xml

@@ -676,6 +676,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             send_type = 1
           AND video_id = #{videoId}
           AND user_id = #{fsUserId}
+          AND company_user_id = #{companyUserId}
     </select>
     <select id="selectFsCourseWatchLogStatisticsListVONewCount"
             resultType="java.lang.Long">

+ 1 - 0
fs-user-app/src/main/java/com/fs/app/controller/CourseWxH5Controller.java

@@ -78,6 +78,7 @@ public class CourseWxH5Controller extends AppBaseController {
     @ApiOperation("H5课程详情")
     @GetMapping("/videoDetails")
     public ResponseResult<FsUserCourseVideoLinkDetailsVO> getCourseVideoDetails(FsUserCourseVideoLinkParam param) {
+        param.setFsUserId(Long.parseLong(getUserId()));
         return courseVideoService.getLinkCourseVideoDetails(param);
     }