Browse Source

Merge branch 'master' of http://git.dayaedu.com/yonge/cooleshow

liujunchi 3 years ago
parent
commit
0b90c3f2b7

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

@@ -3,9 +3,13 @@ package com.yonge.cooleshow.biz.dal.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.yonge.cooleshow.biz.dal.dto.search.MyCourseSearch;
+import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonGroupSearch;
 import com.yonge.cooleshow.biz.dal.entity.CourseSchedule;
+import com.yonge.cooleshow.biz.dal.vo.MyCourseVo;
 import com.yonge.cooleshow.biz.dal.vo.StudentTotalVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherTotalVo;
+import com.yonge.cooleshow.biz.dal.vo.VideoLessonGroupVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -58,5 +62,7 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
      */
     <T> IPage<T> queryLiveTeacherCourse(Page<T> page, @Param("param") Map<String, Object> param);
 
+    //根据老师id查询购课学员
+    List<MyCourseVo> selectPage(IPage page, @Param("param") MyCourseSearch query);
 }
 

+ 61 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MyCourseSearch.java

@@ -0,0 +1,61 @@
+package com.yonge.cooleshow.biz.dal.dto.search;
+
+import com.yonge.cooleshow.common.page.QueryInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+/**
+ * @Author: cy
+ * @Date: 2022/4/11
+ */
+@ApiModel(value = "MyCourseSearch")
+public class MyCourseSearch extends QueryInfo {
+    @ApiModelProperty(value = "课程状态(NOT_START:未开始 ING:进行中 COMPLETE:已完成 CANCEL:已取消)")
+    private String status;
+
+    @ApiModelProperty(value = "上课日期")
+    private String classDate;
+
+    @ApiModelProperty(value = "声部id")
+    private Integer subjectId;
+
+    @ApiModelProperty(value = "老师id")
+    private Long teacherId;
+
+//    @ApiModelProperty(value = "筛选条件")
+//    private String search;
+
+    public Long getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Long teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getClassDate() {
+        return classDate;
+    }
+
+    public void setClassDate(String classDate) {
+        this.classDate = classDate;
+    }
+
+    public Integer getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(Integer subjectId) {
+        this.subjectId = subjectId;
+    }
+}

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

@@ -1,9 +1,12 @@
 package com.yonge.cooleshow.biz.dal.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.dao.CourseScheduleDao;
+import com.yonge.cooleshow.biz.dal.dto.search.MyCourseSearch;
 import com.yonge.cooleshow.biz.dal.entity.CourseCalendarEntity;
 import com.yonge.cooleshow.biz.dal.entity.CourseSchedule;
+import com.yonge.cooleshow.biz.dal.vo.MyCourseVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherLiveCourseInfoVo;
 import com.yonge.cooleshow.common.page.PageInfo;
 
@@ -117,5 +120,6 @@ public interface CourseScheduleService extends IService<CourseSchedule> {
      */
     List<CourseCalendarEntity> createLiveCourseCalendar(Map<String, Object> param);
 
+    IPage<MyCourseVo> myCourse(IPage<MyCourseVo> page, MyCourseSearch search);
 }
 

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

@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dto.search.MyCourseSearch;
+import com.yonge.cooleshow.biz.dal.vo.MyCourseVo;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.biz.dal.dao.CourseScheduleDao;
 import com.yonge.cooleshow.biz.dal.entity.CourseCalendarEntity;
@@ -421,5 +423,15 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
                 .orElseThrow(() -> new BizException("用户不存在"));
     }
 
+
+    /**
+     * @Description: 老师端-首页-我的课程-陪练课
+     * @Author: cy
+     * @Date: 2022/4/11
+     */
+    @Override
+    public IPage<MyCourseVo> myCourse(IPage<MyCourseVo> page, MyCourseSearch search) {
+        return page.setRecords(baseMapper.selectPage(page, search));
+    }
 }
 

+ 125 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/MyCourseVo.java

@@ -0,0 +1,125 @@
+package com.yonge.cooleshow.biz.dal.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Author: cy
+ * @Date: 2022/4/11
+ */
+@ApiModel(value = "MyCourseVo")
+public class MyCourseVo implements Serializable {
+    @ApiModelProperty(value = "课表id")
+    private Long id;
+
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    @ApiModelProperty(value = "用户姓名")
+    private String userName;
+
+    @ApiModelProperty(value = "头像地址")
+    private String avatar;
+
+    @ApiModelProperty(value = "上课日期")
+    private Date classDate;
+
+    @ApiModelProperty(value = "上课时间")
+    private Date startTime;
+
+    @ApiModelProperty(value = "下课时间")
+    private Date endTime;
+
+    @ApiModelProperty(value = "课程状态(NOT_START:未开始 ING:进行中 COMPLETE:已完成 CANCEL:已取消)")
+    private String status;
+
+    @ApiModelProperty(value = "声部id")
+    private Integer subjectId;
+
+    @ApiModelProperty(value = "声部名称")
+    private String subjectName;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getAvatar() {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar) {
+        this.avatar = avatar;
+    }
+
+    public Date getClassDate() {
+        return classDate;
+    }
+
+    public void setClassDate(Date classDate) {
+        this.classDate = classDate;
+    }
+
+    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 getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(Integer subjectId) {
+        this.subjectId = subjectId;
+    }
+
+    public String getSubjectName() {
+        return subjectName;
+    }
+
+    public void setSubjectName(String subjectName) {
+        this.subjectName = subjectName;
+    }
+}
+

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

@@ -121,5 +121,33 @@
             AND b.subject_id_ = #{param.subjectId}
         </if>
     </select>
+    <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.MyCourseVo">
+        SELECT
+            u.id_ AS userId,
+            u.username_ AS userName,
+            u.avatar_ AS avatar,
+            cs.class_date_ AS classDate,
+            cs.start_time_ AS startTime,
+            cs.end_time_ AS endTime,
+            cs.status_ AS `status`,
+            g.subject_id_ AS subjectId,
+            sb.name_ AS subjectName
+        FROM course_schedule_student_payment p
+        LEFT JOIN sys_user u ON p.user_id_ =u.id_
+        LEFT JOIN course_schedule cs ON p.course_id_=cs.id_
+        LEFT JOIN course_group g ON p.course_group_id_ = g.id_
+        LEFT JOIN `subject` sb ON g.subject_id_=sb.id_
+        WHERE p.course_id_ IN
+        (SELECT s.id_ FROM course_schedule s WHERE s.type_='PRACTICE' AND s.teacher_id_=#{param.teacherId})
+        <if test="param.status !=null and param.status !=''">
+            AND cs.status_ = #{param.status}
+        </if>
+        <if test="param.subjectId !=null">
+            AND g.subject_id_ = #{param.subjectId}
+        </if>
+        <if test="param.classDate !=null and param.classDate !=''">
+            AND cs.class_date_ = #{param.classDate}
+        </if>
+    </select>
 
 </mapper>

+ 22 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/CourseScheduleController.java

@@ -1,9 +1,17 @@
 package com.yonge.cooleshow.teacher.controller;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dto.search.MyCourseSearch;
+import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonGroupSearch;
 import com.yonge.cooleshow.biz.dal.entity.CourseCalendarEntity;
 import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
+import com.yonge.cooleshow.biz.dal.support.PageUtil;
+import com.yonge.cooleshow.biz.dal.vo.MyCourseVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherLiveCourseInfoVo;
+import com.yonge.cooleshow.biz.dal.vo.VideoLessonGroupVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.page.PageInfo;
@@ -11,6 +19,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -35,6 +44,8 @@ public class CourseScheduleController extends BaseController {
      */
     @Resource
     private CourseScheduleService courseScheduleService;
+    @Resource
+    private SysUserFeignService sysUserFeignService;
 
     @ApiImplicitParams({
             @ApiImplicitParam(name = "year", dataType = "Integer", value = "年"),
@@ -63,5 +74,16 @@ public class CourseScheduleController extends BaseController {
         return succeed(courseScheduleService.createLiveCourseCalendar(param));
     }
 
+    @ApiOperation("老师端-首页-我的课程-陪练课")
+    @PostMapping("/myCourse")
+    public HttpResponseResult<PageInfo<MyCourseVo>> myCourse(@RequestBody MyCourseSearch search) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        search.setTeacherId(user.getId());
+        IPage<MyCourseVo> pages = courseScheduleService.myCourse(PageUtil.getPage(search), search);
+        return succeed(PageUtil.pageInfo(pages));
+    }
 }