zouxuan 2 gadi atpakaļ
vecāks
revīzija
1d54154d3f

+ 56 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/MusicSheetAccompanimentResult.java

@@ -0,0 +1,56 @@
+package com.yonge.cooleshow.biz.dal.dto;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.yonge.cooleshow.common.entity.BaseEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+@Data
+@Accessors(chain = true)
+@AllArgsConstructor
+@NoArgsConstructor
+public class MusicSheetAccompanimentResult extends BaseEntity {
+
+    @ApiModelProperty(value = "主键id")
+    private Long id;  //主键ID
+
+    @ApiModelProperty(value = "曲谱ID")
+    private Long examSongId;  //曲谱ID
+
+    @ApiModelProperty(value = "声部")
+    private String subjectId;  //声部
+
+    @ApiModelProperty(value = "MP3原声音频文件URL")
+    private String mp3Url;  //MP3原声音频文件URL
+
+	@ApiModelProperty(value = "MP3节拍器伴奏")
+	private String metronomeMp3Url;  //MP3原声音频文件URL
+
+	@ApiModelProperty(value = "类型")
+	private String track;  //MP3原声音频文件URL
+
+    @ApiModelProperty(value = "排序号")
+    private Integer sortNumber;  //排序号
+
+    @ApiModelProperty(value = "速度")
+    private Integer speed;  //速度
+
+    @ApiModelProperty(value = "创建时间")
+    private java.util.Date createTime;  //创建时间
+
+    @ApiModelProperty(value = "创建人(老师或者是后台平台用户)")
+    private Long createBy;  //创建人(老师或者是后台平台用户)
+
+    @Override
+    public String toString() {
+        return ToStringBuilder.reflectionToString(this);
+    }
+
+}

+ 4 - 5
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheetAccompaniment.java

@@ -7,7 +7,6 @@ import com.yonge.cooleshow.common.entity.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
-import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 import lombok.experimental.Accessors;
@@ -32,19 +31,19 @@ public class MusicSheetAccompaniment extends BaseEntity {
 
     @TableField("music_sheet_id_")
     @ApiModelProperty(value = "曲谱ID")
-    private Long examSongId;  //曲谱ID
+    private Long musicSheetId;  //曲谱ID
 
     @TableField("music_subject_")
     @ApiModelProperty(value = "声部")
-    private String subjectId;  //声部
+    private String musicSubjectId;  //声部
 
     @TableField("audio_file_url_")
     @ApiModelProperty(value = "MP3原声音频文件URL")
-    private String mp3Url;  //MP3原声音频文件URL
+    private String audioFileUrl;  //MP3原声音频文件URL
 
 	@TableField("metronome_url_")
 	@ApiModelProperty(value = "MP3节拍器伴奏")
-	private String metronomeMp3Url;  //MP3原声音频文件URL
+	private String metronomeUrl;  //MP3原声音频文件URL
 
 	@TableField("track_")
 	@ApiModelProperty(value = "类型")

+ 3 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseCoursewareServiceImpl.java

@@ -83,17 +83,17 @@ public class CourseCoursewareServiceImpl extends ServiceImpl<CourseCoursewareDao
         List<Long> musicSheetIdList = records.stream().map(CourseCoursewareVo::getMusicSheetId).collect(Collectors.toList());
         List<MusicSheetAccompaniment> musicSheetAccompanimentList = musicSheetAccompanimentDao.selectList(
                 Wrappers.<MusicSheetAccompaniment>lambdaQuery()
-                        .in(MusicSheetAccompaniment::getExamSongId, musicSheetIdList));
+                        .in(MusicSheetAccompaniment::getMusicSheetId, musicSheetIdList));
         if (CollectionUtils.isNotEmpty(musicSheetAccompanimentList)) {
             Map<Long, List<MusicSheetAccompaniment>> map = musicSheetAccompanimentList.stream()
-                                                          .collect( Collectors.groupingBy(MusicSheetAccompaniment::getExamSongId));
+                                                          .collect( Collectors.groupingBy(MusicSheetAccompaniment::getMusicSheetId));
             for (CourseCoursewareVo record : records) {
                 List<MusicSheetAccompaniment> musicSheetAccompaniments = map.get(record.getMusicSheetId());
                 if (CollectionUtils.isEmpty(musicSheetAccompaniments)) {
                     continue;
                 }
                 String url = musicSheetAccompaniments.stream()
-                                                         .map(MusicSheetAccompaniment::getMp3Url)
+                                                         .map(MusicSheetAccompaniment::getAudioFileUrl)
                                                          .collect(Collectors.joining(","));
                 record.setMp3url(url);
             }

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

@@ -374,13 +374,13 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
     @Transactional(rollbackFor = Exception.class)
     public void pushDownloadMusicSheetMsg(ImNetworkMusicSheetDto musicSheetDto) throws Exception {
         String roomId = Optional.ofNullable(musicSheetDto).map(ImNetworkBaseDto::getRoomId).orElseThrow(() -> new BizException("房间编号不能为空"));
-        Long accompanimentId = Optional.of(musicSheetDto).map(ImNetworkMusicSheetDto::getMusicScoreAccompanimentId).orElseThrow(() -> new BizException("伴奏编号不能为空"));
-        log.info("pushDownloadMusicSheetMsg: roomId:{} ,accompanimentId:{}", roomId,accompanimentId);
+        Long musicScoreId = Optional.of(musicSheetDto).map(ImNetworkMusicSheetDto::getMusicScoreAccompanimentId).orElseThrow(() -> new BizException("伴奏编号不能为空"));
+        log.info("pushDownloadMusicSheetMsg: roomId:{} ,musicScoreId:{}", roomId,musicScoreId);
         Long userId = sysUserService.getUserId();
-        MusicSheetAccompaniment accompaniment = musicSheetAccompanimentService.lambdaQuery().eq(MusicSheetAccompaniment::getExamSongId,accompanimentId)
+        MusicSheetAccompaniment accompaniment = musicSheetAccompanimentService.lambdaQuery().eq(MusicSheetAccompaniment::getMusicSheetId,musicScoreId)
                 .last("LIMIT 1").one();
         List<CourseScheduleStudentMusicSheetResult> scheduleStudentMusicSheetResults = courseScheduleStudentMusicSheetService.getDao().
-                queryBySheetIdAndCourseId(accompaniment.getId(), Long.parseLong(roomId), null, null, 0);
+                queryBySheetIdAndCourseId(musicScoreId, Long.parseLong(roomId), null, null, 0);
 
         if (scheduleStudentMusicSheetResults.isEmpty()) {
             //第一次下载,生成数据
@@ -389,14 +389,14 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
             Set<Long> studentIds = studentPayments.stream().map(CourseScheduleStudentPayment::getUserId).collect(Collectors.toSet());
             studentIds.forEach(e -> {
                 CourseScheduleStudentMusicSheetResult musicSheet = new CourseScheduleStudentMusicSheetResult();
-                musicSheet.setMusicScoreAccompanimentId(accompaniment.getId());
+                musicSheet.setMusicScoreAccompanimentId(musicScoreId);
                 musicSheet.setSpeed(accompaniment.getSpeed());
                 musicSheet.setCourseScheduleId(Long.parseLong(roomId));
                 musicSheet.setUserId(e);
                 scheduleStudentMusicSheetResults.add(musicSheet);
             });
             CourseScheduleStudentMusicSheetResult musicSheet = new CourseScheduleStudentMusicSheetResult();
-            musicSheet.setMusicScoreAccompanimentId(accompaniment.getId());
+            musicSheet.setMusicScoreAccompanimentId(musicScoreId);
             musicSheet.setSpeed(accompaniment.getSpeed());
             musicSheet.setCourseScheduleId(Long.parseLong(roomId));
             musicSheet.setUserId(userId);
@@ -408,6 +408,11 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         // IM用户ID
         String imUserId = imGroupService.getImUserId(userId,musicSheetDto.getClientType());
         ImNetworkMusicSheetDownloadMessageContent content = JSON.parseObject(JSON.toJSONString(accompaniment), ImNetworkMusicSheetDownloadMessageContent.class);
+        content.setExamSongId(accompaniment.getMusicSheetId().intValue());
+        if(StringUtils.isNotEmpty(accompaniment.getMusicSubjectId())){
+            content.setSubjectId(Integer.parseInt(accompaniment.getMusicSubjectId()));
+        }
+        content.setMp3Url(accompaniment.getAudioFileUrl());
         BasicUserInfo basicUserInfo = teacherDao.getBasicUserInfo(userId);
         basicUserInfo.setImUserId(imUserId);
         CourseSchedule courseSchedule = courseScheduleService.getById(roomId);

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

@@ -34,7 +34,7 @@ public class MusicSheetAccompanimentServiceImpl extends ServiceImpl<MusicSheetAc
     public List<MusicSheetAccompaniment> getByMusicSheetId(Long musicSheetId) {
 
         return this.lambdaQuery()
-                .eq(MusicSheetAccompaniment::getExamSongId,musicSheetId)
+                .eq(MusicSheetAccompaniment::getMusicSheetId,musicSheetId)
                 .list();
     }
 

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

@@ -229,7 +229,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 
         Long sheetId = musicSheet.getId();
         List<MusicSheetAccompaniment> list = musicSheetDto.getBackground();
-        list.forEach(musicSheetAccompaniment -> musicSheetAccompaniment.setExamSongId(sheetId).setCreateBy(userId).setCreateTime(new Date()));
+        list.forEach(musicSheetAccompaniment -> musicSheetAccompaniment.setMusicSheetId(sheetId).setCreateBy(userId).setCreateTime(new Date()));
         return musicSheetAccompanimentService.saveBatch(list);
 
     }
@@ -758,12 +758,12 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
             // 替换 伴奏
             List<MusicSheetAccompaniment> musicSheetAccompanimentList = musicSheetAccompanimentService.getByMusicSheetId(
                                                                                                               musicSheet.getId()).stream()
-                                                                                                      .peek(musicSheetAccompaniment -> musicSheetAccompaniment.setExamSongId(
+                                                                                                      .peek(musicSheetAccompaniment -> musicSheetAccompaniment.setMusicSheetId(
                                                                                                               originalMusicSheetId))
                                                                                                       .collect(Collectors.toList());
             List<MusicSheetAccompaniment> originalMusicSheetAccompanimentList = musicSheetAccompanimentService.getByMusicSheetId(
                                                                                                                       originalMusicSheetId).stream()
-                                                                                                              .peek(musicSheetAccompaniment -> musicSheetAccompaniment.setExamSongId(
+                                                                                                              .peek(musicSheetAccompaniment -> musicSheetAccompaniment.setMusicSheetId(
                                                                                                                       musicSheet.getId()))
                                                                                                               .collect(Collectors.toList());
 
@@ -1314,7 +1314,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
                 String[] audioFileUrls = sheetExport.getAudioFileUrls().split("[,,]");
                 for (String audioFileUrl : audioFileUrls) {
                     MusicSheetAccompaniment musicSheetAccompaniment = new MusicSheetAccompaniment();
-                    musicSheetAccompaniment.setMp3Url(audioFileUrl);
+                    musicSheetAccompaniment.setAudioFileUrl(audioFileUrl);
                     background.add(musicSheetAccompaniment);
                 }
                 musicSheetDto.setBackground(background);

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

@@ -60,8 +60,8 @@
     </resultMap>
     <select id="queryBySheetIdAndCourseId" resultMap="CourseScheduleStudentMusicSheetResult">
         SELECT cssm.*,msa.audio_file_url_ mp3_url_,ms.audio_file_url_,ms.music_sheet_name_  FROM course_schedule_student_music_sheet cssm
-        LEFT JOIN music_sheet_accompaniment msa ON cssm.music_sheet_accompaniment_id_ = msa.id_
-        LEFT JOIN music_sheet ms ON ms.id_ = msa.music_sheet_id_
+        LEFT JOIN music_sheet ms ON ms.id_ = cssm.music_sheet_accompaniment_id_
+        LEFT JOIN music_sheet_accompaniment msa ON csa.music_sheet_id_ = ms.id_
         <where>
             <if test="courseId != null">
                 AND cssm.course_schedule_id_ = #{courseId}

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

@@ -5,9 +5,9 @@
 
 	<resultMap id="BaseResultMap" type="com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment">
 	     <id column="id_" jdbcType="BIGINT" property="id" />
-		 <result column="music_sheet_id_" jdbcType="BIGINT" property="examSongId" />
-		 <result column="music_subject_" jdbcType="VARCHAR" property="subjectId" />
-		 <result column="audio_file_url_" jdbcType="VARCHAR" property="mp3Url" />
+		 <result column="music_sheet_id_" jdbcType="BIGINT" property="musicSheetId" />
+		 <result column="music_subject_" jdbcType="VARCHAR" property="musicSubjectId" />
+		 <result column="audio_file_url_" jdbcType="VARCHAR" property="audioFileUrl" />
 		 <result column="sort_number_" jdbcType="TINYINT" property="sortNumber" />
 		 <result column="speed_" jdbcType="TINYINT" property="speed" />
 		 <result column="create_time_" jdbcType="TIMESTAMP" property="createTime" />