瀏覽代碼

Merge branch 'correct' of http://gogs.seec.seecoder.cn/TuBinYan/course-learning-backend into incorrect

 Conflicts:
	Iteration2.md
wanghongkai 5 年之前
父節點
當前提交
b191464bfe

+ 2 - 2
src/main/java/cn/seecoder/courselearning/controller/coupon/CourseController.java

@@ -58,8 +58,8 @@ public class CourseController {
      * @param page 页码数
      */
     @GetMapping("/hot/{page}")
-    public PageInfo<CourseVO> getHotCourses(@PathVariable Integer page) {
-        return courseService.getHotCourses(page, Constant.COURSE_PAGE_SIZE);
+    public PageInfo<CourseVO> getHotCourses(@PathVariable Integer page, Integer uid) {
+        return courseService.getHotCourses(page, Constant.COURSE_PAGE_SIZE,uid);
     }
 
     /**

+ 1 - 1
src/main/java/cn/seecoder/courselearning/service/course/CourseService.java

@@ -14,7 +14,7 @@ public interface CourseService {
     // 根据分类,分页查询课程
     PageInfo<CourseVO> getCoursesByType(Integer currPage, Integer pageSize, Integer uid, String type);
     // 分页获取热门课程列表
-    PageInfo<CourseVO> getHotCourses(Integer currPage, Integer pageSize);
+    PageInfo<CourseVO> getHotCourses(Integer currPage, Integer pageSize, Integer uid);
     // 查询用户所有已购买的课程
     List<CourseVO> getBoughtCourses(Integer uid);
     // 查询教师所有可管理的课程

+ 26 - 0
src/main/java/cn/seecoder/courselearning/serviceimpl/coupon/coupondeliverstrategy/CourseLikeDeliverStrategy.java

@@ -1,7 +1,9 @@
 package cn.seecoder.courselearning.serviceimpl.coupon.coupondeliverstrategy;
 
 import cn.seecoder.courselearning.mapperservice.course.CourseLikesMapper;
+import cn.seecoder.courselearning.mapperservice.course.CourseMapper;
 import cn.seecoder.courselearning.po.coupon.Coupon;
+import cn.seecoder.courselearning.po.course.Course;
 import cn.seecoder.courselearning.po.user.User;
 import cn.seecoder.courselearning.service.coupon.coupondeliverstrategy.CouponDeliverStrategy;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -18,9 +20,33 @@ public class CourseLikeDeliverStrategy implements CouponDeliverStrategy {
     @Autowired
     protected CourseLikesMapper courseLikesMapper;
 
+    @Autowired
+    protected CourseMapper courseMapper;
+
+    /**
+     * 这里实现的逻辑为如果给extra中courseId对应的课程点过赞,则只要优惠券适用范围是该课程同学校的其他所有课程,则可以发放
+     * @param user 用户
+     * @param coupon 优惠券
+     * @param extra 额外的判断数据
+     * @return
+     */
     @Override
     public boolean canDeliver(User user, Coupon coupon, Map<String, String> extra) {
+        String courseIdStr = extra.get("courseId");
+        if (courseIdStr == null) return false;
+        Integer courseId = Integer.valueOf(courseIdStr);
         // 获取用户点赞数
+        int result = courseLikesMapper.count(user.getId(), courseId);
+        if (result == 1) {
+            // 判断优惠券的适用范围
+            Course course = courseMapper.selectByPrimaryKey(courseId);
+            // 判断能否适用
+            if (coupon.getScope().canUse(course, coupon)) {
+                return true;
+            } else {
+                return false;
+            }
+        }
         return false;
     }
 }

+ 2 - 2
src/main/java/cn/seecoder/courselearning/serviceimpl/course/CourseServiceImpl.java

@@ -51,11 +51,11 @@ public class CourseServiceImpl implements CourseService {
     }
 
     @Override
-    public PageInfo<CourseVO> getHotCourses(Integer currPage, Integer pageSize) {
+    public PageInfo<CourseVO> getHotCourses(Integer currPage, Integer pageSize, Integer uid) {
         if(currPage==null || currPage<1) currPage=1;
         PageHelper.startPage(currPage, pageSize);
         PageInfo<Course> po = new PageInfo<>(courseMapper.selectHotCourses());
-        return getCourseVOPageInfo(null, po);
+        return getCourseVOPageInfo(uid, po);
     }
 
     @Override