zouxuan 2 năm trước cách đây
mục cha
commit
e58aebddcc

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ImNetworkMusicSheetDownloadMessageContent.java

@@ -8,11 +8,11 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
 @Data
 public class ImNetworkMusicSheetDownloadMessageContent{
     //伴奏编号
-    @ApiModelProperty(value = "伴奏编号,改造需要,这里代表的是曲目编号")
+    @ApiModelProperty(value = "伴奏编号")
     private Integer id;
 
     //曲目编号
-    @ApiModelProperty(value = "曲目编号,改造需要,这里代表的是伴奏编号")
+    @ApiModelProperty(value = "曲目编号")
     private Integer examSongId;
 
     //声部

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

@@ -7,6 +7,7 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.biz.dal.dao.CourseCoursewareDao;
 import com.yonge.cooleshow.biz.dal.dao.MusicSheetAccompanimentDao;
 import com.yonge.cooleshow.biz.dal.dao.TeacherDao;
+import com.yonge.cooleshow.biz.dal.dto.MusicSheetAccompanimentResult;
 import com.yonge.cooleshow.biz.dal.dto.search.CourseCoursewareSearch;
 import com.yonge.cooleshow.biz.dal.entity.CourseCourseware;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment;
@@ -75,8 +76,19 @@ public class CourseCoursewareServiceImpl extends ServiceImpl<CourseCoursewareDao
             return courseCoursewareVoIPage;
         }
         Map<Long, String> userIdUsernameMap = sysUsers.stream().collect(Collectors.toMap(SysUser::getId, SysUser::getUsername));
+        //获取曲目关联的伴奏
+        List<Long> musicSheetIds = records.stream().map(e -> e.getMusicSheetId()).distinct().collect(Collectors.toList());
+        Map<Long, MusicSheetAccompaniment> accoompanimentMap = musicSheetAccompanimentDao.selectList(
+                        Wrappers.<MusicSheetAccompaniment>lambdaQuery()
+                                .in(MusicSheetAccompaniment::getMusicSheetId, musicSheetIds)).stream()
+                .collect(Collectors.groupingBy(MusicSheetAccompaniment::getMusicSheetId, Collectors.collectingAndThen(Collectors.toList(), e -> e.get(0))));
         for (CourseCoursewareVo record : records) {
             record.setUsername(userIdUsernameMap.get(record.getUserId()));
+            MusicSheetAccompaniment musicSheetAccompaniment = accoompanimentMap.get(record.getMusicSheetId());
+            if (musicSheetAccompaniment != null) {
+                record.setMusicSheetAccompanimentId(musicSheetAccompaniment.getId());
+                record.setUrl(musicSheetAccompaniment.getMetronomeUrl());
+            }
         }
 
         // 设置原音

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

@@ -374,13 +374,12 @@ 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 musicScoreId = Optional.of(musicSheetDto).map(ImNetworkMusicSheetDto::getMusicScoreAccompanimentId).orElseThrow(() -> new BizException("伴奏编号不能为空"));
-        log.info("pushDownloadMusicSheetMsg: roomId:{} ,musicScoreId:{}", roomId,musicScoreId);
+        Long accompanimentId = Optional.of(musicSheetDto).map(ImNetworkMusicSheetDto::getMusicScoreAccompanimentId).orElseThrow(() -> new BizException("伴奏编号不能为空"));
+        log.info("pushDownloadMusicSheetMsg: roomId:{} ,accompanimentId:{}", roomId,accompanimentId);
         Long userId = sysUserService.getUserId();
-        MusicSheetAccompaniment accompaniment = musicSheetAccompanimentService.lambdaQuery().eq(MusicSheetAccompaniment::getMusicSheetId,musicScoreId)
-                .last("LIMIT 1").one();
+        MusicSheetAccompaniment accompaniment = musicSheetAccompanimentService.getById(accompanimentId);
         List<CourseScheduleStudentMusicSheetResult> scheduleStudentMusicSheetResults = courseScheduleStudentMusicSheetService.getDao().
-                queryBySheetIdAndCourseId(musicScoreId, Long.parseLong(roomId), null, null, 0);
+                queryBySheetIdAndCourseId(accompanimentId, Long.parseLong(roomId), null, null, 0);
 
         if (scheduleStudentMusicSheetResults.isEmpty()) {
             //第一次下载,生成数据
@@ -389,14 +388,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(musicScoreId);
+                musicSheet.setMusicScoreAccompanimentId(accompanimentId);
                 musicSheet.setSpeed(accompaniment.getSpeed());
                 musicSheet.setCourseScheduleId(Long.parseLong(roomId));
                 musicSheet.setUserId(e);
                 scheduleStudentMusicSheetResults.add(musicSheet);
             });
             CourseScheduleStudentMusicSheetResult musicSheet = new CourseScheduleStudentMusicSheetResult();
-            musicSheet.setMusicScoreAccompanimentId(musicScoreId);
+            musicSheet.setMusicScoreAccompanimentId(accompanimentId);
             musicSheet.setSpeed(accompaniment.getSpeed());
             musicSheet.setCourseScheduleId(Long.parseLong(roomId));
             musicSheet.setUserId(userId);
@@ -408,8 +407,7 @@ 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.getId().intValue());
-        content.setId(accompaniment.getMusicSheetId().intValue());
+        content.setExamSongId(accompaniment.getMusicSheetId().intValue());
         if(StringUtils.isNotEmpty(accompaniment.getMusicSubjectId())){
             content.setSubjectId(Integer.parseInt(accompaniment.getMusicSubjectId()));
         }

+ 6 - 73
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseCoursewareVo.java

@@ -1,18 +1,12 @@
 package com.yonge.cooleshow.biz.dal.vo;
 
-import com.baomidou.mybatisplus.annotation.TableField;
 import com.yonge.cooleshow.biz.dal.entity.CourseCourseware;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
 
-import javax.validation.constraints.NotBlank;
-import javax.validation.constraints.Size;
-
-/**
- * @Author: liweifan
- * @Data: 2022-11-02 10:17:44
- */
+@Data
 @ApiModel(value = "CourseCoursewareVo对象", description = "课件表查询视图对象")
 public class CourseCoursewareVo extends CourseCourseware{
 	private static final long serialVersionUID = 1L;
@@ -20,6 +14,10 @@ public class CourseCoursewareVo extends CourseCourseware{
 	@ApiModelProperty("用户名")
 	private String username;
 
+	private Long musicSheetAccompanimentId;
+
+	private String url;
+
 	@ApiModelProperty(value = "曲谱名称")
 	private String musicSheetName;  //曲谱名称
 
@@ -42,69 +40,4 @@ public class CourseCoursewareVo extends CourseCourseware{
 
 	@ApiModelProperty(value = "曲目是否启用 0:未启用, 1:启用",hidden = true)
 	private YesOrNoEnum musicStatus;
-
-
-	public String getMusicImg() {
-		return musicImg;
-	}
-
-	public void setMusicImg(String musicImg) {
-		this.musicImg = musicImg;
-	}
-
-	public String getMp3url() {
-		return mp3url;
-	}
-
-	public void setMp3url(String mp3url) {
-		this.mp3url = mp3url;
-	}
-
-	public YesOrNoEnum getMusicStatus() {
-		return musicStatus;
-	}
-
-	public void setMusicStatus(YesOrNoEnum musicStatus) {
-		this.musicStatus = musicStatus;
-	}
-
-	public String getPaymentType() {
-		return paymentType;
-	}
-
-	public void setPaymentType(String paymentType) {
-		this.paymentType = paymentType;
-	}
-
-	public YesOrNoEnum getStatus() {
-		return status;
-	}
-
-	public void setStatus(YesOrNoEnum status) {
-		this.status = status;
-	}
-
-	public String getMusicSheetName() {
-		return musicSheetName;
-	}
-
-	public void setMusicSheetName(String musicSheetName) {
-		this.musicSheetName = musicSheetName;
-	}
-
-	public String getTitleImg() {
-		return titleImg;
-	}
-
-	public void setTitleImg(String titleImg) {
-		this.titleImg = titleImg;
-	}
-
-	public String getUsername() {
-		return username;
-	}
-
-	public void setUsername(String username) {
-		this.username = username;
-	}
 }

+ 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 ms ON ms.id_ = cssm.music_sheet_accompaniment_id_
-        LEFT JOIN music_sheet_accompaniment msa ON msa.music_sheet_id_ = ms.id_
+        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_
         <where>
             <if test="courseId != null">
                 AND cssm.course_schedule_id_ = #{courseId}