Browse Source

Merge remote-tracking branch 'origin/master'

hgw 3 years ago
parent
commit
b781a12ff2
16 changed files with 350 additions and 44 deletions
  1. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleDao.java
  2. 9 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleRepliedDao.java
  3. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleStudentPaymentDao.java
  4. 34 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MyCourseSearch.java
  5. 47 32
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseScheduleReplied.java
  6. 15 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseRepliedService.java
  7. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseScheduleService.java
  8. 108 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseRepliedServiceImpl.java
  9. 26 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java
  10. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetAuthRecordServiceImpl.java
  11. 22 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/MyCourseVo.java
  12. 13 2
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  13. 17 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleRepliedMapper.xml
  14. 3 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml
  15. 48 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/CourseRepliedController.java
  16. 3 3
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/CourseScheduleController.java

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

@@ -67,6 +67,6 @@ 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);
+    List<MyCourseVo> queryTeacherPracticeCourse(IPage page, @Param("param") MyCourseSearch query);
 }
 

+ 9 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleRepliedDao.java

@@ -26,5 +26,13 @@ public interface CourseScheduleRepliedDao extends BaseMapper<CourseScheduleRepli
      * @return: com.yonge.cooleshow.biz.dal.vo.CourseScheduleRepliedVo
 	 */
 	List<CourseScheduleRepliedVo> selectPage(@Param("page") IPage page, @Param("param") CourseScheduleRepliedSearch courseScheduleReplied);
-	
+
+	/**
+	 * @Description: 修改陪练课评论
+	 * @Author: cy
+	 * @Date: 2022/4/12
+	 */
+    void updateReplied(CourseScheduleReplied replied);
+
+    List<Long> selectAll();
 }

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

@@ -35,5 +35,7 @@ public interface CourseScheduleStudentPaymentDao extends BaseMapper<CourseSchedu
      * @param groupId 课程组id
      */
     List<LiveCourseInfoVo.CourseBuyStudentVo> queryStudentInfoByGroupId(@Param("groupId") Long groupId);
+
+    List<Long> selectAll();
 }
 

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

@@ -4,7 +4,7 @@ import com.yonge.cooleshow.common.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
-import java.util.Date;
+import java.util.List;
 
 /**
  * @Author: cy
@@ -24,9 +24,42 @@ public class MyCourseSearch extends QueryInfo {
     @ApiModelProperty(value = "老师id")
     private Long teacherId;
 
+    @ApiModelProperty(value = "0:未评价 1:已评价")
+    private Integer replied;
+
+    @ApiModelProperty(value = "评价学员id")
+    private List<Long> repliedIds;
+
+    @ApiModelProperty(value = "学生姓名")
+    private String studentName;
+
 //    @ApiModelProperty(value = "筛选条件")
 //    private String search;
 
+    public String getStudentName() {
+        return studentName;
+    }
+
+    public void setStudentName(String studentName) {
+        this.studentName = studentName;
+    }
+
+    public Integer getReplied() {
+        return replied;
+    }
+
+    public void setReplied(Integer replied) {
+        this.replied = replied;
+    }
+
+    public List<Long> getRepliedIds() {
+        return repliedIds;
+    }
+
+    public void setRepliedIds(List<Long> repliedIds) {
+        this.repliedIds = repliedIds;
+    }
+
     public Long getTeacherId() {
         return teacherId;
     }

+ 47 - 32
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseScheduleReplied.java

@@ -9,129 +9,144 @@ import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
 import java.util.Date;
+
 import com.fasterxml.jackson.annotation.JsonFormat;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
 /**
  * 课程点评
  */
 @TableName("course_schedule_replied")
 @ApiModel(value = "CourseScheduleReplied对象", description = "课程点评")
 public class CourseScheduleReplied implements Serializable {
-	private static final long serialVersionUID = 1L;
+    private static final long serialVersionUID = 1L;
     @ApiModelProperty("主键 ")
     @TableId(value = "id_", type = IdType.AUTO)
     private Long id;
+
     @ApiModelProperty("学生id ")
-	@TableField(value = "student_id_")
+    @TableField(value = "student_id_")
+    @NotNull(message = "学生id不能为空")
     private Long studentId;
+
     @ApiModelProperty("课程编号 ")
-	@TableField(value = "course_schedule_id_")
+    @TableField(value = "course_schedule_id_")
+    @NotNull(message = "课程编号不能为空")
     private Long courseScheduleId;
+
     @ApiModelProperty("课程组类型PRACTICE、LIVE; ")
-	@TableField(value = "course_group_type_")
+    @TableField(value = "course_group_type_")
     private String courseGroupType;
+
     @ApiModelProperty("课程组编号; ")
-	@TableField(value = "course_group_id_")
+    @TableField(value = "course_group_id_")
+    @NotBlank(message = "课程组编号不能为空")
     private String courseGroupId;
+
     @ApiModelProperty("学员评分 ")
-	@TableField(value = "score_")
+    @TableField(value = "score_")
     private Integer score;
+
     @ApiModelProperty("学员课后评价 ")
-	@TableField(value = "student_replied_")
+    @TableField(value = "student_replied_")
     private String studentReplied;
+
     @ApiModelProperty("老师课后评价 ")
-	@TableField(value = "teacher_replied_")
+    @TableField(value = "teacher_replied_")
     private String teacherReplied;
+
     @ApiModelProperty("创建时间 ")
-	@TableField(value = "create_time_")
+    @TableField(value = "create_time_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
+
     @ApiModelProperty("修改时间 ")
-	@TableField(value = "update_time_")
+    @TableField(value = "update_time_")
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date updateTime;
 
-	public Long getId() {
+    public Long getId() {
         return id;
     }
 
     public void setId(Long id) {
         this.id = id;
     }
-    
-	public Long getStudentId() {
+
+    public Long getStudentId() {
         return studentId;
     }
 
     public void setStudentId(Long studentId) {
         this.studentId = studentId;
     }
-    
-	public Long getCourseScheduleId() {
+
+    public Long getCourseScheduleId() {
         return courseScheduleId;
     }
 
     public void setCourseScheduleId(Long courseScheduleId) {
         this.courseScheduleId = courseScheduleId;
     }
-    
-	public String getCourseGroupType() {
+
+    public String getCourseGroupType() {
         return courseGroupType;
     }
 
     public void setCourseGroupType(String courseGroupType) {
         this.courseGroupType = courseGroupType;
     }
-    
-	public String getCourseGroupId() {
+
+    public String getCourseGroupId() {
         return courseGroupId;
     }
 
     public void setCourseGroupId(String courseGroupId) {
         this.courseGroupId = courseGroupId;
     }
-    
-	public Integer getScore() {
+
+    public Integer getScore() {
         return score;
     }
 
     public void setScore(Integer score) {
         this.score = score;
     }
-    
-	public String getStudentReplied() {
+
+    public String getStudentReplied() {
         return studentReplied;
     }
 
     public void setStudentReplied(String studentReplied) {
         this.studentReplied = studentReplied;
     }
-    
-	public String getTeacherReplied() {
+
+    public String getTeacherReplied() {
         return teacherReplied;
     }
 
     public void setTeacherReplied(String teacherReplied) {
         this.teacherReplied = teacherReplied;
     }
-    
-	public Date getCreateTime() {
+
+    public Date getCreateTime() {
         return createTime;
     }
 
     public void setCreateTime(Date createTime) {
         this.createTime = createTime;
     }
-    
-	public Date getUpdateTime() {
+
+    public Date getUpdateTime() {
         return updateTime;
     }
 
     public void setUpdateTime(Date updateTime) {
         this.updateTime = updateTime;
     }
-    
 }

+ 15 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseRepliedService.java

@@ -0,0 +1,15 @@
+package com.yonge.cooleshow.biz.dal.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.entity.CourseScheduleReplied;
+
+/**
+ * @Author: cy
+ * @Date: 2022/4/12
+ */
+public interface CourseRepliedService extends IService<CourseScheduleReplied> {
+    void replied(CourseScheduleReplied replied, SysUser sysUser);
+
+    CourseScheduleReplied selectReplied(CourseScheduleReplied replied);
+}

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

@@ -132,6 +132,6 @@ public interface CourseScheduleService extends IService<CourseSchedule> {
      */
     List<CourseCalendarEntity> createPracticeCourseCalender(Map<String, Object> param);
 
-    IPage<MyCourseVo> myCourse(IPage<MyCourseVo> page, MyCourseSearch search);
+    IPage<MyCourseVo> queryTeacherPracticeCourse(IPage<MyCourseVo> page, MyCourseSearch search);
 }
 

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

@@ -0,0 +1,108 @@
+package com.yonge.cooleshow.biz.dal.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dao.CourseScheduleDao;
+import com.yonge.cooleshow.biz.dal.dao.CourseScheduleRepliedDao;
+import com.yonge.cooleshow.biz.dal.dao.CourseScheduleStudentPaymentDao;
+import com.yonge.cooleshow.biz.dal.entity.CourseSchedule;
+import com.yonge.cooleshow.biz.dal.entity.CourseScheduleReplied;
+import com.yonge.cooleshow.biz.dal.entity.CourseScheduleStudentPayment;
+import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
+import com.yonge.cooleshow.biz.dal.service.CourseRepliedService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @Author: cy
+ * @Date: 2022/4/12
+ */
+@Service
+public class CourseRepliedServiceImpl extends ServiceImpl<CourseScheduleRepliedDao, CourseScheduleReplied> implements CourseRepliedService {
+    private final static Logger log = LoggerFactory.getLogger(CourseRepliedServiceImpl.class);
+
+    @Autowired
+    private CourseScheduleRepliedDao repliedDao;
+    @Autowired
+    private CourseScheduleDao scheduleDao;
+    @Autowired
+    private CourseScheduleStudentPaymentDao paymentDao;
+
+    public CourseScheduleRepliedDao getDao() {
+        return repliedDao;
+    }
+
+    /**
+     * @Description: 首页-我的课程-课程详情-评价陪练课
+     * @Author: cy
+     * @Date: 2022/4/12
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void replied(CourseScheduleReplied replied, SysUser sysUser) {
+        Long userId = sysUser.getId();
+        Long scheduleId = replied.getCourseScheduleId();
+        Long studentId = replied.getStudentId();
+
+        CourseSchedule schedule = scheduleDao.selectById(scheduleId);
+        if (schedule == null) {
+            throw new RuntimeException("课程不存在");
+        }
+        if (schedule.getStatus().equals(CourseScheduleEnum.NOT_START.getCode())) {
+            throw new RuntimeException("课程未开始无法评论");
+        }
+
+        //评论存在执行修改
+        QueryWrapper<CourseScheduleReplied> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("student_id_", replied.getStudentId());
+        queryWrapper.eq("course_schedule_id_", replied.getCourseScheduleId());
+        queryWrapper.eq("course_group_id_", replied.getCourseGroupId());
+        queryWrapper.eq("course_group_type_", CourseScheduleEnum.PRACTICE.getCode());
+        CourseScheduleReplied scheduleReplied = repliedDao.selectOne(queryWrapper);
+        if (scheduleReplied != null) {
+            repliedDao.updateReplied(replied);
+            return;
+        }
+
+        //当前用户为老师
+        CourseSchedule courseSchedule = scheduleDao.selectById(scheduleId);
+        if (courseSchedule != null) {
+            Long teacherId = courseSchedule.getTeacherId();
+            if (userId == teacherId) {
+                repliedDao.insert(replied);
+                return;
+            }
+        }
+
+        //当前用户为学员
+        QueryWrapper<CourseScheduleStudentPayment> wrapper = new QueryWrapper<>();
+        wrapper.eq("user_id_", userId);
+        wrapper.eq("course_id_", scheduleId);
+        wrapper.eq("course_type_", CourseScheduleEnum.PRACTICE);
+        CourseScheduleStudentPayment payment = paymentDao.selectOne(wrapper);
+        if (payment == null || userId != studentId) {
+            throw new RuntimeException("未购买该课无法评论");
+        }
+        repliedDao.insert(replied);
+    }
+
+    /**
+     * @Description: 首页-我的课程-课程详情-查询评价
+     * @Author: cy
+     * @Date: 2022/4/12
+     */
+    @Override
+    public CourseScheduleReplied selectReplied(CourseScheduleReplied replied) {
+        QueryWrapper<CourseScheduleReplied> wrapper = new QueryWrapper<>();
+        wrapper.eq("course_group_type_", CourseScheduleEnum.PRACTICE);
+        wrapper.eq("student_id_", replied.getStudentId());
+        wrapper.eq("course_schedule_id_", replied.getCourseScheduleId());
+        wrapper.eq("course_group_id_", replied.getCourseGroupId());
+        return repliedDao.selectOne(wrapper);
+    }
+
+}

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

@@ -7,6 +7,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.dao.CourseScheduleRepliedDao;
+import com.yonge.cooleshow.biz.dal.dao.CourseScheduleStudentPaymentDao;
 import com.yonge.cooleshow.biz.dal.dao.CourseScheduleDao;
 import com.yonge.cooleshow.biz.dal.dto.search.MyCourseSearch;
 import com.yonge.cooleshow.biz.dal.entity.*;
@@ -56,6 +58,10 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
     @Autowired
     private SysConfigService sysConfigService;
     @Autowired
+    private CourseScheduleRepliedDao repliedDao;
+    @Autowired
+    private CourseScheduleStudentPaymentDao paymentDao;
+    @Autowired
     private TeacherFreeTimeService teacherFreeTimeService;
     @Autowired
     private CourseGroupService courseGroupService;
@@ -608,8 +614,26 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
      * @Date: 2022/4/11
      */
     @Override
-    public IPage<MyCourseVo> myCourse(IPage<MyCourseVo> page, MyCourseSearch search) {
-        return page.setRecords(baseMapper.selectPage(page, search));
+    public IPage<MyCourseVo> queryTeacherPracticeCourse(IPage<MyCourseVo> page, MyCourseSearch search) {
+        //查询所有已评价学生id
+        List<Long> studentList=repliedDao.selectAll();
+
+        Integer replied = search.getReplied();
+        if (replied!=null){
+            //按评价筛选 0:未评价 1:已评价
+            if (replied == 0) {
+                //查询所有购课用户
+                List<Long> userList=paymentDao.selectAll();
+                //取差集
+                userList.removeAll(studentList);
+                search.setRepliedIds(userList);
+            }
+
+            if (replied == 1) {
+                search.setRepliedIds(studentList);
+            }
+        }
+        return page.setRecords(baseMapper.queryTeacherPracticeCourse(page, search));
     }
 }
 

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

@@ -35,6 +35,6 @@ public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthR
         musicSheetAuthRecord.setAuditState(param.getAuthStatus());
         musicSheetAuthRecord.setReason(param.getRemark());
         musicSheetAuthRecord.setVerifyUserId(userId);
-        return this.save(musicSheetAuthRecord);
+        return this.saveOrUpdate(musicSheetAuthRecord);
     }
 }

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

@@ -42,6 +42,28 @@ public class MyCourseVo implements Serializable {
     @ApiModelProperty(value = "声部名称")
     private String subjectName;
 
+    @ApiModelProperty(value = "课程组id")
+    private Integer courseGoupId;
+
+    @ApiModelProperty(value = "课程id")
+    private Integer courseId;
+
+    public Integer getCourseGoupId() {
+        return courseGoupId;
+    }
+
+    public void setCourseGoupId(Integer courseGoupId) {
+        this.courseGoupId = courseGoupId;
+    }
+
+    public Integer getCourseId() {
+        return courseId;
+    }
+
+    public void setCourseId(Integer courseId) {
+        this.courseId = courseId;
+    }
+
     public Long getId() {
         return id;
     }

+ 13 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -135,7 +135,7 @@
             AND b.subject_id_ = #{param.subjectId}
         </if>
     </select>
-    <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.MyCourseVo">
+    <select id="queryTeacherPracticeCourse" resultType="com.yonge.cooleshow.biz.dal.vo.MyCourseVo">
         SELECT
             u.id_ AS userId,
             u.username_ AS userName,
@@ -145,7 +145,9 @@
             cs.end_time_ AS endTime,
             cs.status_ AS `status`,
             g.subject_id_ AS subjectId,
-            sb.name_ AS subjectName
+            sb.name_ AS subjectName,
+            p.course_id_ AS courseId,
+            p.course_group_id_ AS courseGoupId
         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_
@@ -162,6 +164,15 @@
         <if test="param.classDate !=null and param.classDate !=''">
             AND cs.class_date_ = #{param.classDate}
         </if>
+        <if test="param.repliedIds !=null">
+            AND p.user_id_ IN
+            <foreach collection="param.repliedIds" item="repliedIds" open="(" close=")" separator=",">
+                #{repliedIds}
+            </foreach>
+        </if>
+        <if test="param.studentName !=null and param.studentName !=''">
+            AND u.username_ LIKE CONCAT('%', #{param.studentName}, '%')
+        </if>
     </select>
 
 </mapper>

+ 17 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleRepliedMapper.xml

@@ -40,4 +40,21 @@
         	<include refid="baseColumns" />
 		FROM course_schedule_replied t
 	</select>
+    <select id="selectAll" resultType="java.lang.Long">
+        SELECT student_id_ FROM course_schedule_replied WHERE course_group_type_='PRACTICE'
+    </select>
+
+    <update id="updateReplied" parameterType="com.yonge.cooleshow.biz.dal.entity.CourseScheduleReplied">
+        UPDATE course_schedule_replied
+        <set>
+            <if test="score !=null">score_ = #{score},</if>
+            <if test="studentReplied !=null and studentReplied !=''">student_replied_ = #{studentReplied},</if>
+            <if test="teacherReplied !=null and teacherReplied !=''">teacher_replied_ = #{teacherReplied},</if>
+            update_time_ = SYSDATE()
+        </set>
+        WHERE student_id_ = #{studentId}
+        AND course_schedule_id_ = #{courseScheduleId}
+        AND course_group_id_ = #{courseGroupId}
+        AND course_group_type_ = #{courseGroupType}
+    </update>
 </mapper>

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

@@ -52,5 +52,8 @@
                  left join sys_user as b on a.user_id_ = b.id_
         where a.course_group_id_ = #{groupId}
     </select>
+    <select id="selectAll" resultType="java.lang.Long">
+        SELECT user_id_ FROM course_schedule_student_payment WHERE course_type_ = 'PRACTICE'
+    </select>
 
 </mapper>

+ 48 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/CourseRepliedController.java

@@ -0,0 +1,48 @@
+package com.yonge.cooleshow.teacher.controller;
+
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.entity.CourseScheduleReplied;
+import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
+import com.yonge.cooleshow.biz.dal.service.CourseRepliedService;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @Author: cy
+ * @Date: 2022/4/12
+ */
+@Api(tags = "陪练课")
+@RestController
+@RequestMapping("/courseReplied")
+public class CourseRepliedController extends BaseController {
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private CourseRepliedService repliedService;
+
+    @ApiOperation(value = "首页-我的课程-课程详情-评价陪练课", httpMethod = "POST", consumes = "application/json", produces = "application/json")
+    @PostMapping(value = "/replied", consumes = "application/json", produces = "application/json")
+    public HttpResponseResult<Object> replied(@Validated @RequestBody CourseScheduleReplied replied) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null  || sysUser.getId() == null) {
+            return failed("用户信息获取失败");
+        }
+
+        replied.setCourseGroupType(CourseScheduleEnum.PRACTICE.getCode());
+        repliedService.replied(replied,sysUser);
+        return succeed();
+    }
+
+    @ApiOperation(value = "首页-我的课程-课程详情-查询陪练课评价")
+    @PostMapping(value = "/selectReplied")
+    public HttpResponseResult<CourseScheduleReplied> selectReplied(@Validated @RequestBody CourseScheduleReplied replied) {
+        replied.setCourseGroupType(CourseScheduleEnum.PRACTICE.getCode());
+        return succeed(repliedService.selectReplied(replied));
+    }
+}

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

@@ -85,14 +85,14 @@ public class CourseScheduleController extends BaseController {
     }
 
     @ApiOperation("老师端-首页-我的课程-陪练课")
-    @PostMapping("/myCourse")
-    public HttpResponseResult<PageInfo<MyCourseVo>> myCourse(@RequestBody MyCourseSearch search) {
+    @PostMapping("/queryTeacherPracticeCourse")
+    public HttpResponseResult<PageInfo<MyCourseVo>> queryTeacherPracticeCourse(@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);
+        IPage<MyCourseVo> pages = courseScheduleService.queryTeacherPracticeCourse(PageUtil.getPage(search), search);
         return succeed(PageUtil.pageInfo(pages));
     }
 }