Browse Source

修改视频课组审核状态

cy 3 years ago
parent
commit
d4ea67af49
14 changed files with 353 additions and 7 deletions
  1. 10 3
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/VideoLessonController.java
  2. 4 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleDao.java
  3. 1 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/VideoLessonGroupDao.java
  4. 70 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/PracticeTeacherSearch.java
  5. 4 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseScheduleService.java
  6. 2 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/VideoLessonGroupService.java
  7. 19 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java
  8. 6 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VideoLessonGroupServiceImpl.java
  9. 146 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/PracticeTeacherVo.java
  10. 38 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/VideoLessonExamineVo.java
  11. 36 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  12. 8 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonGroupMapper.xml
  13. 9 0
      cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/CourseScheduleController.java
  14. 0 4
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/CourseScheduleController.java

+ 10 - 3
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/VideoLessonController.java

@@ -8,9 +8,7 @@ import com.yonge.cooleshow.biz.dal.service.VideoLessonGroupService;
 import com.yonge.cooleshow.biz.dal.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.valid.AddGroup;
 import com.yonge.cooleshow.biz.dal.valid.SelectGroup;
-import com.yonge.cooleshow.biz.dal.vo.VideoLessonPurchaseVo;
-import com.yonge.cooleshow.biz.dal.vo.VideoLessonStudentDetailVo;
-import com.yonge.cooleshow.biz.dal.vo.VideoLessonTeacherVo;
+import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.page.PageInfo;
@@ -35,6 +33,15 @@ public class VideoLessonController extends BaseController {
     private VideoLessonGroupService lessonGroupService;
     @Autowired
     private VideoLessonGroupDetailService videoLessonGroupDetailService;
+    @Autowired
+    private VideoLessonGroupService videoLessonGroupService;
+
+    @ApiOperation(value = "修改视频课组审核状态", httpMethod = "POST", consumes = "application/json", produces = "application/json")
+    @PostMapping(value = "/updateGroup", consumes = "application/json", produces = "application/json")
+    public HttpResponseResult<Object> update(@Validated @RequestBody VideoLessonExamineVo examineVo) {
+        videoLessonGroupService.updateGroup(examineVo);
+        return succeed();
+    }
 
     @ApiOperation(value = "根据视频课组id查详情")
     @GetMapping(value = "/selectGroupById")

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

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yonge.cooleshow.biz.dal.dto.search.HomeworkSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.MyCourseSearch;
+import com.yonge.cooleshow.biz.dal.dto.search.PracticeTeacherSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonGroupSearch;
 import com.yonge.cooleshow.biz.dal.entity.CourseSchedule;
 import com.yonge.cooleshow.biz.dal.vo.*;
@@ -92,5 +93,8 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
 
     //老师端-课表-日历-用户
     List<CourseStudent> queryCourseUser(@Param("param") MyCourseSearch search);
+
+    //学生端-首页-陪练课老师列表
+    List<PracticeTeacherVo> teacherList(IPage<PracticeTeacherVo> page, @Param("param") PracticeTeacherSearch search);
 }
 

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

@@ -22,6 +22,7 @@ public interface VideoLessonGroupDao extends BaseMapper<VideoLessonGroup> {
 
     //修改视频课组
     void updateGroup(VideoLessonGroupUpVo lessonGroupUpVo);
+    void updateExamine(VideoLessonExamineVo examineVo);
 
     //学员详情-查询视频课列表
     List<VideoLessonStudentDetailVo> selectStudentPage(IPage page, @Param("param") VideoLessonSearch videoLessonSearch);

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

@@ -0,0 +1,70 @@
+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;
+
+/**
+ * @Author: cy
+ * @Date: 2022/4/19
+ */
+@ApiModel(value = "PracticeTeacherSearch")
+public class PracticeTeacherSearch extends QueryInfo {
+    @ApiModelProperty(value = "声部id")
+    private Integer subjectId;
+
+    @ApiModelProperty(value = "老师名称")
+    private String search;
+
+    @ApiModelProperty(value = "排序字段(starGrade,expTime,subjectPrice)")
+    private String sortField;
+
+    @ApiModelProperty(value = "排序规则(升序:ASC 降序:DESC)")
+    private String collation;
+
+    private String sort;
+
+    @Override
+    public String getSort() {
+        return sort;
+    }
+
+    @Override
+    public void setSort(String sort) {
+        this.sort = sort;
+    }
+
+    public Integer getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(Integer subjectId) {
+        this.subjectId = subjectId;
+    }
+
+    @Override
+    public String getSearch() {
+        return search;
+    }
+
+    @Override
+    public void setSearch(String search) {
+        this.search = search;
+    }
+
+    public String getSortField() {
+        return sortField;
+    }
+
+    public void setSortField(String sortField) {
+        this.sortField = sortField;
+    }
+
+    public String getCollation() {
+        return collation;
+    }
+
+    public void setCollation(String collation) {
+        this.collation = collation;
+    }
+}

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

@@ -5,10 +5,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.yonge.cooleshow.biz.dal.dao.CourseScheduleDao;
 import com.yonge.cooleshow.biz.dal.dto.search.HomeworkSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.MyCourseSearch;
+import com.yonge.cooleshow.biz.dal.dto.search.PracticeTeacherSearch;
 import com.yonge.cooleshow.biz.dal.entity.CourseCalendarEntity;
 import com.yonge.cooleshow.biz.dal.entity.CourseSchedule;
 import com.yonge.cooleshow.biz.dal.vo.CourseStudent;
 import com.yonge.cooleshow.biz.dal.vo.MyCourseVo;
+import com.yonge.cooleshow.biz.dal.vo.PracticeTeacherVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherLiveCourseInfoVo;
 import com.yonge.cooleshow.common.page.PageInfo;
 
@@ -179,5 +181,7 @@ public interface CourseScheduleService extends IService<CourseSchedule> {
     boolean checkStudentCourseSchedule(Long studentId, Long courseId);
 
     Map<String,Object> queryCourseUser(MyCourseSearch search);
+
+    IPage<PracticeTeacherVo> teacherList(IPage<PracticeTeacherVo> page, PracticeTeacherSearch search);
 }
 

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

@@ -22,6 +22,8 @@ public interface VideoLessonGroupService extends IService<VideoLessonGroup> {
 
     void updateGroup(VideoLessonGroupUpVo lessonGroupUpVo);
 
+    void updateGroup(VideoLessonExamineVo examineVo);
+
     void deleteGroup(Long id);
 
     void add(VideoLessonVo lessonVo, SysUser sysUser);

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

@@ -12,6 +12,7 @@ import com.yonge.cooleshow.biz.dal.dao.CourseScheduleStudentPaymentDao;
 import com.yonge.cooleshow.biz.dal.dao.CourseScheduleDao;
 import com.yonge.cooleshow.biz.dal.dto.search.HomeworkSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.MyCourseSearch;
+import com.yonge.cooleshow.biz.dal.dto.search.PracticeTeacherSearch;
 import com.yonge.cooleshow.biz.dal.entity.*;
 import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
 import com.yonge.cooleshow.biz.dal.service.*;
@@ -19,6 +20,7 @@ import com.yonge.cooleshow.biz.dal.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.support.WrapperUtil;
 import com.yonge.cooleshow.biz.dal.vo.CourseStudent;
 import com.yonge.cooleshow.biz.dal.vo.MyCourseVo;
+import com.yonge.cooleshow.biz.dal.vo.PracticeTeacherVo;
 import com.yonge.cooleshow.biz.dal.vo.TeacherLiveCourseInfoVo;
 import com.yonge.cooleshow.common.constant.SysConfigConstant;
 import com.yonge.cooleshow.common.exception.BizException;
@@ -759,5 +761,22 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         map.put("studentList",studentList);
         return map;
     }
+
+    /**
+     * @Description: 学生端-首页-陪练课老师列表
+     * @Author: cy
+     * @Date: 2022/4/19
+     */
+    @Override
+    public IPage<PracticeTeacherVo> teacherList(IPage<PracticeTeacherVo> page, PracticeTeacherSearch search) {
+        String collation = search.getCollation();//排序规则
+        String sortField = search.getSortField();//排序字段
+        if (StringUtils.isNotBlank(sortField)){
+            if (StringUtils.isNotBlank(collation)){
+                search.setSort(sortField+" "+collation);
+            }else search.setSort(sortField);
+        }
+        return page.setRecords(baseMapper.teacherList(page, search));
+    }
 }
 

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

@@ -78,6 +78,12 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
         videoLessonGroupDao.updateGroup(lessonGroupUpVo);
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void updateGroup(VideoLessonExamineVo examineVo) {
+        videoLessonGroupDao.updateExamine(examineVo);
+    }
+
     /**
      * @Description: 删除视频课
      * @Author: cy

+ 146 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/PracticeTeacherVo.java

@@ -0,0 +1,146 @@
+package com.yonge.cooleshow.biz.dal.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @Author: cy
+ * @Date: 2022/4/19
+ */
+@ApiModel(value = "PracticeTeacherVo")
+public class PracticeTeacherVo implements Serializable {
+    @ApiModelProperty(value = "老师id")
+    private Integer teacherId;
+
+    @ApiModelProperty(value = "用户姓名")
+    private String userName;
+
+    @ApiModelProperty(value = "头像地址")
+    private String avatar;
+
+    @ApiModelProperty(value = "星级")
+    private String starGrade;
+
+    @ApiModelProperty(value = "已上课时")
+    private String expTime;
+
+    @ApiModelProperty(value = "毕业学校")
+    private String school;
+
+    @ApiModelProperty(value = "学校专业")
+    private String schoolSubject;
+
+    @ApiModelProperty(value = "设置的声部")
+    private String configSubject;
+
+    @ApiModelProperty(value = "声部id")
+    private Integer subjectId;
+
+    @ApiModelProperty(value = "声部名称")
+    private String subjectName;
+
+    @ApiModelProperty(value = "声部价格")
+    private String subjectPrice;
+
+    @ApiModelProperty(value = "课程时长(分钟)")
+    private String courseMinutes;
+
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    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 String getStarGrade() {
+        return starGrade;
+    }
+
+    public void setStarGrade(String starGrade) {
+        this.starGrade = starGrade;
+    }
+
+    public String getExpTime() {
+        return expTime;
+    }
+
+    public void setExpTime(String expTime) {
+        this.expTime = expTime;
+    }
+
+    public String getSchool() {
+        return school;
+    }
+
+    public void setSchool(String school) {
+        this.school = school;
+    }
+
+    public String getSchoolSubject() {
+        return schoolSubject;
+    }
+
+    public void setSchoolSubject(String schoolSubject) {
+        this.schoolSubject = schoolSubject;
+    }
+
+    public String getConfigSubject() {
+        return configSubject;
+    }
+
+    public void setConfigSubject(String configSubject) {
+        this.configSubject = configSubject;
+    }
+
+    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;
+    }
+
+    public String getSubjectPrice() {
+        return subjectPrice;
+    }
+
+    public void setSubjectPrice(String subjectPrice) {
+        this.subjectPrice = subjectPrice;
+    }
+
+    public String getCourseMinutes() {
+        return courseMinutes;
+    }
+
+    public void setCourseMinutes(String courseMinutes) {
+        this.courseMinutes = courseMinutes;
+    }
+}
+

+ 38 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/VideoLessonExamineVo.java

@@ -0,0 +1,38 @@
+package com.yonge.cooleshow.biz.dal.vo;
+
+import com.yonge.cooleshow.biz.dal.valid.ListValue;
+import com.yonge.cooleshow.common.entity.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Author: cy
+ * @Date: 2022/4/19
+ */
+@ApiModel(value = "VideoLessonExamineVo")
+public class VideoLessonExamineVo extends BaseEntity {
+    @ApiModelProperty(value = "主键id")
+    @NotNull(message = "视频组id不能为空")
+    private Long id;
+
+    @ApiModelProperty(value = "审核状态  UNPAALY、未申请 DOING、审核中 PASS、通过 UNPASS、不通过")
+    private String auditStatus;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getAuditStatus() {
+        return auditStatus;
+    }
+
+    public void setAuditStatus(String auditStatus) {
+        this.auditStatus = auditStatus;
+    }
+}

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

@@ -312,4 +312,40 @@
         <![CDATA[ AND class_date_  >= #{startDate} ]]>
         <![CDATA[ AND class_date_  <= #{endDate} ]]>
     </select>
+    <select id="teacherList" resultType="com.yonge.cooleshow.biz.dal.vo.PracticeTeacherVo">
+        SELECT
+            cs.teacher_id_ AS teacherId,
+            u.username_ AS userName,
+            u.avatar_ AS avatar,
+
+            tt.star_grade_ AS starGrade,
+            tt.exp_time_ AS expTime,
+            t.graduate_school_ AS school,
+            t.subject_ AS schoolSubject,
+
+            (SELECT group_concat(p.subject_name_) FROM teacher_subject_price p WHERE find_in_set(cs.teacher_id_,p.teacher_id_)) AS configSubject,
+            sp.subject_id_ AS subjectId,
+            sp.subject_name_ AS subjectName,
+            sp.subject_price_ AS subjectPrice,
+            sp.course_minutes_ AS courseMinutes
+
+        FROM course_schedule cs
+        LEFT JOIN sys_user u ON cs.teacher_id_ = u.id_
+        LEFT JOIN teacher_total tt ON cs.teacher_id_=tt.user_id_
+        LEFT JOIN teacher t ON cs.teacher_id_=t.user_id_
+        LEFT JOIN teacher_subject_price sp ON cs.teacher_id_=sp.teacher_id_
+
+        WHERE cs.type_='PRACTICE'
+        <if test="param.subjectId !=null">
+            AND sp.subject_id_=#{param.subjectId}
+        </if>
+        <if test="param.search !=null and param.search !=''">
+            AND u.username_ LIKE CONCAT('%', #{param.search}, '%')
+        </if>
+        <choose>
+            <when test="param.sort !=null and param.sort !=''">
+                ORDER BY ${param.sort}
+            </when>
+        </choose>
+    </select>
 </mapper>

+ 8 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/VideoLessonGroupMapper.xml

@@ -56,6 +56,14 @@
 		</set>
 		WHERE id_ = #{id}
 	</update>
+	<update id="updateExamine" parameterType="com.yonge.cooleshow.biz.dal.vo.VideoLessonExamineVo">
+		UPDATE video_lesson_group
+		<set>
+			<if test="auditStatus !=null">audit_status_ = #{auditStatus},</if>
+			update_time_ = SYSDATE()
+		</set>
+		WHERE id_ = #{id}
+	</update>
 	<select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.VideoLessonGroupVo">
 		SELECT
 			<include refid="baseColumns"/>,

+ 9 - 0
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/CourseScheduleController.java

@@ -4,12 +4,14 @@ 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.PracticeTeacherSearch;
 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.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.PracticeTeacherVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.page.PageInfo;
@@ -90,5 +92,12 @@ public class CourseScheduleController extends BaseController {
         search.setStudentId(user.getId());
         return succeed(courseScheduleService.queryCourseScheduleStudent(search));
     }
+
+    @ApiOperation("学生端-首页-陪练课老师列表")
+    @PostMapping("/teacherList")
+    public HttpResponseResult<PageInfo<PracticeTeacherVo>> teacherList(@RequestBody PracticeTeacherSearch search) {
+        IPage<PracticeTeacherVo> pages = courseScheduleService.teacherList(PageUtil.getPage(search), search);
+        return succeed(PageUtil.pageInfo(pages));
+    }
 }
 

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

@@ -88,17 +88,13 @@ public class CourseScheduleController extends BaseController {
     @ApiOperation(value = "陪练课查询",
             notes = "老师端-首页-我的课程-陪练课\n" +
             "search:{\"classMonth\":\"2022-03\",\"status\":\"COMPLETE\",\"subjectId\":1}\n" +
-            "\n" +
             "老师端-首页-课后评价\n" +
             "search:{\"classMonth\":\"2022-03\",\"replied\":0,\"studentName\":\"测试王\"}\n" +
-            "\n" +
             "老师端-我的-我的主页\n" +
             "search:{\"classMonth\":\"2022-03\"}\n" +
-            "\n" +
             "老师端-课表\n" +
             "search:{\"classDate\":\"2022-03-27\"}\n" +
             "     search:{\"classMonth\":\"2022-03\"}\n" +
-            "\n" +
             "老师端-课表-陪练课\n" +
             "     search:{\"classDate\":\"2022-03-27\"}")
     @PostMapping("/queryTeacherPracticeCourse")