Browse Source

add:曲目添加来源查询

liujunchi 3 years ago
parent
commit
bb43d95050
14 changed files with 262 additions and 0 deletions
  1. 1 0
      cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetController.java
  2. 13 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleDao.java
  3. 61 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/HomeworkSearch.java
  4. 12 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MusicSheetSearch.java
  5. 13 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheet.java
  6. 40 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/SourceTypeEnum.java
  7. 10 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/CourseScheduleService.java
  8. 8 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetService.java
  9. 8 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java
  10. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java
  11. 19 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  12. 5 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml
  13. 49 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/CourseHomeworkController.java
  14. 12 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/MusicSheetController.java

+ 1 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetController.java

@@ -95,6 +95,7 @@ public class MusicSheetController extends BaseController {
         musicSheetDto.setUserId(sysUser.getId());
         musicSheetDto.setAuditStatus(AuthStatusEnum.PASS);
         musicSheetDto.setDelFlag(false);
+        musicSheetDto.setSourceType(SourceTypeEnum.PLATFORM);
         List<MusicSheetAccompaniment> list;
         if (!AudioTypeEnum.MIDI.getCode().equals(musicSheetDto.getAudioType().getCode())){
             list = musicSheetDto.getBackground();

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

@@ -3,6 +3,7 @@ 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.HomeworkSearch;
 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;
@@ -43,6 +44,7 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
 
     /**
      * 根据学生id查询课程
+     *
      * @param param 传入参数
      *              <p> - studentId 学生id
      *              <p> - status 课程状态 NOT_START未开始 ING进行中 COMPLETE已完成
@@ -68,5 +70,16 @@ public interface CourseScheduleDao extends BaseMapper<CourseSchedule> {
 
     //根据老师id查询购课学员
     List<MyCourseVo> queryTeacherPracticeCourse(IPage page, @Param("param") MyCourseSearch query);
+
+
+    /**
+     * 老师未布置的课程作业数量
+     * <p>
+     * 陪练课 课程状态为完成,有学生考勤记录 没有学生课程记录
+     *
+     * @param param 查询条件
+     * @return number
+     */
+    Integer countTeacherNoDecorateHomework(@Param("param") HomeworkSearch param);
 }
 

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

@@ -0,0 +1,61 @@
+package com.yonge.cooleshow.biz.dal.dto.search;
+
+import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
+import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
+import com.yonge.cooleshow.common.page.QueryInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * Description 课后作业查询条件
+ *
+ * @author liujunchi
+ * @date 2022-04-13
+ */
+@ApiModel("课后作业查询条件")
+public class HomeworkSearch extends QueryInfo {
+
+    @ApiModelProperty("老师id")
+    private Long teacherId;
+
+    @ApiModelProperty("课程类型: PRACTICE 陪练课; LIVE 直播课")
+    private CourseScheduleEnum courseType;
+
+    @ApiModelProperty("课程状态: NOT_START:未开始; ING:进行中; COMPLETE:已完成; CANCEL:已取消")
+    private CourseScheduleEnum courseStatus;
+
+    @ApiModelProperty("布置作业 0:否,1:是")
+    private YesOrNoEnum decorate;
+
+    public Long getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Long teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public CourseScheduleEnum getCourseType() {
+        return courseType;
+    }
+
+    public void setCourseType(CourseScheduleEnum courseType) {
+        this.courseType = courseType;
+    }
+
+    public CourseScheduleEnum getCourseStatus() {
+        return courseStatus;
+    }
+
+    public void setCourseStatus(CourseScheduleEnum courseStatus) {
+        this.courseStatus = courseStatus;
+    }
+
+    public YesOrNoEnum getDecorate() {
+        return decorate;
+    }
+
+    public void setDecorate(YesOrNoEnum decorate) {
+        this.decorate = decorate;
+    }
+}

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

@@ -1,6 +1,7 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
+import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
 import com.yonge.cooleshow.common.page.QueryInfo;
 import com.yonge.toolset.utils.string.StringUtil;
@@ -34,6 +35,9 @@ public class MusicSheetSearch  extends QueryInfo{
     @ApiModelProperty(hidden = true)
     private List<Long> subjectIdList;
 
+    @ApiModelProperty(value = "曲目来源类型 TEACHER 老师 PLATFORM 平台")
+    private SourceTypeEnum sourceType;
+
     @ApiModelProperty("曲目状态(0:停用,1:启用))")
     private YesOrNoEnum state;
 
@@ -123,4 +127,12 @@ public class MusicSheetSearch  extends QueryInfo{
     public void setDelFlag(Boolean delFlag) {
         this.delFlag = delFlag;
     }
+
+    public SourceTypeEnum getSourceType() {
+        return sourceType;
+    }
+
+    public void setSourceType(SourceTypeEnum sourceType) {
+        this.sourceType = sourceType;
+    }
 }

+ 13 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheet.java

@@ -37,6 +37,11 @@ public class MusicSheet implements Serializable {
     @ApiModelProperty(value = "曲谱来源(平台用户ID或者是老师ID)")
     private Long userId;  //曲谱来源(平台用户ID或者是老师ID)
 
+
+	@TableField("source_type_")
+	@ApiModelProperty(value = "曲目来源类型 TEACHER 老师 PLATFORM 平台")
+	private SourceTypeEnum sourceType;
+
     @NotBlank(message = "作曲人不能为空!")
     @Size(max = 32, message = "作曲人长度不能超过32位!")
     @TableField("composer_")
@@ -357,4 +362,12 @@ public class MusicSheet implements Serializable {
 	public void setSubmitAuditTime(Date submitAuditTime) {
 		this.submitAuditTime = submitAuditTime;
 	}
+
+	public SourceTypeEnum getSourceType() {
+		return sourceType;
+	}
+
+	public void setSourceType(SourceTypeEnum sourceType) {
+		this.sourceType = sourceType;
+	}
 }

+ 40 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/SourceTypeEnum.java

@@ -0,0 +1,40 @@
+package com.yonge.cooleshow.biz.dal.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.yonge.cooleshow.common.enums.BaseEnum;
+
+/**
+ * Description 数据类型  TEACHER 老师 PLATFORM 平台
+ *
+ * @author liujunchi
+ * @date 2022-04-13
+ */
+public enum SourceTypeEnum  implements BaseEnum<String,AuditStatusEnum> {
+
+
+
+    TEACHER("TEACHER","TEACHER"),
+    PLATFORM("PLATFORM","PLATFORM");
+
+    @EnumValue
+    private String code;
+    private String msg;
+
+    SourceTypeEnum(String code,String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    @Override
+    public String getCode() {
+        return this.code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+}

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

@@ -3,6 +3,7 @@ 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.HomeworkSearch;
 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;
@@ -133,5 +134,14 @@ public interface CourseScheduleService extends IService<CourseSchedule> {
     List<CourseCalendarEntity> createPracticeCourseCalender(Map<String, Object> param);
 
     IPage<MyCourseVo> queryTeacherPracticeCourse(IPage<MyCourseVo> page, MyCourseSearch search);
+
+    /**
+     * 老师未布置的课程作业数量
+     * 陪练课 课程状态为完成,有学生考勤记录 没有学生课程记录
+     *
+     * @param homeworkSearch 查询信息
+     * @return number
+     */
+    Integer countTeacherNoDecorateHomework(HomeworkSearch homeworkSearch);
 }
 

+ 8 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetService.java

@@ -157,4 +157,12 @@ public interface MusicSheetService extends IService<MusicSheet> {
      * @return boolean
      */
     boolean del(Long id);
+
+    /**
+     *  展示已过审的乐谱数量
+     *
+     * @param sysUser 老师信息
+     * @return
+     */
+    Integer countTeacherMusicSheet(SysUser sysUser);
 }

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

@@ -10,6 +10,7 @@ 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.HomeworkSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.MyCourseSearch;
 import com.yonge.cooleshow.biz.dal.entity.*;
 import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
@@ -635,5 +636,12 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         }
         return page.setRecords(baseMapper.queryTeacherPracticeCourse(page, search));
     }
+
+    @Override
+    public Integer countTeacherNoDecorateHomework(HomeworkSearch homeworkSearch) {
+
+        // 陪练课 课程状态为完成,有学生考勤记录 没有学生课程记录
+        return baseMapper.countTeacherNoDecorateHomework(homeworkSearch);
+    }
 }
 

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

@@ -119,6 +119,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
         query.setCreateBy(sysUser.getId());
         query.setAuditStatus(AuthStatusEnum.PASS);
         query.setState(YesOrNoEnum.YES);
+        query.setDelFlag(false);
         // 只查3条
         query.setRows(3);
         IPage<MusicSheetVo> musicSheetVoIPage = selectPage(PageUtil.getPage(query), query);
@@ -258,4 +259,14 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
                 .update();
 
     }
+
+    @Override
+    public Integer countTeacherMusicSheet(SysUser sysUser) {
+        return this.lambdaQuery()
+                .eq(MusicSheet::getAuditStatus,AuthStatusEnum.PASS)
+                .eq(MusicSheet::getCreateBy,sysUser.getId())
+                .eq(MusicSheet::getState,YesOrNoEnum.YES)
+                .eq(MusicSheet::getDelFlag,YesOrNoEnum.NO)
+                .count();
+    }
 }

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

@@ -175,4 +175,23 @@
         </if>
     </select>
 
+    <select id="countTeacherNoDecorateHomework" resultType="java.lang.Integer">
+
+        select count(1)
+        from course_schedule cs
+        left join student_attendance sa on cs.id_ = sa.course_schedule_id_
+        left join course_homework ch on ch.course_schedule_id_ = sa.course_schedule_id_
+        <where>
+            ch.id_ is null
+            <if test="param.courseStatus != null">
+                and cs.type_ = #{param.courseType}
+            </if>
+            <if test="param.courseType != null">
+                and cs.status_ = #{param.courseStatus}
+            </if>
+            <if test="param.teacherId != null">
+                and cs.teacher_id_ = #{param.teacherId}
+            </if>
+        </where>
+    </select>
 </mapper>

+ 5 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml

@@ -55,6 +55,8 @@
         t.update_time_ as updateTime,
         t.update_by_ as updateBy,
         t.del_flag_ as delFlag,
+        t.source_type_ as sourceType,
+        t.submit_audit_time_ as submitAuditTime,
         t.remark_ as remark
     </sql>
 
@@ -103,6 +105,9 @@
         <if test="param.delFlag != null">
             and t.del_flag_ = #{param.delFlag}
         </if>
+        <if test="param.sourceType != null">
+            and t.source_type_ = #{param.sourceType}
+        </if>
     </sql>
 
     <select id="selectAlbumDetailPage" resultType="com.yonge.cooleshow.biz.dal.entity.MusicSheet">

+ 49 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/CourseHomeworkController.java

@@ -0,0 +1,49 @@
+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.dto.search.HomeworkSearch;
+import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum;
+import com.yonge.cooleshow.biz.dal.service.CourseScheduleService;
+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.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * Description 老师课后作业相关接口
+ *
+ * @author liujunchi
+ * @date 2022-04-13
+ */
+@Api(tags = "老师课后作业相关接口")
+@RestController
+@RequestMapping("/homework")
+public class CourseHomeworkController extends BaseController {
+
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    @Autowired
+    private CourseScheduleService courseScheduleService;
+
+    @ApiOperation(value = "未布置的课后作业数量")
+    @GetMapping(value="/count")
+    public HttpResponseResult<Integer> countTeacherNoDecorateHomework() {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null  || sysUser.getId() == null) {
+            return failed("用户信息获取失败");
+        }
+        HomeworkSearch homeworkSearch = new HomeworkSearch();
+        // 默认查当前老师,陪练课 课程状态为完成,有学生考勤记录 没有学生课程记录
+        homeworkSearch.setTeacherId(sysUser.getId());
+        homeworkSearch.setCourseStatus(CourseScheduleEnum.COMPLETE);
+        homeworkSearch.setCourseType(CourseScheduleEnum.PRACTICE);
+        return succeed(courseScheduleService.countTeacherNoDecorateHomework(homeworkSearch));
+    }
+
+}

+ 12 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/MusicSheetController.java

@@ -75,6 +75,7 @@ public class MusicSheetController extends BaseController {
         musicSheetDto.setUserId(sysUser.getId());
         musicSheetDto.setAuditStatus(AuthStatusEnum.DOING);
         musicSheetDto.setSubmitAuditTime(new Date());
+        musicSheetDto.setSourceType(SourceTypeEnum.TEACHER);
         List<MusicSheetAccompaniment> list;
         if (!AudioTypeEnum.MIDI.getCode().equals(musicSheetDto.getAudioType().getCode())){
             list = musicSheetDto.getBackground();
@@ -140,4 +141,15 @@ public class MusicSheetController extends BaseController {
         }
         return succeed(musicSheetService.shareMusicSheet(sysUser));
     }
+
+
+    @ApiOperation(value = "我的乐谱数量")
+    @GetMapping(value="/count")
+    public HttpResponseResult<Integer> countTeacherMusicSheet() {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null  || sysUser.getId() == null) {
+            return failed("用户信息获取失败");
+        }
+        return succeed(musicSheetService.countTeacherMusicSheet(sysUser));
+    }
 }