瀏覽代碼

系统最终完善

Yumin 6 年之前
父節點
當前提交
c12e6cb082

+ 6 - 3
src/main/java/cn/minbb/edu/controller/rest/CourseController.java

@@ -38,13 +38,16 @@ public class CourseController {
 
     @PostMapping("hot")
     public ResponseResult<Course> courseHot() {
-        return ResponseResult.ok(true).code(1).dataset(courseService.findAll());
+        List<Course> courseList = courseService.findTop6Hot();
+        int count = courseService.countAllHot();
+        return ResponseResult.ok(true).code(1).message(String.format("%s", count)).dataset(courseList);
     }
 
     @PostMapping("excellent")
     public ResponseResult<Course> courseExcellent() {
-        List<Course> courseList = courseService.findAll();
-        return ResponseResult.ok(true).code(1).message(courseList.size() + "").dataset(courseList);
+        List<Course> courseList = courseService.findTop6Excellent();
+        int count = courseService.countAllExcellent();
+        return ResponseResult.ok(true).code(1).message(String.format("%s", count)).dataset(courseList);
     }
 
     @PostMapping("all")

+ 10 - 0
src/main/java/cn/minbb/edu/model/Course.java

@@ -49,6 +49,16 @@ public class Course implements Serializable {
     @Column(name = "remark", columnDefinition = "VARCHAR(255) COMMENT '备注'")
     private String remark;
 
+    @Getter
+    @Setter
+    @Column(name = "count_hot", nullable = false, columnDefinition = "INT COMMENT '热门'")
+    private Integer countHot;
+
+    @Getter
+    @Setter
+    @Column(name = "count_excellent", nullable = false, columnDefinition = "INT COMMENT '优秀'")
+    private Integer countExcellent;
+
     @Getter
     @Setter
     @Column(name = "subject_id", nullable = false, columnDefinition = "INT COMMENT '关联学科'")

+ 5 - 0
src/main/java/cn/minbb/edu/model/repository/CourseRepository.java

@@ -1,10 +1,15 @@
 package cn.minbb.edu.model.repository;
 
 import cn.minbb.edu.model.Course;
+import org.springframework.data.domain.Sort;
 import org.springframework.data.jpa.repository.JpaRepository;
 
 import java.util.List;
 
 public interface CourseRepository extends JpaRepository<Course, Integer> {
     List<Course> findAllByIdIn(List<Integer> ids);
+
+    List<Course> findTop6ByIsEnabledTrue(Sort sort);
+
+    int countByIsEnabledTrue(Sort sort);
 }

+ 8 - 0
src/main/java/cn/minbb/edu/service/CourseService.java

@@ -16,4 +16,12 @@ public interface CourseService {
     List<Course> findAllBySubjectId(Integer subjectId);
 
     List<Course> findAllByIdIn(List<Integer> ids);
+
+    List<Course> findTop6Hot();
+
+    List<Course> findTop6Excellent();
+
+    int countAllHot();
+
+    int countAllExcellent();
 }

+ 22 - 0
src/main/java/cn/minbb/edu/service/impl/CourseServiceImpl.java

@@ -22,6 +22,8 @@ public class CourseServiceImpl implements CourseService {
 
     @Override
     public Course save(Course course) {
+        course.setCountHot(0);
+        course.setCountExcellent(0);
         course.setIsEnabled(true);
         return courseRepository.save(course);
     }
@@ -57,4 +59,24 @@ public class CourseServiceImpl implements CourseService {
     public List<Course> findAllByIdIn(List<Integer> ids) {
         return courseRepository.findAllByIdIn(ids);
     }
+
+    @Override
+    public List<Course> findTop6Hot() {
+        return courseRepository.findTop6ByIsEnabledTrue(SortTools.basicDescSort("countHot"));
+    }
+
+    @Override
+    public List<Course> findTop6Excellent() {
+        return courseRepository.findTop6ByIsEnabledTrue(SortTools.basicDescSort("countExcellent"));
+    }
+
+    @Override
+    public int countAllHot() {
+        return courseRepository.countByIsEnabledTrue(SortTools.basicDescSort("countHot"));
+    }
+
+    @Override
+    public int countAllExcellent() {
+        return courseRepository.countByIsEnabledTrue(SortTools.basicDescSort("countExcellent"));
+    }
 }