Browse Source

Merge remote-tracking branch 'origin/master'

weifanli 2 years ago
parent
commit
337c54153f

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleDao.java

@@ -126,5 +126,8 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
 
     //学生端-首页-视频课
     List<StudentHomePage.Video> selectVideo();
+
+    //学生端-首页-最近一堂课
+    StudentHomePage.RecentCourses selectRecentCourses(Long studentId);
 }
 

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseScheduleService.java

@@ -185,7 +185,7 @@ public interface CourseScheduleService extends IService<CourseSchedule> {
 
     void courseAdjust(CourseAdjustVo adjustVo);
 
-    StudentHomePage queryLiveAndVideo();
+    StudentHomePage queryLiveAndVideo(Long studentId);
 
     TeacherSubjectPrice teacherSubjectPrice(Long teacherId, Long subjectId);
 }

+ 2 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java

@@ -970,10 +970,11 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
      * @Date: 2022/4/22
      */
     @Override
-    public StudentHomePage queryLiveAndVideo() {
+    public StudentHomePage queryLiveAndVideo(Long studentId) {
         StudentHomePage homePage = new StudentHomePage();
         homePage.setLiveList(baseMapper.selectLive());
         homePage.setVideoList(baseMapper.selectVideo());
+        homePage.setRecentCourses(baseMapper.selectRecentCourses(studentId));
         return homePage;
     }
 

+ 104 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/StudentHomePage.java

@@ -18,6 +18,102 @@ public class StudentHomePage implements Serializable {
     private List<Live> liveList;
     @ApiModelProperty(value = "视频课")
     private List<Video> videoList;
+    @ApiModelProperty(value = "最近课程")
+    private RecentCourses recentCourses;
+
+    public static class RecentCourses{
+        @ApiModelProperty(value = "老师id")
+        private Long teacherId;
+        @ApiModelProperty(value = "老师姓名")
+        private String teacherName;
+        @ApiModelProperty(value = "老师头像")
+        private String avatar;
+
+        @ApiModelProperty(value = "课程id")
+        private Long courseId;
+        @ApiModelProperty(value = "课程组id")
+        private Long courseGroupId;
+        @ApiModelProperty(value = "课程组名称")
+        private String courseGroupName;
+        @ApiModelProperty(value = "课程类型(PRACTICE陪练课 LIVE直播课)")
+        private String courseType;
+        @ApiModelProperty(value = "课程状态(NOT_START未开始 ING进行中 )")
+        private String status;
+        @ApiModelProperty(value = "开课时间")
+        private Date courseStartTime;
+
+        public Long getTeacherId() {
+            return teacherId;
+        }
+
+        public void setTeacherId(Long teacherId) {
+            this.teacherId = teacherId;
+        }
+
+        public String getTeacherName() {
+            return teacherName;
+        }
+
+        public void setTeacherName(String teacherName) {
+            this.teacherName = teacherName;
+        }
+
+        public String getAvatar() {
+            return avatar;
+        }
+
+        public void setAvatar(String avatar) {
+            this.avatar = avatar;
+        }
+
+        public Long getCourseId() {
+            return courseId;
+        }
+
+        public void setCourseId(Long courseId) {
+            this.courseId = courseId;
+        }
+
+        public Long getCourseGroupId() {
+            return courseGroupId;
+        }
+
+        public void setCourseGroupId(Long courseGroupId) {
+            this.courseGroupId = courseGroupId;
+        }
+
+        public String getCourseGroupName() {
+            return courseGroupName;
+        }
+
+        public void setCourseGroupName(String courseGroupName) {
+            this.courseGroupName = courseGroupName;
+        }
+
+        public String getCourseType() {
+            return courseType;
+        }
+
+        public void setCourseType(String courseType) {
+            this.courseType = courseType;
+        }
+
+        public String getStatus() {
+            return status;
+        }
+
+        public void setStatus(String status) {
+            this.status = status;
+        }
+
+        public Date getCourseStartTime() {
+            return courseStartTime;
+        }
+
+        public void setCourseStartTime(Date courseStartTime) {
+            this.courseStartTime = courseStartTime;
+        }
+    }
 
     public static class Live {
         @ApiModelProperty(value = "老师id")
@@ -262,5 +358,13 @@ public class StudentHomePage implements Serializable {
     public void setVideoList(List<Video> videoList) {
         this.videoList = videoList;
     }
+
+    public RecentCourses getRecentCourses() {
+        return recentCourses;
+    }
+
+    public void setRecentCourses(RecentCourses recentCourses) {
+        this.recentCourses = recentCourses;
+    }
 }
 

+ 20 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -495,4 +495,24 @@
         WHERE g.audit_status_='PASS'
         ORDER BY g.create_time_ DESC LIMIT 4
     </select>
+    <select id="selectRecentCourses" resultType="com.yonge.cooleshow.biz.dal.vo.StudentHomePage$RecentCourses">
+        SELECT
+            u.id_ AS teacherId,
+            u.username_ AS teacherName,
+            u.avatar_ AS avatar,
+            p.course_group_id_ AS courseGroupId,
+            p.course_id_ AS courseId,
+            g.name_ AS courseGroupName,
+            p.course_type_ AS courseType,
+            s.status_ AS `status`,
+            s.start_time_ AS courseStartTime
+        FROM course_schedule_student_payment p
+        LEFT JOIN course_schedule s ON p.course_id_=s.id_
+        LEFT JOIN sys_user u ON s.teacher_id_=u.id_
+        LEFT JOIN course_group g ON p.course_group_id_=g.id_
+        WHERE p.user_id_=#{studentId}
+        AND s.status_ IN ('NOT_START','ING')
+        ORDER BY ABS(NOW() - s.start_time_) ASC
+        limit 1
+    </select>
 </mapper>

+ 6 - 2
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/StudentCourseScheduleController.java

@@ -127,10 +127,14 @@ public class StudentCourseScheduleController extends BaseController {
         return succeed(courseScheduleService.queryStudentLiveCourse(param));
     }
 
-    @ApiOperation("学生-首页-直播课&视频课")
+    @ApiOperation("学生-首页-直播课&视频课&最近课程")
     @GetMapping("/queryLiveAndVideo")
     public HttpResponseResult<StudentHomePage> queryLiveAndVideo() {
-        return succeed(courseScheduleService.queryLiveAndVideo());
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        return succeed(courseScheduleService.queryLiveAndVideo(user.getId()));
     }
 
     @ApiImplicitParams({