Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/master'

weifanli 3 anni fa
parent
commit
d318fa5f53

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

@@ -45,5 +45,7 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
      */
     List<CourseSchedule> queryStudentCourse(@Param("studentId") Long studentId, @Param("classDate") String classDate);
 
+    <T> IPage<T> queryLiveTeacherCourse(Page<T> page, @Param("param") Map<String, Object> param);
+
 }
 

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseGroupService.java

@@ -6,7 +6,7 @@ import com.yonge.cooleshow.biz.dal.dto.CheckLiveCourseTimeDto;
 import com.yonge.cooleshow.biz.dal.dto.LiveCourseGroupDto;
 import com.yonge.cooleshow.biz.dal.entity.CourseGroup;
 import com.yonge.cooleshow.biz.dal.entity.CourseTimeEntity;
-import com.yonge.cooleshow.biz.dal.vo.TeacherCourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.CourseGroupVo;
 import com.yonge.cooleshow.common.page.PageInfo;
 
 import java.util.List;
@@ -31,7 +31,7 @@ public interface CourseGroupService extends IService<CourseGroup> {
      *              <p> - row 条数
      *              <p> - page 页数
      */
-    PageInfo<TeacherCourseGroupVo> queryPageLiveCourseGroup(Map<String, Object> param);
+    PageInfo<CourseGroupVo> queryPageLiveCourseGroup(Map<String, Object> param);
 
     void addLiveCourse(LiveCourseGroupDto dto);
 

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

@@ -3,7 +3,8 @@ package com.yonge.cooleshow.biz.dal.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.dao.CourseScheduleDao;
 import com.yonge.cooleshow.biz.dal.entity.CourseSchedule;
-import com.yonge.cooleshow.biz.dal.vo.TeacherCourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.CourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherLiveCourseInfoVo;
 import com.yonge.cooleshow.common.page.PageInfo;
 
 import javax.validation.Valid;
@@ -32,7 +33,7 @@ public interface CourseScheduleService extends IService<CourseSchedule> {
      *              <p> - page 页数
      *              <p> - status 课程状态 NOT_START未开始 ING进行中 COMPLETE已完成
      */
-    PageInfo<TeacherCourseGroupVo> queryTeacherLiveCourse(Map<String, Object> param);
+    PageInfo<TeacherLiveCourseInfoVo> queryTeacherLiveCourse(Map<String, Object> param);
 
     /**
      * 校验该学生大于当前时间并未开始的课程时间和传入时间段有没有交集

+ 7 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseGroupServiceImpl.java

@@ -23,7 +23,8 @@ import com.yonge.cooleshow.biz.dal.service.CoursePlanService;
 import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
 import com.yonge.cooleshow.biz.dal.service.SysConfigService;
 import com.yonge.cooleshow.biz.dal.support.PageUtil;
-import com.yonge.cooleshow.biz.dal.vo.TeacherCourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.CourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.LiveCourseInfoVo;
 import com.yonge.cooleshow.common.exception.BizException;
 import com.yonge.cooleshow.common.page.PageInfo;
 import com.yonge.toolset.utils.date.DateUtil;
@@ -77,6 +78,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
      * @param groupId
      */
     public void queryLiveCourseInfo(Long groupId) {
+        LiveCourseInfoVo result = new LiveCourseInfoVo();
 
     }
 
@@ -89,14 +91,14 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
      *              <p> - row 条数
      *              <p> - page 页数
      */
-    public PageInfo<TeacherCourseGroupVo> queryPageLiveCourseGroup(Map<String, Object> param) {
+    public PageInfo<CourseGroupVo> queryPageLiveCourseGroup(Map<String, Object> param) {
         //查询该月的所有课程
         param.put("teacherId", param.get("teacherId"));
         param.put("groupStatus", param.get("groupStatus"));
         param.put("type", CourseScheduleEnum.LIVE.getCode());
-        Page<TeacherCourseGroupVo> pageInfo = PageUtil.getPageInfo(param);
+        Page<CourseGroupVo> pageInfo = PageUtil.getPageInfo(param);
         pageInfo.setAsc("a.start_time_");
-        IPage<TeacherCourseGroupVo> page = baseMapper.queryTeacherCourseGroup(pageInfo, param);
+        IPage<CourseGroupVo> page = baseMapper.queryTeacherCourseGroup(pageInfo, param);
         return PageUtil.pageInfo(page);
     }
 
@@ -232,6 +234,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
      * <p>1.把前面2节课的时间循环+1周直到填满5节课为止
      * <p>2.如果自动排课时的时间和未来课程时间有冲突则继续往后面延续一周
      *
+     * @param teacherId 老师id
      * @param totalCourseNum 总课程数量
      * @param paramTimeList  当前课程的时间段
      * @return 自动排课后的全部课时

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

@@ -13,7 +13,8 @@ import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
 import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
 import com.yonge.cooleshow.biz.dal.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.support.WrapperUtil;
-import com.yonge.cooleshow.biz.dal.vo.TeacherCourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.CourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherLiveCourseInfoVo;
 import com.yonge.cooleshow.common.exception.BizException;
 import com.yonge.cooleshow.common.page.PageInfo;
 import com.yonge.toolset.utils.date.DateUtil;
@@ -67,7 +68,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
      *              <p> - status 课程状态 NOT_START未开始 ING进行中 COMPLETE已完成
      *              <p> - subjectId 声部id
      */
-    public PageInfo<TeacherCourseGroupVo> queryTeacherLiveCourse(Map<String, Object> param) {
+    public PageInfo<TeacherLiveCourseInfoVo> queryTeacherLiveCourse(Map<String, Object> param) {
         String status = WrapperUtil.toStr(param, "status", "课程状态不能为空!");
         CourseScheduleEnum.existCourseState(status, "查询条件错误,课程状态不正确");
         Integer year = WrapperUtil.toInt(param, "year", "查询时间年份不能为空!");
@@ -81,9 +82,9 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         param.put("endDate", lastDay.toString());
         param.put("teacherId", getSysUser().getId());
         param.put("type", CourseScheduleEnum.LIVE.getCode());
-        Page<TeacherCourseGroupVo> pageInfo = PageUtil.getPageInfo(param);
+        Page<TeacherLiveCourseInfoVo> pageInfo = PageUtil.getPageInfo(param);
         pageInfo.setAsc("a.start_time_");
-        IPage<TeacherCourseGroupVo> page = courseGroupService.getDao().queryTeacherCourseGroup(pageInfo, param);
+        IPage<TeacherLiveCourseInfoVo> page = baseMapper.queryLiveTeacherCourse(pageInfo, param);
         return PageUtil.pageInfo(page);
     }
 

+ 24 - 14
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherCourseGroupVo.java → cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseGroupVo.java

@@ -14,7 +14,7 @@ import java.util.Date;
  * Created by 2022-03-29
  */
 @ApiModel(value = "TeacherCourseGroupVo", description = "课程组信息")
-public class TeacherCourseGroupVo implements Serializable {
+public class CourseGroupVo implements Serializable {
 
     @ApiModelProperty(value = "课程组id")
     private Long courseGroupId;
@@ -26,12 +26,11 @@ public class TeacherCourseGroupVo implements Serializable {
     private String subjectName;
 
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @ApiModelProperty(value = "开始时间")
-    private Date startTime;
+    @ApiModelProperty(value = "第一节课开始时间")
+    private Date courseStartTime;
 
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @ApiModelProperty(value = "结束时间")
-    private Date endTime;
+    @ApiModelProperty(value = "单节课时长")
+    private Integer singleCourseMinutes;
 
     @ApiModelProperty(value = "课程状态 NOT_START未开始 ING进行中 COMPLETE已完成 CANCEL已取消")
     private String status;
@@ -54,6 +53,9 @@ public class TeacherCourseGroupVo implements Serializable {
     @ApiModelProperty(value = "课程数")
     private Integer courseNum;
 
+    @ApiModelProperty(value = "课程介绍")
+    private String courseIntroduce;
+
     public Long getCourseGroupId() {
         return courseGroupId;
     }
@@ -78,20 +80,20 @@ public class TeacherCourseGroupVo implements Serializable {
         this.subjectName = subjectName;
     }
 
-    public Date getStartTime() {
-        return startTime;
+    public Date getCourseStartTime() {
+        return courseStartTime;
     }
 
-    public void setStartTime(Date startTime) {
-        this.startTime = startTime;
+    public void setCourseStartTime(Date courseStartTime) {
+        this.courseStartTime = courseStartTime;
     }
 
-    public Date getEndTime() {
-        return endTime;
+    public Integer getSingleCourseMinutes() {
+        return singleCourseMinutes;
     }
 
-    public void setEndTime(Date endTime) {
-        this.endTime = endTime;
+    public void setSingleCourseMinutes(Integer singleCourseMinutes) {
+        this.singleCourseMinutes = singleCourseMinutes;
     }
 
     public String getStatus() {
@@ -149,4 +151,12 @@ public class TeacherCourseGroupVo implements Serializable {
     public void setCourseNum(Integer courseNum) {
         this.courseNum = courseNum;
     }
+
+    public String getCourseIntroduce() {
+        return courseIntroduce;
+    }
+
+    public void setCourseIntroduce(String courseIntroduce) {
+        this.courseIntroduce = courseIntroduce;
+    }
 }

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

@@ -0,0 +1,104 @@
+package com.yonge.cooleshow.biz.dal.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yonge.cooleshow.biz.dal.entity.CourseTimeEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author hgw
+ * Created by 2022-04-06
+ */
+@ApiModel(value = "LiveCourseInfoVo", description = "直播课详情")
+public class LiveCourseInfoVo extends CourseGroupVo implements Serializable {
+
+    @ApiModelProperty(value = "教学计划")
+    private List<PlanVo> planList;
+
+    @ApiModelProperty(value = "学员列表")
+    private List<CourseBuyStudentVo> studentList;
+
+    @ApiModel(value = "PlanVo", description = "教学计划")
+    public static class PlanVo extends CourseTimeEntity implements Serializable {
+
+        @ApiModelProperty(value = "课堂编号-第几堂课")
+        private Integer classNum;
+
+        @ApiModelProperty(value = "教学计划/最多200字")
+        private String plan;
+
+        public Integer getClassNum() {
+            return classNum;
+        }
+
+        public void setClassNum(Integer classNum) {
+            this.classNum = classNum;
+        }
+
+        public String getPlan() {
+            return plan;
+        }
+
+        public void setPlan(String plan) {
+            this.plan = plan;
+        }
+    }
+
+    @ApiModel(value = "CourseBuyStudentVo", description = "学员列表")
+    public static class CourseBuyStudentVo implements Serializable {
+
+        @ApiModelProperty(value = "学员id")
+        private Long studentId;
+
+        @ApiModelProperty(value = "学员名称")
+        private String studentName;
+
+        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+        @ApiModelProperty(value = "购买时间")
+        private Date createTime;
+
+        public Long getStudentId() {
+            return studentId;
+        }
+
+        public void setStudentId(Long studentId) {
+            this.studentId = studentId;
+        }
+
+        public String getStudentName() {
+            return studentName;
+        }
+
+        public void setStudentName(String studentName) {
+            this.studentName = studentName;
+        }
+
+        public Date getCreateTime() {
+            return createTime;
+        }
+
+        public void setCreateTime(Date createTime) {
+            this.createTime = createTime;
+        }
+    }
+
+    public List<PlanVo> getPlanList() {
+        return planList;
+    }
+
+    public void setPlanList(List<PlanVo> planList) {
+        this.planList = planList;
+    }
+
+    public List<CourseBuyStudentVo> getStudentList() {
+        return studentList;
+    }
+
+    public void setStudentList(List<CourseBuyStudentVo> studentList) {
+        this.studentList = studentList;
+    }
+}

+ 106 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/TeacherLiveCourseInfoVo.java

@@ -0,0 +1,106 @@
+package com.yonge.cooleshow.biz.dal.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @author hgw
+ * Created by 2022-04-06
+ */
+@ApiModel(value = "TeacherLiveCourseInfoVo", description = "老师直播课课程")
+public class TeacherLiveCourseInfoVo implements Serializable {
+
+    @ApiModelProperty(value = "课程组id")
+    private Long courseGroupId;
+
+    @ApiModelProperty(value = "名称")
+    private String courseGroupName;
+
+    @ApiModelProperty(value = "声部名称")
+    private String subjectName;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "开始时间")
+    private Date startTime;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "结束时间")
+    private Date endTime;
+
+    @ApiModelProperty(value = "课程状态 NOT_START未开始 ING进行中 COMPLETE已完成 CANCEL已取消")
+    private String status;
+
+    @ApiModelProperty(value = "课程人数")
+    private Integer studentCount;
+
+    @ApiModelProperty(value = "课程图片")
+    private String backgroundPic;
+
+    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 getSubjectName() {
+        return subjectName;
+    }
+
+    public void setSubjectName(String subjectName) {
+        this.subjectName = subjectName;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public Integer getStudentCount() {
+        return studentCount;
+    }
+
+    public void setStudentCount(Integer studentCount) {
+        this.studentCount = studentCount;
+    }
+
+    public String getBackgroundPic() {
+        return backgroundPic;
+    }
+
+    public void setBackgroundPic(String backgroundPic) {
+        this.backgroundPic = backgroundPic;
+    }
+}

+ 3 - 3
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseGroupMapper.xml

@@ -43,15 +43,15 @@
         </foreach>
     </insert>
 
-    <select id="queryTeacherCourseGroup" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherCourseGroupVo">
+    <select id="queryTeacherCourseGroup" resultType="com.yonge.cooleshow.biz.dal.vo.CourseGroupVo">
         select
         b.id_                         as courseGroupId,
         b.name_                       as courseGroupName,
         s.name_                       as subjectName,
         a.teacher_id_                 as teacherId,
         u.real_name_                  as teacherName,
-        a.start_time_                 as startTime,
-        a.end_time_                   as endTime,
+        b.course_start_time_          as courseStartTime,
+        b.single_course_minutes_      as singleCourseMinutes,
         a.status_                     as `status`,
         ifnull(a.pre_student_num_, 0) as studentCount,
         b.background_pic_             as backgroundPic,

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

@@ -100,4 +100,28 @@
         order by b.start_time_ desc
     </select>
 
+    <select id="queryLiveTeacherCourse" resultType="com.yonge.cooleshow.biz.dal.vo.TeacherLiveCourseInfoVo">
+        select
+        b.id_ as courseGroupId,
+        b.name_ as courseGroupName,
+        s.name_ as subjectName,
+        a.start_time_ as startTime,
+        a.end_time_ as endTime,
+        a.status_ as `status`,
+        a.pre_student_num_ as studentCount,
+        b.background_pic_ as backgroundPic
+        from course_schedule as a
+        left join course_group as b on a.course_group_id_ = b.id_
+        left join subject as s on b.subject_id_ = s.id_
+        where b.teacher_id_ = #{param.teacherId}
+        and a.lock_ = 0
+        and a.status_ = #{param.status}
+        and a.type_ = #{param.type}
+        <![CDATA[ AND a.class_date_  >= #{param.startDate} ]]>
+        <![CDATA[ AND a.class_date_  <= #{param.endDate} ]]>
+        <if test="param.subjectId != null">
+            AND b.subject_id_ = #{param.subjectId}
+        </if>
+    </select>
+
 </mapper>

+ 3 - 3
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/CourseGroupController.java

@@ -5,7 +5,7 @@ import com.yonge.cooleshow.biz.dal.dto.CheckLiveCourseTimeDto;
 import com.yonge.cooleshow.biz.dal.dto.LiveCourseGroupDto;
 import com.yonge.cooleshow.biz.dal.entity.CourseTimeEntity;
 import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
-import com.yonge.cooleshow.biz.dal.vo.TeacherCourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.CourseGroupVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.page.PageInfo;
@@ -42,9 +42,9 @@ public class CourseGroupController extends BaseController {
             @ApiImplicitParam(name = "page", dataType = "Integer", value = "页数"),
             @ApiImplicitParam(name = "rows", dataType = "Integer", value = "每页数量"),
     })
-    @ApiOperation("分页查询课程组列表")
+    @ApiOperation("分页查询直播课课程组列表")
     @PostMapping("/queryPageCourseGroup")
-    public HttpResponseResult<PageInfo<TeacherCourseGroupVo>> queryPageLiveCourseGroup(@RequestBody Map<String, Object> param) {
+    public HttpResponseResult<PageInfo<CourseGroupVo>> queryPageLiveCourseGroup(@RequestBody Map<String, Object> param) {
         return succeed(courseGroupService.queryPageLiveCourseGroup(param));
     }
 

+ 3 - 2
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/CourseScheduleController.java

@@ -2,7 +2,8 @@ package com.yonge.cooleshow.teacher.controller;
 
 
 import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
-import com.yonge.cooleshow.biz.dal.vo.TeacherCourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.CourseGroupVo;
+import com.yonge.cooleshow.biz.dal.vo.TeacherLiveCourseInfoVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.page.PageInfo;
@@ -44,7 +45,7 @@ public class CourseScheduleController extends BaseController {
     })
     @ApiOperation("老师端-首页-我的课程-直播课")
     @PostMapping("/queryTeacherLiveCourse")
-    public HttpResponseResult<PageInfo<TeacherCourseGroupVo>> queryTeacherLiveCourse(@RequestBody Map<String, Object> param) {
+    public HttpResponseResult<PageInfo<TeacherLiveCourseInfoVo>> queryTeacherLiveCourse(@RequestBody Map<String, Object> param) {
         return succeed(courseScheduleService.queryTeacherLiveCourse(param));
     }