Browse Source

Merge branch 'zx_online_network' of http://git.dayaedu.com/yonge/cooleshow into test

# Conflicts:
#	pom.xml
zouxuan 1 năm trước cách đây
mục cha
commit
5c1ce362e4
22 tập tin đã thay đổi với 229 bổ sung197 xóa
  1. 3 0
      cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/CourseCoursewareController.java
  2. 10 28
      cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/CourseCoursewareController.java
  3. 3 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleStudentMusicSheetDao.java
  4. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ImNetworkDeviceControlDto.java
  5. 3 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ImNetworkDeviceStateChangedMessage.java
  6. 3 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ImNetworkMusicSheetDownloadMessageContent.java
  7. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ImNetworkMusicSheetDto.java
  8. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseScheduleStudentMusicSheet.java
  9. 2 2
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/MusicSheetAccompaniment.java
  10. 3 14
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetAccompanimentService.java
  11. 7 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetService.java
  12. 40 48
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseCoursewareServiceImpl.java
  13. 70 29
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ImNetworkRoomServiceImpl.java
  14. 10 13
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetAccompanimentServiceImpl.java
  15. 35 17
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java
  16. 4 5
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/RoomServiceImpl.java
  17. 4 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseCoursewareVo.java
  18. 6 12
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseCoursewareMapper.xml
  19. 3 10
      cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseScheduleStudentMusicSheetDao.xml
  20. 1 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml
  21. 3 2
      pom.xml
  22. 14 0
      toolset/toolset-mybatis/src/main/java/com/yonge/toolset/mybatis/support/PageUtil.java

+ 3 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/CourseCoursewareController.java

@@ -39,6 +39,9 @@ public class CourseCoursewareController extends BaseController {
     @PostMapping("/page")
     @ApiOperation(value = "查询分页", notes = "传入courseCoursewareSearch")
     public HttpResponseResult<PageInfo<CourseCoursewareVo>> page(@RequestBody CourseCoursewareSearch query) {
+		if(query.getClientType() == null){
+			query.setClientType(ClientEnum.TEACHER);
+		}
 		IPage<CourseCoursewareVo> pages = courseCoursewareService.selectPage(PageUtil.getPage(query), query);
         return succeed(PageUtil.pageInfo(pages));
 	}

+ 10 - 28
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/CourseCoursewareController.java

@@ -1,29 +1,22 @@
 package com.yonge.cooleshow.teacher.controller;
 
 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.CourseCoursewareSearch;
 import com.yonge.cooleshow.biz.dal.entity.CourseCourseware;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.service.CourseCoursewareService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.vo.CourseCoursewareVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
-import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.base.util.StringUtil;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.validation.Valid;
 import java.util.Date;
 
@@ -32,12 +25,11 @@ import java.util.Date;
 @Api(value = "课件表", tags = "课件表")
 public class CourseCoursewareController extends BaseController {
 
-	@Autowired
+	@Resource
 	private CourseCoursewareService courseCoursewareService;
 
-
-	@Autowired
-	private SysUserFeignService sysUserFeignService;
+	@Resource
+	private SysUserService sysUserService;
 
 	/**
 	 * 查询分页
@@ -45,12 +37,8 @@ public class CourseCoursewareController extends BaseController {
 	@PostMapping("/page")
 	@ApiOperation(value = "查询分页", notes = "传入courseCoursewareSearch")
 	public HttpResponseResult<PageInfo<CourseCoursewareVo>> page(@RequestBody CourseCoursewareSearch query) {
-		SysUser user = sysUserFeignService.queryUserInfo();
-		if (user == null) {
-			throw new BizException("请重新登录");
-		}
 		query.setClientType(ClientEnum.TEACHER);
-		query.setUserId(user.getId());
+		query.setUserId(sysUserService.getUserId());
 		IPage<CourseCoursewareVo> pages = courseCoursewareService.selectPage(PageUtil.getPage(query), query);
 		return succeed(PageUtil.pageInfo(pages));
 	}
@@ -61,14 +49,8 @@ public class CourseCoursewareController extends BaseController {
 	@PostMapping("/submit")
 	@ApiOperation(value = "新增或修改", notes = "传入courseCourseware")
 	public HttpResponseResult<CourseCourseware> submit(@Valid @RequestBody CourseCourseware courseCourseware) {
-
-		SysUser user = sysUserFeignService.queryUserInfo();
-		if (user == null) {
-			throw new BizException("请重新登录");
-		}
-
 		courseCourseware.setClientType(ClientEnum.TEACHER);
-		courseCourseware.setUserId(user.getId());
+		courseCourseware.setUserId(sysUserService.getUserId());
 		if (courseCourseware.getId() != null) {
 			courseCourseware.setUpdateTime(new Date());
 		} else {
@@ -84,7 +66,7 @@ public class CourseCoursewareController extends BaseController {
 	 */
 	@PostMapping("/remove/{id}")
 	@ApiOperation(value = "删除", notes = "传入id")
-	public HttpResponseResult remove(@PathVariable Long id ) {
+	public HttpResponseResult<Object> remove(@PathVariable Long id ) {
 		return status(courseCoursewareService.removeById(id));
 	}
 
@@ -94,7 +76,7 @@ public class CourseCoursewareController extends BaseController {
 	 */
 	@PostMapping("/remove")
 	@ApiOperation(value = "批量删除", notes = "传入id")
-	public HttpResponseResult remove(@RequestParam String ids ) {
+	public HttpResponseResult<Object> remove(@RequestParam String ids ) {
 		return status(courseCoursewareService.removeByIds(StringUtil.toLongList(ids)));
 	}
 }

+ 3 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/CourseScheduleStudentMusicSheetDao.java

@@ -15,17 +15,17 @@ import java.util.List;
  */
 public interface CourseScheduleStudentMusicSheetDao extends BaseMapper<CourseScheduleStudentMusicSheet> {
 
-    List<CourseScheduleStudentMusicSheetResult> queryBySheetIdAndCourseId(@Param("musicSheetAccompanimentId") Long musicSheetAccompanimentId,
+    List<CourseScheduleStudentMusicSheetResult> queryBySheetIdAndCourseId(@Param("musicSheetAccompanimentId") String musicSheetAccompanimentId,
                                                                           @Param("courseId") Long courseId,
                                                                           @Param("userId") Long userId,
                                                                           @Param("downStatus") Integer downStatus,
                                                                           @Param("userType") Integer userType);
     //开启原音播放
     void openPlayStatus(@Param("scheduleId") Long scheduleId,
-                       @Param("musicSheetAccompanimentId") Integer musicSheetAccompanimentId,
+                       @Param("musicSheetAccompanimentId") String musicSheetAccompanimentId,
                        @Param("userId") Long userId);
     void openAccompanimentPlayStatus(@Param("scheduleId") Long scheduleId,
-                                    @Param("musicSheetAccompanimentId") Integer musicSheetAccompanimentId,
+                                    @Param("musicSheetAccompanimentId") String musicSheetAccompanimentId,
                                     @Param("userId") Long userId);
     //关闭伴奏
     void closePlayStatus(@Param("courseId") Long courseId,@Param("userId") Long userId);

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

@@ -26,10 +26,10 @@ public class ImNetworkDeviceControlDto {
 	private Integer status;
 
 	@ApiModelProperty(value = "原音",required = true)
-	private Integer musicSheetId;
+	private String musicSheetId;
 
 	@ApiModelProperty(value = "伴奏",required = true)
-	private Integer musicScoreAccompanimentId;
+	private String musicScoreAccompanimentId;
 
 	@ApiModelProperty(value = "伴奏音量",required = true)
 	private Integer soundVolume = 100;

+ 3 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ImNetworkDeviceStateChangedMessage.java

@@ -6,7 +6,7 @@ import com.yonge.cooleshow.biz.dal.entity.BaseMessage;
 public class ImNetworkDeviceStateChangedMessage extends BaseMessage {
     private boolean enable;
     private int type;
-    private Integer musicSheetAccompanimentId;
+    private String musicSheetAccompanimentId;
     private String userId;
     private String userName;
     private Integer soundVolume = 100;
@@ -32,11 +32,11 @@ public class ImNetworkDeviceStateChangedMessage extends BaseMessage {
         this.type = type;
     }
 
-    public Integer getMusicSheetAccompanimentId() {
+    public String getMusicSheetAccompanimentId() {
         return musicSheetAccompanimentId;
     }
 
-    public void setMusicSheetAccompanimentId(Integer musicSheetAccompanimentId) {
+    public void setMusicSheetAccompanimentId(String musicSheetAccompanimentId) {
         this.musicSheetAccompanimentId = musicSheetAccompanimentId;
     }
 

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

@@ -9,11 +9,11 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
 public class ImNetworkMusicSheetDownloadMessageContent{
     //伴奏编号
     @ApiModelProperty(value = "伴奏编号")
-    private Integer id;
+    private String id;
 
     //曲目编号
     @ApiModelProperty(value = "曲目编号")
-    private Integer examSongId;
+    private String examSongId;
 
     //声部
     @ApiModelProperty(value = "声部")
@@ -29,7 +29,7 @@ public class ImNetworkMusicSheetDownloadMessageContent{
 
     //速度
     @ApiModelProperty(value = "速度")
-    private Integer speed;
+    private String speed;
 
     //xmlUrl
     @ApiModelProperty(value = "xmlUrl")

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/ImNetworkMusicSheetDto.java

@@ -7,7 +7,7 @@ import lombok.Data;
 public class ImNetworkMusicSheetDto extends ImNetworkBaseDto{
 
     @ApiModelProperty(value = "伴奏编号",required = true)
-    private Long musicScoreAccompanimentId;
+    private String musicScoreAccompanimentId;
 
     @ApiModelProperty(value = "伴奏下载状态(1下载成功0下载中2下载失败)",required = true)
     private Integer status;

+ 2 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/CourseScheduleStudentMusicSheet.java

@@ -38,7 +38,7 @@ public class CourseScheduleStudentMusicSheet implements Serializable {
 
     @TableField("music_sheet_accompaniment_id_")
     @ApiModelProperty(value = "伴奏编号")
-    private Long musicScoreAccompanimentId;
+    private String musicScoreAccompanimentId;
 
     @TableField("play_status_")
     @ApiModelProperty(value = "原音播放状态(1是0否)")
@@ -54,7 +54,7 @@ public class CourseScheduleStudentMusicSheet implements Serializable {
 
     @TableField("speed_")
     @ApiModelProperty(value = "播放速度")
-    private Integer speed = 100;
+    private String speed = "100";
 
     @TableField("create_time_")
     @ApiModelProperty(value = "${column.comment}")

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

@@ -27,7 +27,7 @@ public class MusicSheetAccompaniment extends BaseEntity {
 
     @TableId(value = "id_", type = IdType.AUTO)
     @ApiModelProperty(value = "主键id")
-    private Long id;  //主键ID
+    private String id;  //主键ID
 
     @TableField("music_sheet_id_")
     @ApiModelProperty(value = "曲谱ID")
@@ -64,7 +64,7 @@ public class MusicSheetAccompaniment extends BaseEntity {
 
     @TableField("speed_")
     @ApiModelProperty(value = "速度")
-    private Integer speed;  //速度
+    private String speed;  //速度
 
     @TableField("create_time_")
     @ApiModelProperty(value = "创建时间")

+ 3 - 14
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetAccompanimentService.java

@@ -1,28 +1,17 @@
 package com.yonge.cooleshow.biz.dal.service;
 
+import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
 import com.yonge.cooleshow.biz.dal.dao.MusicSheetAccompanimentDao;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 import java.util.List;
 
-/**
- * MusicSheetAccompanimentService服务类
- * @author yzp
- * @date 2022-03-25 23:46:28
- * @version v1.0
- **/
 public interface MusicSheetAccompanimentService extends IService<MusicSheetAccompaniment> {
 
-    /**
-     * 删除原音
-     *
-     * @param musicSheetId
-     */
-    void delByMusicSheetId(Long musicSheetId);
     MusicSheetAccompanimentDao getDao();
 
-    List<MusicSheetAccompaniment> getByMusicSheetId(Long musicSheetId);
-
     List<MusicSheetAccompaniment> initMusicSheetAccompaniment(String musicSheetJson,Long musicSheetId);
+
+    MusicSheetAccompaniment initSysMusicScoreAccompaniment(CbsMusicSheetWrapper.MusicSheetAccApplication sheetApplication);
 }

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

@@ -19,6 +19,7 @@ import com.yonge.cooleshow.biz.dal.wrapper.MusicSheetWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.UserPaymentOrderWrapper;
 import com.yonge.cooleshow.biz.dal.wrapper.music.MusicCompareWrapper;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.toolset.base.page.PageInfo;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -409,4 +410,10 @@ public interface MusicSheetService extends IService<MusicSheet> {
     void initMusicSheetDetailVo(CbsMusicSheetWrapper.AddMusicSheet addMusicSheet, MusicSheetDetailVo musicSheetAudit);
 
     void sync();
+
+    CbsMusicSheetWrapper.MusicSheetApplicationQuery getMusicSheetApplicationQuery();
+
+    PageInfo<CbsMusicSheetWrapper.MusicSheetAccApplication> queryCbsMusicSheetSoundApplication(CbsMusicSheetWrapper.MusicSheetApplicationQuery query);
+
+    List<CbsMusicSheetWrapper.MusicSheetApplication> queryCbsMusicSheetApplication(CbsMusicSheetWrapper.MusicSheetApplicationQuery query);
 }

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

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.biz.dal.service.impl;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.biz.dal.dao.CourseCoursewareDao;
 import com.yonge.cooleshow.biz.dal.dao.MusicSheetAccompanimentDao;
@@ -18,6 +19,7 @@ import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.mapper.SysUserMapper;
 import com.yonge.cooleshow.biz.dal.service.CourseCoursewareService;
 import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
+import com.yonge.cooleshow.biz.dal.service.SysUserService;
 import com.yonge.cooleshow.biz.dal.service.TenantAlbumMusicService;
 import com.yonge.cooleshow.biz.dal.vo.CourseCoursewareVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicSheetDetailVo;
@@ -30,13 +32,9 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.io.Serializable;
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 import java.util.stream.Collectors;
 
 
@@ -45,22 +43,22 @@ public class CourseCoursewareServiceImpl extends ServiceImpl<CourseCoursewareDao
     private final static Logger log = LoggerFactory.getLogger(CourseCoursewareServiceImpl.class);
 
 
-    @Autowired
+    @Resource
     private SysUserMapper userMapper;
 
-    @Autowired
+    @Resource
     private MusicSheetService musicSheetService;
 
-    @Autowired
-    private SysUserFeignService sysUserFeignService;
+    @Resource
+    private SysUserService sysUserService;
 
-    @Autowired
+    @Resource
     private MusicSheetAccompanimentDao musicSheetAccompanimentDao;
 
-    @Autowired
+    @Resource
     private TeacherDao teacherDao;
 
-    @Autowired
+    @Resource
     private TenantAlbumMusicService tenantAlbumMusicService;
 
 	@Override
@@ -82,42 +80,39 @@ 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());
-            }
-        }
-
-        // 设置原音
-        List<Long> musicSheetIdList = records.stream().map(CourseCoursewareVo::getMusicSheetId).collect(Collectors.toList());
-        List<MusicSheetAccompaniment> musicSheetAccompanimentList = musicSheetAccompanimentDao.selectList(
-                Wrappers.<MusicSheetAccompaniment>lambdaQuery()
-                        .in(MusicSheetAccompaniment::getMusicSheetId, musicSheetIdList));
-        if (CollectionUtils.isNotEmpty(musicSheetAccompanimentList)) {
-            Map<Long, List<MusicSheetAccompaniment>> map = musicSheetAccompanimentList.stream()
-                                                          .collect( Collectors.groupingBy(MusicSheetAccompaniment::getMusicSheetId));
+        //获取内容平台曲目信息
+        List<Long> cbsMusicSheetIds = records.stream().map(e -> e.getCbsMusicSheetId()).collect(Collectors.toList());
+        CbsMusicSheetWrapper.MusicSheetApplicationQuery applicationQuery = musicSheetService.getMusicSheetApplicationQuery();
+        applicationQuery.setMusicSheetIds(cbsMusicSheetIds);
+        applicationQuery.setRows(cbsMusicSheetIds.size());
+        List<CbsMusicSheetWrapper.MusicSheetApplication> applications = musicSheetService.queryCbsMusicSheetApplication(applicationQuery);
+        if(CollectionUtils.isNotEmpty(applications)){
+            Map<Long, CbsMusicSheetWrapper.MusicSheetApplication> applicationMap = applications.stream().collect(Collectors.toMap(CbsMusicSheetWrapper.MusicSheetApplication::getId, e -> e));
             for (CourseCoursewareVo record : records) {
-                List<MusicSheetAccompaniment> musicSheetAccompaniments = map.get(record.getMusicSheetId());
-                if (CollectionUtils.isEmpty(musicSheetAccompaniments)) {
-                    continue;
+                record.setUsername(userIdUsernameMap.get(record.getUserId()));
+                CbsMusicSheetWrapper.MusicSheetApplication sheetApplication = applicationMap.get(record.getCbsMusicSheetId());
+                if(sheetApplication != null){
+                    record.setMusicSheetName(sheetApplication.getName());
+                    record.setTitleImg(sheetApplication.getMusicCover());
+                    record.setMusicImg(sheetApplication.getMusicImg());
+                    record.setPaymentType(sheetApplication.getPaymentType());
+                    record.setStatus(sheetApplication.getStatus()?YesOrNoEnum.YES:YesOrNoEnum.NO);
+                    record.setMusicStatus(sheetApplication.getStatus()?YesOrNoEnum.YES:YesOrNoEnum.NO);
+                    List<CbsMusicSheetWrapper.MusicSheetAccompaniment> accompanimentList = sheetApplication.getMusicSheetAccompanimentList();
+                    if(CollectionUtils.isNotEmpty(accompanimentList)){
+                        CbsMusicSheetWrapper.MusicSheetAccompaniment accompaniment = accompanimentList.get(0);
+                        record.setUrl(accompaniment.getAudioFileUrl());
+                    }
+                    List<CbsMusicSheetWrapper.MusicSheetSound> soundList = sheetApplication.getMusicSheetSoundList();
+                    if(CollectionUtils.isNotEmpty(soundList)){
+                        record.setMusicSheetAccompanimentId(soundList.get(0).getId().toString());
+                        String url = soundList.stream().map(CbsMusicSheetWrapper.MusicSheetSound::getAudioFileUrl).collect(Collectors.joining(","));
+                        record.setMp3url(url);
+                    }
                 }
-                String url = musicSheetAccompaniments.stream()
-                                                         .map(MusicSheetAccompaniment::getAudioFileUrl)
-                                                         .collect(Collectors.joining(","));
-                record.setMp3url(url);
             }
         }
 
-
-
         // 查询有效直接返回
         if (query.getStatus() != null && query.getStatus().equals(YesOrNoEnum.YES)) {
             records = records.stream()
@@ -207,11 +202,8 @@ public class CourseCoursewareServiceImpl extends ServiceImpl<CourseCoursewareDao
     public CourseCourseware submit(CourseCourseware courseCourseware) {
 
         // 判断用户
-        com.yonge.cooleshow.auth.api.entity.SysUser user = sysUserFeignService.queryUserById(
+        com.yonge.cooleshow.auth.api.entity.SysUser user = sysUserService.getByUserId(
                 courseCourseware.getUserId());
-        if (user == null) {
-            throw new BizException("用户信息未找到");
-        }
 
         // 判断是否已经添加到附件
         Integer count = this.lambdaQuery()

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

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
 import com.google.common.collect.Lists;
 import com.microsvc.toolkit.middleware.rtc.RTCRoomPluginService;
 import com.microsvc.toolkit.middleware.rtc.message.TencentRequest;
@@ -23,6 +24,7 @@ import com.yonge.cooleshow.common.entity.BaseResponse;
 import com.yonge.cooleshow.common.enums.ErrorEnum;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.utils.date.DateUtil;
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -31,11 +33,11 @@ import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.support.TransactionTemplate;
-import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -85,7 +87,6 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
     private ImService imService;
     @Resource
     private TransactionTemplate transactionTemplate;
-
     @Override
     public ImNetworkRoomDao getDao() {
         return this.baseMapper;
@@ -114,9 +115,8 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
 
         ImNetworkRoomResult joinRoomResult = new ImNetworkRoomResult();
         String imUserId = imGroupService.getImUserId(sysUser.getUserId(), userRole);
-        List<CourseScheduleStudentMusicSheetResult> studentMusicSheetResults =
-                courseScheduleStudentMusicSheetService.getDao().queryBySheetIdAndCourseId(null,
-                        Long.parseLong(roomId), null, null, null);
+        List<CourseScheduleStudentMusicSheetResult> studentMusicSheetResults = this.initCourseScheduleStudentMusicScore(courseScheduleStudentMusicSheetService.getDao()
+                .queryBySheetIdAndCourseId(null,Long.parseLong(roomId), null, null, null));
         //获取学员列表
         List<CourseScheduleStudentPayment> studentPayments =
                 courseScheduleStudentPaymentService.lambdaQuery().eq(CourseScheduleStudentPayment::getCourseId,roomId).list();
@@ -184,6 +184,42 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         return BaseResponse.success(joinRoomResult);
     }
 
+    private List<CourseScheduleStudentMusicSheetResult> initCourseScheduleStudentMusicScore(List<CourseScheduleStudentMusicSheetResult> scheduleStudentMusicScores) {
+        List<CourseScheduleStudentMusicSheetResult> result = new ArrayList<>();
+        if(CollectionUtils.isEmpty(scheduleStudentMusicScores)){
+            return result;
+        }
+        List<Long> musicSheetSoundIds = scheduleStudentMusicScores.stream().map(e->Long.parseLong(e.getMusicScoreAccompanimentId()))
+                .distinct().collect(Collectors.toList());
+        List<CbsMusicSheetWrapper.MusicSheetAccApplication> sheetApplications = this.getSheetApplications(musicSheetSoundIds);
+        Map<Long, CbsMusicSheetWrapper.MusicSheetAccApplication> sheetApplicationMap = sheetApplications.stream()
+                .collect(Collectors.toMap(CbsMusicSheetWrapper.MusicSheetAccApplication::getMusicSheetSoundId, Function.identity()));
+        for (CourseScheduleStudentMusicSheetResult studentMusicScore : scheduleStudentMusicScores) {
+            CbsMusicSheetWrapper.MusicSheetAccApplication sheetApplication =
+                    sheetApplicationMap.get(Long.parseLong(studentMusicScore.getMusicScoreAccompanimentId()));
+            if(sheetApplication == null) {
+                continue;
+            }
+            studentMusicScore.setMusicScoreName(sheetApplication.getName());
+            //管乐迷的历史问题,原音和伴奏反过来
+            studentMusicScore.setMp3Url(sheetApplication.getUrl());
+            studentMusicScore.setUrl(sheetApplication.getMp3Url());
+            result.add(studentMusicScore);
+        }
+        return result;
+    }
+
+    private List<CbsMusicSheetWrapper.MusicSheetAccApplication> getSheetApplications(List<Long> musicSheetSoundIds){
+        CbsMusicSheetWrapper.MusicSheetApplicationQuery query = musicSheetService.getMusicSheetApplicationQuery();
+        query.setRows(musicSheetSoundIds.size());
+        query.setMusicSheetSoundIds(musicSheetSoundIds);
+        List<CbsMusicSheetWrapper.MusicSheetAccApplication> applications = musicSheetService.queryCbsMusicSheetSoundApplication(query).getRows();
+        if (CollectionUtils.isEmpty(applications)) {
+            throw new BizException("曲目信息不存在");
+        }
+        return applications;
+    }
+
     @Override
     public BaseResponse<ImNetworkRoomResult> roomInfo(ImNetworkBaseDto imNetworkBaseDto) {
         // 当前登录用户ID
@@ -211,7 +247,8 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         ImNetworkRoomMember roomMember = imNetworkRoomMemberService.lambdaQuery().eq(ImNetworkRoomMember::getRoomId,roomId)
                 .eq(ImNetworkRoomMember::getUserId,imUserId).last("LIMIT 1").one();
         List<CourseScheduleStudentMusicSheetResult> studentMusicSheetResults =
-                courseScheduleStudentMusicSheetService.getDao().queryBySheetIdAndCourseId(null, Long.parseLong(roomId), null, null, null);
+                this.initCourseScheduleStudentMusicScore(courseScheduleStudentMusicSheetService.getDao()
+                        .queryBySheetIdAndCourseId(null, Long.parseLong(roomId), null, null, null));
         if(!CollectionUtils.isEmpty(studentMusicSheetResults)){
             List<CourseScheduleStudentMusicSheetResult> musicScores = studentMusicSheetResults.stream().
                     filter(e -> e.getUserId().equals(userId)).collect(Collectors.toList());
@@ -249,8 +286,8 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
     }
 
     private void setMusicSheetList(List<ImNetworkRoomMemberResult> roomMemberList,Long courseScheduleId){
-        List<CourseScheduleStudentMusicSheetResult> musicSheetResults = courseScheduleStudentMusicSheetService.getDao().
-                queryBySheetIdAndCourseId(null,courseScheduleId,null,null,null);
+        List<CourseScheduleStudentMusicSheetResult> musicSheetResults = this.initCourseScheduleStudentMusicScore(courseScheduleStudentMusicSheetService.getDao().
+                queryBySheetIdAndCourseId(null,courseScheduleId,null,null,null));
         if (!CollectionUtils.isEmpty(musicSheetResults)) {
             //分组塞到学员列表中
             Map<String, List<CourseScheduleStudentMusicSheetResult>> musicSheetResultMap = musicSheetResults.stream().
@@ -380,14 +417,15 @@ 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("伴奏编号不能为空"));
+        String accompanimentId = Optional.of(musicSheetDto).map(ImNetworkMusicSheetDto::getMusicScoreAccompanimentId).orElseThrow(() -> new BizException("伴奏编号不能为空"));
         log.info("pushDownloadMusicSheetMsg: roomId:{} ,accompanimentId:{}", roomId,accompanimentId);
         Long userId = sysUserService.getUserId();
-        MusicSheetAccompaniment accompaniment = musicSheetAccompanimentService.getById(accompanimentId);
         List<CourseScheduleStudentMusicSheetResult> scheduleStudentMusicSheetResults = courseScheduleStudentMusicSheetService.getDao().
                 queryBySheetIdAndCourseId(accompanimentId, Long.parseLong(roomId), null, null, 0);
 
-        if (scheduleStudentMusicSheetResults.isEmpty()) {
+        //获取曲目信息
+        CbsMusicSheetWrapper.MusicSheetAccApplication sheetApplication = this.getSheetApplication(accompanimentId);
+        if (CollectionUtils.isEmpty(scheduleStudentMusicSheetResults)) {
             //第一次下载,生成数据
             List<CourseScheduleStudentPayment> studentPayments =
                     courseScheduleStudentPaymentService.lambdaQuery().eq(CourseScheduleStudentPayment::getCourseId,roomId).list();
@@ -395,7 +433,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
             studentIds.forEach(e -> {
                 CourseScheduleStudentMusicSheetResult musicSheet = new CourseScheduleStudentMusicSheetResult();
                 musicSheet.setMusicScoreAccompanimentId(accompanimentId);
-                musicSheet.setSpeed(accompaniment.getSpeed());
+                musicSheet.setSpeed(sheetApplication.getPlaySpeed());
                 musicSheet.setCourseScheduleId(Long.parseLong(roomId));
                 musicSheet.setUserId(e);
                 musicSheet.setUserType(0);
@@ -403,7 +441,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
             });
             CourseScheduleStudentMusicSheetResult musicSheet = new CourseScheduleStudentMusicSheetResult();
             musicSheet.setMusicScoreAccompanimentId(accompanimentId);
-            musicSheet.setSpeed(accompaniment.getSpeed());
+            musicSheet.setSpeed(sheetApplication.getPlaySpeed());
             musicSheet.setCourseScheduleId(Long.parseLong(roomId));
             musicSheet.setUserId(userId);
             musicSheet.setUserType(1);
@@ -413,20 +451,14 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
         //通知学员下载伴奏
         // IM用户ID
         String imUserId = imGroupService.getImUserId(userId,musicSheetDto.getClientType());
+        MusicSheetAccompaniment accompaniment = musicSheetAccompanimentService.initSysMusicScoreAccompaniment(sheetApplication);
+        accompaniment.setId(accompanimentId);
         ImNetworkMusicSheetDownloadMessageContent content = JSON.parseObject(JSON.toJSONString(accompaniment), ImNetworkMusicSheetDownloadMessageContent.class);
         if(StringUtils.isNotEmpty(accompaniment.getMusicSubjectId())){
             content.setSubjectId(Integer.parseInt(accompaniment.getMusicSubjectId()));
         }
         content.setMp3Url(accompaniment.getAudioFileUrl());
-        if(accompaniment.getMusicSheetId() != null){
-            content.setExamSongId(accompaniment.getMusicSheetId().intValue());
-            MusicSheet musicSheet = musicSheetService.getById(accompaniment.getMusicSheetId());
-            if(musicSheet != null){
-                content.setUrl(StringUtils.isNotEmpty(musicSheet.getAudioFileUrl())?musicSheet.getAudioFileUrl()
-                        :StringUtils.isNotEmpty(musicSheet.getMetronomeUrl())?musicSheet.getMetronomeUrl()
-                        :musicSheet.getUrl());
-            }
-        }
+        content.setUrl(accompaniment.getMetronomeUrl());
         BasicUserInfo basicUserInfo = teacherDao.getBasicUserInfo(userId);
         basicUserInfo.setImUserId(imUserId);
         CourseSchedule courseSchedule = courseScheduleService.getById(roomId);
@@ -543,7 +575,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
             long scheduleId = Long.parseLong(roomId);
             switch (deviceControl.getDeviceType()) {
                 case MUSIC_SHEET:
-                    Integer musicSheetId = Optional.ofNullable(deviceControl.getMusicScoreAccompanimentId()).
+                    String musicSheetId = Optional.ofNullable(deviceControl.getMusicScoreAccompanimentId()).
                             orElseThrow(()-> new BizException("请选择曲目"));
                     //关闭所有曲目播放
                     courseScheduleStudentMusicSheetService.getDao().closePlayStatus(scheduleId,userId);
@@ -551,7 +583,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
                     courseScheduleStudentMusicSheetService.getDao().openPlayStatus(scheduleId,musicSheetId,userId);
                     break;
                 case ACCOMPANIMENT:
-                  Integer musicSheetAccompanimentId = Optional.ofNullable(deviceControl.getMusicScoreAccompanimentId()).
+                    String musicSheetAccompanimentId = Optional.ofNullable(deviceControl.getMusicScoreAccompanimentId()).
                             orElseThrow(()-> new BizException("请选择曲目"));
                     //关闭所有曲目播放
                     courseScheduleStudentMusicSheetService.getDao().closePlayStatus(scheduleId,userId);
@@ -649,17 +681,15 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
     @Transactional(rollbackFor = Exception.class)
     public void musicSheetDownNotify(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("伴奏编号不能为空"));
+        String accompanimentId = Optional.of(musicSheetDto).map(ImNetworkMusicSheetDto::getMusicScoreAccompanimentId).orElseThrow(() -> new BizException("伴奏编号不能为空"));
         Integer status = Optional.of(musicSheetDto).map(ImNetworkMusicSheetDto::getStatus).orElseThrow(() -> new BizException("伴奏下载状态不能为空"));
         log.info("musicSheetDownNotify: roomId:{} ,accompanimentId:{} ,status:{}", roomId,accompanimentId,status);
         Long userId = sysUserService.getUserId();
-        List<CourseScheduleStudentMusicSheetResult> studentMusicSheetResults = courseScheduleStudentMusicSheetService.getDao().
-                queryBySheetIdAndCourseId(accompanimentId, Long.parseLong(roomId),userId, null, null);
+        List<CourseScheduleStudentMusicSheetResult> studentMusicSheetResults = this.initCourseScheduleStudentMusicScore(courseScheduleStudentMusicSheetService.getDao().
+                queryBySheetIdAndCourseId(accompanimentId, Long.parseLong(roomId),userId, null, null));
         if(CollectionUtils.isEmpty(studentMusicSheetResults)){
             return;
         }
-        Optional.ofNullable(musicSheetAccompanimentService.getById(accompanimentId)).
-                orElseThrow(()-> new BizException("曲目信息不存在"));
         //修改下载状态
         CourseScheduleStudentMusicSheetResult musicSheetResult = studentMusicSheetResults.get(0);
         musicSheetResult.setDownStatus(status);
@@ -691,4 +721,15 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
             return Boolean.TRUE;
         });
     }
+
+    private CbsMusicSheetWrapper.MusicSheetAccApplication getSheetApplication(String musicSheetSoundId){
+        CbsMusicSheetWrapper.MusicSheetApplicationQuery query = musicSheetService.getMusicSheetApplicationQuery();
+        query.setRows(1);
+        query.setMusicSheetSoundId(Long.parseLong(musicSheetSoundId));
+        List<CbsMusicSheetWrapper.MusicSheetAccApplication> applications = musicSheetService.queryCbsMusicSheetSoundApplication(query).getRows();
+        if (org.apache.commons.collections.CollectionUtils.isEmpty(applications)) {
+            throw new BizException("曲目信息不存在");
+        }
+        return applications.get(0);
+    }
 }

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

@@ -37,19 +37,6 @@ public class MusicSheetAccompanimentServiceImpl extends ServiceImpl<MusicSheetAc
     }
 
     @Override
-    public List<MusicSheetAccompaniment> getByMusicSheetId(Long musicSheetId) {
-
-        return this.lambdaQuery()
-                .eq(MusicSheetAccompaniment::getMusicSheetId,musicSheetId)
-                .list();
-    }
-
-    @Override
-    public void delByMusicSheetId(Long musicSheetId) {
-        musicSheetAccompanimentDao.delByMusicSheetId(musicSheetId);
-    }
-
-    @Override
     @Transactional(rollbackFor = Exception.class)
     public List<MusicSheetAccompaniment> initMusicSheetAccompaniment(String musicSheetJson,Long musicSheetId) {
         CbsMusicSheetWrapper.AddMusicSheet addMusicSheet = JSON.parseObject(musicSheetJson, CbsMusicSheetWrapper.AddMusicSheet.class);
@@ -69,4 +56,14 @@ public class MusicSheetAccompanimentServiceImpl extends ServiceImpl<MusicSheetAc
         }
         return background;
     }
+
+    @Override
+    public MusicSheetAccompaniment initSysMusicScoreAccompaniment(CbsMusicSheetWrapper.MusicSheetAccApplication musicSheetApplication) {
+        MusicSheetAccompaniment record = new MusicSheetAccompaniment();
+        record.setSpeed(musicSheetApplication.getPlaySpeed());
+        record.setTrack(musicSheetApplication.getTrack());
+        record.setAudioFileUrl(musicSheetApplication.getMp3Url());
+        record.setMetronomeUrl(musicSheetApplication.getUrl());
+        return record;
+    }
 }

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

@@ -17,7 +17,6 @@ import com.dayaedu.cbs.openfeign.client.MusicFeignClientService;
 import com.dayaedu.cbs.openfeign.properties.OpenFeignClientConfigProperties;
 import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetApplicationExtendClientWrapper;
 import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
-import com.dayaedu.cbs.openfeign.wrapper.music.CbsSubjectApiWrapper;
 import com.google.common.collect.Maps;
 import com.microsvc.toolkit.common.response.paging.PageInfo;
 import com.microsvc.toolkit.common.response.template.R;
@@ -703,22 +702,6 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
                 }
             }
         }
-
-
-
-        /*List<MusicSheetAccompaniment> background = detail.getBackground();
-        if (CollectionUtils.isNotEmpty(background)) {
-            // 兼容管乐迷曲目同步数据
-            long count = background.stream().map(MusicSheetAccompaniment::getSortNumber)
-                .filter(x -> Objects.nonNull(x) && x <= 0).count();
-            if (count == background.size()) {
-                // 管乐迷原音排序字段
-                background.sort(Comparator.comparing(MusicSheetAccompaniment::getId));
-            } else {
-                // 酷乐秀原音排序字段
-                background.sort(Comparator.comparing(MusicSheetAccompaniment::getSortNumber));
-            }
-        }*/
         return detail;
     }
 
@@ -2373,6 +2356,41 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         executorService.shutdown();
     }
 
+    @Override
+    public CbsMusicSheetWrapper.MusicSheetApplicationQuery getMusicSheetApplicationQuery() {
+        CbsMusicSheetWrapper.MusicSheetApplicationQuery query = new CbsMusicSheetWrapper.MusicSheetApplicationQuery();
+        query.setDetailFlag(true);
+        query.setDelFlag(true);
+        query.setPage(1);
+        query.setApplicationId(applicationId);
+        return query;
+    }
+
+    @Override
+    public com.yonge.toolset.base.page.PageInfo<CbsMusicSheetWrapper.MusicSheetAccApplication> queryCbsMusicSheetSoundApplication(CbsMusicSheetWrapper.MusicSheetApplicationQuery query) {
+        R<com.microsvc.toolkit.common.response.paging.PageInfo<CbsMusicSheetWrapper.MusicSheetAccApplication>> pageInfoR =
+                musicFeignClientService.musicSheetAccPageByApplication(query);
+        if(pageInfoR.getCode() != 200){
+            throw new BizException("获取曲目信息失败");
+        }
+        com.microsvc.toolkit.common.response.paging.PageInfo<CbsMusicSheetWrapper.MusicSheetAccApplication> pageInfo = pageInfoR.getData();
+        return PageUtil.pageInfo(pageInfo);
+    }
+
+    @Override
+    public List<CbsMusicSheetWrapper.MusicSheetApplication> queryCbsMusicSheetApplication(CbsMusicSheetWrapper.MusicSheetApplicationQuery query) {
+        R<com.microsvc.toolkit.common.response.paging.PageInfo<CbsMusicSheetWrapper.MusicSheetApplication>> pageInfoR =
+                musicFeignClientService.musicSheetPageByApplication(query);
+        if(pageInfoR.getCode() != 200){
+            throw new BizException("获取曲目信息失败");
+        }
+        com.microsvc.toolkit.common.response.paging.PageInfo<CbsMusicSheetWrapper.MusicSheetApplication> pageInfo = pageInfoR.getData();
+        if(pageInfo != null && CollectionUtils.isNotEmpty(pageInfo.getRows())){
+            return pageInfo.getRows();
+        }
+        return new ArrayList<>();
+    }
+
 
     private void syncMusicSheet(MusicSheet record, Date date) {
         List<MusicSheetAccompaniment> list = musicSheetAccompanimentService.lambdaQuery().eq(MusicSheetAccompaniment::getMusicSheetId, record.getId()).list();

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

@@ -18,7 +18,6 @@ import com.yonge.cooleshow.biz.dal.service.RoomService;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -37,13 +36,13 @@ public class RoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNetworkRoom
 
     private final static Logger log = LoggerFactory.getLogger(RoomServiceImpl.class);
 
-    @Autowired
+    @Resource
     private RTCRoomPluginContext rtcRoomPluginContext;
-    @Autowired
+    @Resource
     private ImNetworkRoomMemberStatusService imNetworkRoomMemberStatusService;
-    @Autowired
+    @Resource
     private ImNetworkRoomMemberService imNetworkRoomMemberService;
-    @Autowired
+    @Resource
     private ImService imService;
     @Resource
     private RedisTemplate<String,Object> redisTemplate;

+ 4 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/CourseCoursewareVo.java

@@ -14,7 +14,7 @@ public class CourseCoursewareVo extends CourseCourseware{
 	@ApiModelProperty("用户名")
 	private String username;
 
-	private Long musicSheetAccompanimentId;
+	private String musicSheetAccompanimentId;
 
 	private String url;
 
@@ -30,14 +30,15 @@ public class CourseCoursewareVo extends CourseCourseware{
 	@ApiModelProperty(hidden = true)
 	private String paymentType;
 
-
 	@ApiModelProperty("曲目图片 多个逗号隔开")
 	private String musicImg;
 
 	@ApiModelProperty("原音地址,多个逗号隔开")
 	private String mp3url;
 
-
 	@ApiModelProperty(value = "曲目是否启用 0:未启用, 1:启用",hidden = true)
 	private YesOrNoEnum musicStatus;
+
+	@ApiModelProperty("曲目编号")
+	private Long cbsMusicSheetId;
 }

+ 6 - 12
cooleshow-user/user-biz/src/main/resources/config/mybatis/CourseCoursewareMapper.xml

@@ -30,17 +30,11 @@
     <select id="selectPage" resultType="com.yonge.cooleshow.biz.dal.vo.CourseCoursewareVo">
 		SELECT         
         	<include refid="baseColumns" />
-        ,ms.music_sheet_name_ as musicSheetName
-        ,ms.state_ as musicStatus
-        ,ms.payment_type_ as paymentType
-        ,ms.music_img_ as musicImg
-        ,ms.title_img_ as titleImg
-		,CASE WHEN ms.audio_file_url_ IS NOT NULL AND ms.audio_file_url_ != '' THEN ms.audio_file_url_
-        WHEN ms.metronome_url_ IS NOT NULL AND ms.metronome_url_ != '' THEN ms.metronome_url_ ELSE ms.url_ END AS url
+		,ms.cbs_music_sheet_id_ as cbsMusicSheetId
 		FROM course_courseware t
         left join music_sheet ms on t.music_sheet_id_ = ms.id_
         <where>
-            t.del_flag_ = 0
+            t.del_flag_ = 0 AND ms.cbs_music_sheet_id_ IS NOT NULL
             <if test="param.userId != null">
                 and t.user_id_ = #{param.userId}
             </if>
@@ -48,7 +42,7 @@
                 and t.client_type_ = #{param.clientType}
             </if>
             <if test="param.idAndName != null and param.idAndName != ''">
-                and  (ms.music_sheet_name_ like '%${param.idAndName}%' or ms.id_ like '%${param.idAndName}%')
+                and  (ms.music_sheet_name_ like '%${param.idAndName}%' or ms.cbs_music_sheet_id_ = '${param.idAndName}')
             </if>
             <if test="param.musicTagIdList != null and param.musicTagIdList.size() != 0">
                 and
@@ -57,10 +51,10 @@
                 </foreach>
             </if>
             <if test="param.subjectIdList != null and param.subjectIdList.size() != 0">
-                and
-                <foreach collection="param.subjectIdList" separator="or" item="item"  open="(" close=")" >
+                and (ms.music_subject_ is null or ms.music_subject_ = '' OR ms.music_sheet_type_ = 'CONCERT' OR
+                <foreach collection="param.subjectIdList" separator="or" item="item" open="(" close=")">
                     find_in_set(#{item},ms.music_subject_)
-                </foreach>
+                </foreach>)
             </if>
             <if test="param.status != null and param.status.code == 1">
                  and (ms.payment_type_ like '%FREE%'

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

@@ -53,18 +53,11 @@
         </if>
     </update>
 
-    <resultMap id="CourseScheduleStudentMusicSheetResult" type="com.yonge.cooleshow.biz.dal.dto.CourseScheduleStudentMusicSheetResult" extends="BaseResultMap">
-        <result property="url" column="url"/>
-        <result property="mp3Url" column="audio_file_url_"/>
-        <result property="musicScoreName" column="music_sheet_name_"/>
+    <resultMap id="queryBySheetIdAndCourseIdMap" type="com.yonge.cooleshow.biz.dal.dto.CourseScheduleStudentMusicSheetResult" extends="BaseResultMap">
     </resultMap>
-    <select id="queryBySheetIdAndCourseId" resultMap="CourseScheduleStudentMusicSheetResult">
-        SELECT cssm.*,ms.music_sheet_name_ ,
-        CASE WHEN ms.audio_file_url_ IS NOT NULL AND ms.audio_file_url_ != '' THEN ms.audio_file_url_
-        WHEN ms.metronome_url_ IS NOT NULL AND ms.metronome_url_ != '' THEN ms.metronome_url_ ELSE ms.url_ END AS url,msa.audio_file_url_
+    <select id="queryBySheetIdAndCourseId" resultMap="queryBySheetIdAndCourseIdMap">
+        SELECT cssm.*
         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_
         <where>
             <if test="courseId != null">
                 AND cssm.course_schedule_id_ = #{courseId}

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

@@ -272,6 +272,7 @@
         left join album_music_relate amr on t.id_ = amr.music_sheet_id_
         left join sys_user su on t.create_by_ = su.id_
         <where>
+            t.cbs_music_sheet_id_ IS NOT NULL
             <if test="param.composer != null">
                 AND t.composer_ LIKE '%${param.composer}%'
             </if>

+ 3 - 2
pom.xml

@@ -23,7 +23,8 @@
 		<google.zxing.version>3.4.0</google.zxing.version>
 		<redisson.version>3.11.5</redisson.version>
 		<maven.test.skip>true</maven.test.skip>
-		<cbs.version>1.0.7</cbs.version>
+		<cbs.version>1.0.11</cbs.version>
+		<microsvc.version>1.0.8</microsvc.version>
 	</properties>
 
 
@@ -69,7 +70,7 @@
 			<dependency>
 				<groupId>com.microsvc.toolkit</groupId>
 				<artifactId>microsvc-dependencies-bom</artifactId>
-				<version>1.0.7</version>
+				<version>${microsvc.version}</version>
 				<type>pom</type>
 				<scope>import</scope>
 			</dependency>

+ 14 - 0
toolset/toolset-mybatis/src/main/java/com/yonge/toolset/mybatis/support/PageUtil.java

@@ -127,6 +127,20 @@ public class PageUtil {
         return pageInfo;
     }
 
+    public static <T> PageInfo<T> pageInfo(com.microsvc.toolkit.common.response.paging.PageInfo<T> source) {
+        if (Objects.isNull(source)) {
+            return new PageInfo<>(1, 20);
+        }
+        int total = Integer.parseInt(String.valueOf(source.getTotal()));
+        int limit = Integer.parseInt(String.valueOf(source.getLimit()));
+        PageInfo<T> resultPage = new PageInfo<>();
+        resultPage.setRows(source.getRows());
+        resultPage.setPageNo(Long.valueOf(source.getCurrent()).intValue());
+        resultPage.setLimit(limit);
+        resultPage.setTotal(total);
+        return resultPage;
+    }
+
     /**
      * 获取Map中的关键字获取分页数据
      *