Ver código fonte

热门课程

yangfeng 1 ano atrás
pai
commit
0cecc6dca8

+ 25 - 1
web/src/main/java/com/ynfy/app/api/v1/controller/ApiIndexController.java

@@ -2,13 +2,14 @@ package com.ynfy.app.api.v1.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ynfy.buss.banner.service.IBannerService;
+import com.ynfy.buss.course.course.service.ICourseService;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.modules.system.entity.SysAnnouncement;
-import org.jeecg.modules.system.entity.SysPermission;
 import org.jeecg.modules.system.service.ISysAnnouncementService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
@@ -24,6 +25,9 @@ public class ApiIndexController extends ApiBaseController {
     @Autowired
     private ISysAnnouncementService sysAnnouncementService;
 
+    @Autowired
+    private ICourseService courseService;
+
     @PostMapping("/banner/list")
     public Result<?> list() {
         return Result.OK(bannerService.list());
@@ -41,4 +45,24 @@ public class ApiIndexController extends ApiBaseController {
         return Result.OK(sysAnnouncementService.list(query));
     }
 
+    /**
+     * 热门课程
+     *
+     * @return
+     */
+    @GetMapping("/listHotCourse")
+    public Result<?> listHotCourse() {
+        return Result.OK(courseService.listHotCourse(5));
+    }
+
+    /**
+     * 最新考试
+     *
+     * @return
+     */
+    @GetMapping("/listLatestExam")
+    public Result<?> listLatestExam() {
+        return Result.OK();
+    }
+
 }

+ 5 - 0
web/src/main/java/com/ynfy/buss/course/course/mapper/CourseMapper.java

@@ -6,6 +6,8 @@ import com.ynfy.buss.course.course.entity.Course;
 import org.apache.ibatis.annotations.Param;
 import org.jeecg.common.system.vo.LoginUser;
 
+import java.util.List;
+
 /**
  * @Description: course
  * @Author: jeecg-boot
@@ -17,4 +19,7 @@ public interface CourseMapper extends BaseMapper<Course> {
     IPage<Course> selectCourseList(IPage<Course> page, @Param("course") Course course, @Param("user") LoginUser user);
 
     Course queryById(String id);
+
+
+    List<Course> listHotCourse(Integer limit);
 }

+ 24 - 0
web/src/main/java/com/ynfy/buss/course/course/mapper/xml/CourseMapper.xml

@@ -55,4 +55,28 @@
                 LEFT JOIN sys_user u ON c.teacher_id = u.id
         where c.id = #{id}
     </select>
+
+    <select id="listHotCourse" resultType="com.ynfy.buss.course.course.entity.Course">
+        SELECT
+            c.*,
+            tmp.learn_number
+        FROM
+            (
+                SELECT
+                    cc.course_id,
+                    count(
+                            DISTINCT ( ucc.user_id )) AS learn_number
+                FROM
+                    user_course_catalog ucc
+                        LEFT JOIN course_catalog cc ON ucc.course_catalog_id = cc.id
+                GROUP BY
+                    cc.course_id
+                ORDER BY
+                    learn_number DESC
+                    <if test="limit !=null">
+                        LIMIT #{limit}
+                    </if>
+            ) tmp
+                LEFT JOIN course c ON c.id = tmp.course_id
+    </select>
 </mapper>

+ 8 - 0
web/src/main/java/com/ynfy/buss/course/course/service/ICourseService.java

@@ -37,4 +37,12 @@ public interface ICourseService extends IService<Course> {
      * @param course
      */
     void setCourseStudyProcess(List<UserCourseStudyVO> studyList, Course course);
+
+
+    /**
+     * 查询热门课程
+     *
+     * @return
+     */
+    List<Course> listHotCourse(Integer limit);
 }

+ 12 - 0
web/src/main/java/com/ynfy/buss/course/course/service/impl/CourseServiceImpl.java

@@ -104,4 +104,16 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
             course.setCourseStudyProcess(NumberUtil.div(studyVO.getFinishNum(), studyVO.getTaskNum()).doubleValue());
         }
     }
+
+
+    /**
+     * 查询热门课程
+     *
+     * @param limit
+     * @return
+     */
+    @Override
+    public List<Course> listHotCourse(Integer limit) {
+        return courseMapper.listHotCourse(limit);
+    }
 }