Browse Source

直播课声部

liujunchi 3 years ago
parent
commit
fd7157fd30

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

@@ -210,6 +210,9 @@ public class MusicSheetController extends BaseController {
         if (reasonDto.getState() == null) {
             return failed("启用/禁用状态不能为空");
         }
+        if (reasonDto.getState().equals(YesOrNoEnum.NO) && StringUtil.isEmpty(reasonDto.getReason())) {
+            return failed("停用原因不能为空");
+        }
 
         return status(musicSheetService.stateList(reasonDto));
     }

+ 8 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseGroupDao.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.*;
 import com.yonge.cooleshow.biz.dal.entity.CourseGroup;
+import com.yonge.cooleshow.biz.dal.entity.Subject;
 import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupDetail;
 import com.yonge.cooleshow.biz.dal.vo.*;
 import org.apache.ibatis.annotations.Param;
@@ -255,5 +256,12 @@ public interface CourseGroupDao extends BaseMapper<CourseGroup> {
      */
     IPage<CourseGroupPianoDetailVo> selectPianoGroupTeacherDetail(@Param("page") IPage<CourseGroupPianoDetailVo> page,
                                                                   @Param("param") CourseGroupDetailSearch search);
+
+    /**
+     * 获取直播课报名中的声部
+     *
+     * @return
+     */
+    List<Subject> selectLiveSubject();
 }
 

+ 1 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/enums/MessageTypeEnum.java

@@ -101,6 +101,7 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     PIANO_ROOM_TIMES_SUB("后台扣除琴房时长通知"),
 
 
+    PRACTICE_ADJUST("陪练课调整"),
 
     ;
 

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

@@ -10,10 +10,7 @@ import com.yonge.cooleshow.biz.dal.dto.LiveSaleOutDto;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderRefundReq;
 import com.yonge.cooleshow.biz.dal.dto.req.OrderReq;
 import com.yonge.cooleshow.biz.dal.dto.search.*;
-import com.yonge.cooleshow.biz.dal.entity.CourseGroup;
-import com.yonge.cooleshow.biz.dal.entity.CourseTimeEntity;
-import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroup;
-import com.yonge.cooleshow.biz.dal.entity.VideoLessonGroupDetail;
+import com.yonge.cooleshow.biz.dal.entity.*;
 import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
 import com.yonge.cooleshow.biz.dal.vo.res.RefundCreateRes;
@@ -338,5 +335,12 @@ public interface CourseGroupService extends IService<CourseGroup> {
      * @return
      */
     Boolean liveSaleOut(LiveSaleOutDto dto);
+
+    /**
+     * 报名中的直播课声部
+     *
+     * @return
+     */
+    List<Subject> liveSubject();
 }
 

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

@@ -97,6 +97,7 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
     @Autowired
     private UserAccountService userAccountService;
 
+
     @Override
     public CourseGroupDao getDao() {
         return this.baseMapper;
@@ -1304,6 +1305,21 @@ public class CourseGroupServiceImpl extends ServiceImpl<CourseGroupDao, CourseGr
         return this.updateById(liveCourseGroupVo);
     }
 
+    @Override
+    public List<Subject> liveSubject() {
+
+        List<Subject> subjectList = baseMapper.selectLiveSubject();
+        List<Long> subjectParentIdList = subjectList.stream().map(Subject::getParentSubjectId).collect(Collectors.toList());
+        List<Subject> parentSubjectList = subjectService.findBySubjectByIdList(subjectParentIdList);
+        for (Subject subject : parentSubjectList) {
+            List<Subject> children = subjectList.stream()
+                           .filter(subject1 -> subject1.getParentSubjectId().equals(subject.getId()))
+                           .collect(Collectors.toList());
+            subject.setSubjects(children);
+        }
+        return parentSubjectList;
+    }
+
     private void sendOutSaleMessage(LiveSaleOutDto dto, CourseGroup liveCourseGroupVo) {
         // 发送课程下架通知
         try {

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

@@ -1262,6 +1262,26 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         this.batchCheckTeacherCourseTime(studentPayment.getUserId(), timeList, CourseTimeEntity::getStartTime, CourseTimeEntity::getEndTime);
 
         baseMapper.courseAdjust(adjustVo);
+
+        // 课程调整后给学生发消息
+        sendCourseAdjustMessage(studentPayment.getUserId());
+    }
+
+    private void sendCourseAdjustMessage(Long userId) {
+        // TODO 陪练课调整模板
+        try {
+            //  发送消息
+            SysUser user = sysUserFeignService.queryUserById(userId);
+
+            Map<Long, String> receivers = new HashMap<>();
+            receivers.put(userId, user.getPhone());
+
+            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.PRACTICE_ADJUST, receivers, null,
+                                               0, null, ClientEnum.STUDENT.getCode(), user.getUsername());
+
+        } catch (Exception e) {
+            log.error("陪练课调整发送消息失败--> {}", e.fillInStackTrace());
+        }
     }
 
     /**

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

@@ -977,4 +977,10 @@
         </where>
         GROUP BY courseId
     </select>
+
+    <select id="selectLiveSubject" resultType="com.yonge.cooleshow.biz.dal.entity.Subject">
+        select distinct s.* from course_group cg
+        left join subject s on cg.subject_id_ = s.id_
+        where cg.status_ = 'APPLY' and cg.type_ = 'LIVE'
+    </select>
 </mapper>

+ 1 - 1
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/MusicAlbumController.java

@@ -65,7 +65,7 @@ public class MusicAlbumController extends BaseController {
         query.setAuditVersion(appVersionInfoService.getAppAuditVersion(query.getPlatform(),query.getVersion()));
 
 
-        query.setSubjectIds(student.getSubjectId());
+        // query.setSubjectIds(student.getSubjectId());
         query.setAlbumStatus(YesOrNoEnum.YES);
         query.setSortBy(1);
         IPage<MusicAlbumVo> iPage = musicAlbumService.selectStudentPage(PageUtil.getPage(query),query);

+ 3 - 3
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetController.java

@@ -85,7 +85,7 @@ public class MusicSheetController extends BaseController {
         query.setAuditVersion(appVersionInfoService.getAppAuditVersion(query.getPlatform(),query.getVersion()));
 
 
-        query.setSubjectIds(student.getSubjectId());
+        // query.setSubjectIds(student.getSubjectId());
 
         // 学生 只能看通过审核 并且 启用的 曲目
         query.setState(YesOrNoEnum.YES);
@@ -117,7 +117,7 @@ public class MusicSheetController extends BaseController {
         query.setAuditStatus(AuthStatusEnum.PASS);
         query.setStudentId(sysUser.getId());
 
-        query.setSubjectIds(student.getSubjectId());
+        // query.setSubjectIds(student.getSubjectId());
         query.setRows(query.getSheetRow());
         IPage<MusicSheetVo> musicSheetVoIPage = musicSheetService.selectStudentPage(PageUtil.getPage(query), query);
 
@@ -128,7 +128,7 @@ public class MusicSheetController extends BaseController {
         musicAlbumSearch.setAuditVersion(appAuditVersion);
         musicAlbumSearch.setAlbumTagIds(query.getMusicTagIds());
         musicAlbumSearch.setPage(query.getPage());
-        musicAlbumSearch.setSubjectIds(student.getSubjectId());
+        // musicAlbumSearch.setSubjectIds(student.getSubjectId());
         musicAlbumSearch.setRows(query.getAlbumRow());
         IPage<MusicAlbumVo> musicAlbumVoIPage = musicAlbumService.selectPage(PageUtil.getPage(musicAlbumSearch), musicAlbumSearch);
 

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

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.student.controller;
 
 import com.yonge.cooleshow.biz.dal.dto.CheckCourseTimeDto;
 import com.yonge.cooleshow.biz.dal.entity.CourseTimeEntity;
+import com.yonge.cooleshow.biz.dal.entity.Subject;
 import com.yonge.cooleshow.biz.dal.service.AppVersionInfoService;
 import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
 import com.yonge.cooleshow.biz.dal.vo.CourseGroupVo;
@@ -78,5 +79,13 @@ public class StudentCourseGroupController extends BaseController {
         return succeed();
     }
 
+
+
+    @ApiOperation("直播课拥有的声部信息")
+    @GetMapping("/liveSubject")
+    public HttpResponseResult<List<Subject>> liveSubject() {
+        List<Subject> subjectList = courseGroupService.liveSubject();
+        return succeed(subjectList);
+    }
 }
 

+ 9 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/TeacherCourseGroupController.java

@@ -7,6 +7,7 @@ import com.yonge.cooleshow.biz.dal.dto.CheckCourseTimeDto;
 import com.yonge.cooleshow.biz.dal.dto.LiveCourseGroupDto;
 import com.yonge.cooleshow.biz.dal.dto.search.ShareProfitParam;
 import com.yonge.cooleshow.biz.dal.entity.CourseTimeEntity;
+import com.yonge.cooleshow.biz.dal.entity.Subject;
 import com.yonge.cooleshow.biz.dal.service.AppVersionInfoService;
 import com.yonge.cooleshow.biz.dal.service.CourseGroupService;
 import com.yonge.cooleshow.biz.dal.support.WrapperUtil;
@@ -88,6 +89,14 @@ public class TeacherCourseGroupController extends BaseController {
         return succeed(courseGroupService.queryPageLiveCourseGroup(param));
     }
 
+    @ApiOperation("直播课拥有的声部信息")
+    @GetMapping("/liveSubject")
+    public HttpResponseResult<List<Subject>> liveSubject() {
+        List<Subject> subjectList = courseGroupService.liveSubject();
+        return succeed(subjectList);
+    }
+
+
     @ApiOperation("创建直播课程组-新增课程组")
     @PostMapping("/addLiveCourse")
     public HttpResponseResult<Object> addLiveCourse(@RequestBody LiveCourseGroupDto dto) {