فهرست منبع

Merge remote-tracking branch 'origin/Payment-Configuration' into Payment-Configuration

yfh 6 روز پیش
والد
کامیت
d6fa1f96c0

+ 15 - 0
fs-service/src/main/java/com/fs/course/dto/FsUserCourseVideoDTO.java

@@ -0,0 +1,15 @@
+package com.fs.course.dto;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+@Data
+public class FsUserCourseVideoDTO {
+
+
+    private Long courseId;
+
+    // 课程数量
+    private Integer sectionCount;
+}

+ 5 - 0
fs-service/src/main/java/com/fs/course/mapper/FsUserCourseVideoMapper.java

@@ -3,6 +3,7 @@ package com.fs.course.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fs.course.domain.FsUserCourseVideo;
 import com.fs.course.domain.FsVideoResource;
+import com.fs.course.dto.FsUserCourseVideoDTO;
 import com.fs.course.param.*;
 import com.fs.course.param.newfs.UserCourseVideoPageParam;
 import com.fs.course.vo.*;
@@ -303,4 +304,8 @@ public interface FsUserCourseVideoMapper extends BaseMapper<FsUserCourseVideo> {
             "      AND course_id = #{courseId}")
     List<OptionsVO> selectVideoOptionsByCourseId(@Param("courseId") Long courseId);
 
+    /*
+    * 根据课程id集合查询课程视频数量
+     */
+    List<FsUserCourseVideoDTO> selectCourseVideoCountByCourseIds(@Param("courseIds") List<Long> courseIds);
 }

+ 2 - 0
fs-service/src/main/java/com/fs/course/service/IFsUserCourseVideoService.java

@@ -6,6 +6,7 @@ import com.fs.common.core.domain.R;
 import com.fs.common.core.domain.ResponseResult;
 import com.fs.course.domain.FsUserCourseVideo;
 import com.fs.course.domain.LuckyBagCollectRecord;
+import com.fs.course.dto.FsUserCourseVideoDTO;
 import com.fs.course.param.*;
 import com.fs.course.param.newfs.FsUserCourseAddCompanyUserParam;
 import com.fs.course.param.newfs.FsUserCourseVideoLinkParam;
@@ -298,4 +299,5 @@ public interface IFsUserCourseVideoService extends IService<FsUserCourseVideo> {
     void changeAnswerRewardConfig(FsCourseAnswerRewardParam param, Long companyId);
 
 
+    List<FsUserCourseVideoDTO> selectCourseVideoCountByCourseIds(List<Long> courseIds);
 }

+ 5 - 0
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -39,6 +39,7 @@ import com.fs.course.config.RandomRedPacketConfig;
 import com.fs.course.config.RandomRedPacketRule;
 import com.fs.course.domain.*;
 import com.fs.course.dto.CoursePackageDTO;
+import com.fs.course.dto.FsUserCourseVideoDTO;
 import com.fs.course.mapper.*;
 import com.fs.course.param.*;
 import com.fs.course.param.newfs.FsUserCourseAddCompanyUserParam;
@@ -4961,6 +4962,10 @@ public class FsUserCourseVideoServiceImpl extends ServiceImpl<FsUserCourseVideoM
         }
     }
 
+    @Override
+    public List<FsUserCourseVideoDTO> selectCourseVideoCountByCourseIds(List<Long> courseIds) {
+        return baseMapper.selectCourseVideoCountByCourseIds(courseIds);
+    }
 
 
     private R executeWithdrawal(FsCourseSendRewardUParam param){

+ 4 - 1
fs-service/src/main/java/com/fs/course/vo/FsUserCourseListUVO.java

@@ -48,5 +48,8 @@ public class FsUserCourseListUVO extends BaseEntity
     private String tags;
 
     private String description; //课程简介
-    
+
+    // 课程数量
+    private Integer sectionCount;
+
 }

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

@@ -511,6 +511,15 @@
             #{id}
         </foreach>
     </select>
+    <!-- 根据课程id集合查询课程视频数量   -->
+    <select id="selectCourseVideoCountByCourseIds" resultType="com.fs.course.dto.FsUserCourseVideoDTO">
+        SELECT course_id AS courseId, COUNT(video_id) AS sectionCount FROM fs_user_course_video
+        WHERE is_del = 0 and course_id IN
+        <foreach item="courseId" collection="courseIds" open="(" separator="," close=")">
+            #{courseId}
+        </foreach>
+        GROUP BY course_id
+    </select>
 
     <update id="batchDown" parameterType="String">
         update fs_user_course_video set is_on_put = 1 where video_id in

+ 12 - 0
fs-user-app/src/main/java/com/fs/app/controller/CourseController.java

@@ -8,6 +8,7 @@ import com.fs.common.utils.DateUtils;
 import com.fs.common.utils.ServletUtils;
 import com.fs.common.utils.StringUtils;
 import com.fs.course.domain.*;
+import com.fs.course.dto.FsUserCourseVideoDTO;
 import com.fs.course.param.*;
 import com.fs.course.service.*;
 import com.fs.course.vo.*;
@@ -17,6 +18,7 @@ import com.github.pagehelper.PageInfo;
 import io.jsonwebtoken.Claims;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.models.auth.In;
 import lombok.Synchronized;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,6 +28,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Api("课堂接口")
 @Slf4j
@@ -81,7 +84,16 @@ public class CourseController extends  AppBaseController{
     {
         PageHelper.startPage(param.getPageNum(), param.getPageSize());
         List<FsUserCourseListUVO> list= courseService.selectFsUserCourseListUVO(param);
+        if(list!=null && !list.isEmpty()){
+            // 查询每节课有多少讲
+            List<Long> courseIds = list.stream().map(FsUserCourseListUVO::getCourseId).collect(Collectors.toList());
+            List<FsUserCourseVideoDTO> courseVideoCount=courseVideoService.selectCourseVideoCountByCourseIds(courseIds);
+            Map<Long, Integer> map = courseVideoCount.stream().collect(Collectors.toMap(FsUserCourseVideoDTO::getCourseId, item -> item.getSectionCount()));
+            list.forEach(item ->{ item.setSectionCount(map.get(item.getCourseId()));});
+        }
         PageInfo<FsUserCourseListUVO> listPageInfo=new PageInfo<>(list);
+
+
         return R.ok().put("data",listPageInfo);
     }