Bläddra i källkod

曲目列表返回原音数据

zouxuan 8 månader sedan
förälder
incheckning
e467e23604

+ 4 - 1
mec-application/src/main/java/com/ym/mec/teacher/controller/SysMusicScoreController.java

@@ -1,9 +1,12 @@
 package com.ym.mec.teacher.controller;
 
+import com.ym.mec.biz.dal.entity.SysMusicScore;
 import com.ym.mec.biz.dal.enums.ClientTypeEnum;
 import com.ym.mec.biz.dal.page.SysExamSongQueryInfo;
 import com.ym.mec.biz.service.SysMusicScoreService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.page.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -22,7 +25,7 @@ public class SysMusicScoreController extends BaseController {
 
     @ApiOperation(value = "分页查询")
     @GetMapping("/queryPage2")
-    public Object queryPage2(SysExamSongQueryInfo queryInfo) {
+    public HttpResponseResult<PageInfo<SysMusicScore>> queryPage2(SysExamSongQueryInfo queryInfo) {
         queryInfo.setType("COMMON");
         queryInfo.setClientFlag(true);
         queryInfo.setClientType(ClientTypeEnum.SMART_PRACTICE);

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysMusicScore.java

@@ -7,6 +7,8 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import java.util.List;
+
 /**
  * 对应数据库表(sys_music_score):
  */
@@ -146,6 +148,8 @@ public class SysMusicScore {
 	@ApiModelProperty("是否节奏练习")
 	private Boolean isAllSubject;
 
+	private List<SysMusicScoreAccompaniment> background;
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysMusicScoreAccompanimentService.java

@@ -10,6 +10,7 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
 import java.util.List;
+import java.util.Map;
 
 public interface SysMusicScoreAccompanimentService extends BaseService<String, SysMusicScoreAccompaniment> {
 
@@ -19,6 +20,8 @@ public interface SysMusicScoreAccompanimentService extends BaseService<String, S
 
     List<SysMusicScoreAccompaniment> queryAccPage(SysExamSongQueryInfo queryInfo);
 
+    List<SysMusicScoreAccompaniment> queryAccPage(Map<String, Object> params);
+
     List<Subject> querySubjectIds(Integer categoriesId);
 
     PageInfo<SysMusicScoreAccompaniment> queryScorePage(SysExamSongQueryInfo queryInfo);

+ 15 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicScoreAccompanimentServiceImpl.java

@@ -244,7 +244,12 @@ public class SysMusicScoreAccompanimentServiceImpl extends BaseServiceImpl<Strin
 		}
 		Map<String, Object> params = new HashMap<>();
 		MapUtil.populateMap(params, queryInfo);
-        List<SysMusicScoreAccompaniment> sysMusicScoreAccompaniments = sysMusicScoreAccompanimentDao.queryAccPage(params);
+        return this.queryAccPage(params);
+    }
+
+	@Override
+	public List<SysMusicScoreAccompaniment> queryAccPage(Map<String, Object> params) {
+		List<SysMusicScoreAccompaniment> sysMusicScoreAccompaniments = sysMusicScoreAccompanimentDao.queryAccPage(params);
 		Map<Integer, SysMusicScoreCategories> categoriesMap = new HashMap<>();
 		if(CollectionUtils.isNotEmpty(sysMusicScoreAccompaniments)){
 			List<Integer> categoryIds = sysMusicScoreAccompaniments.stream()
@@ -253,20 +258,21 @@ public class SysMusicScoreAccompanimentServiceImpl extends BaseServiceImpl<Strin
 					.map(String::valueOf).collect(Collectors.joining(",")));
 			categoriesMap = categories.stream().collect(Collectors.toMap(SysMusicScoreCategories::getId, Function.identity()));
 		}
-        for (SysMusicScoreAccompaniment sysMusicScoreAccompaniment : sysMusicScoreAccompaniments) {
+		for (SysMusicScoreAccompaniment sysMusicScoreAccompaniment : sysMusicScoreAccompaniments) {
 			SysMusicScoreCategories categories = categoriesMap.get(sysMusicScoreAccompaniment.getCategoriesId());
 			if(categories != null){
 				sysMusicScoreAccompaniment.setCategoriesName(categories.getName());
 				sysMusicScoreAccompaniment.setParentCategoriesId(categories.getParentId());
 			}
 			if (sysMusicScoreAccompaniment.getIsOpenMetronome() ==null || sysMusicScoreAccompaniment.getIsOpenMetronome()) {
-                if (StringUtils.isNotBlank(sysMusicScoreAccompaniment.getUrl())) {
-                    sysMusicScoreAccompaniment.setMetronomeUrl(sysMusicScoreAccompaniment.getUrl());
-                }
-            }
-        }
-        return this.initAccompaniment(sysMusicScoreAccompaniments);
-    }
+				if (StringUtils.isNotBlank(sysMusicScoreAccompaniment.getUrl())) {
+					sysMusicScoreAccompaniment.setMetronomeUrl(sysMusicScoreAccompaniment.getUrl());
+				}
+			}
+		}
+		return this.initAccompaniment(sysMusicScoreAccompaniments);
+	}
+
 
 	@Override
 	public List<Subject> querySubjectIds(Integer categoriesId) {

+ 16 - 20
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicScoreServiceImpl.java

@@ -22,10 +22,7 @@ import com.ym.mec.biz.dal.dto.ReasonDto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.SysExamSongQueryInfo;
-import com.ym.mec.biz.service.CbsMusicScoreCategoriesService;
-import com.ym.mec.biz.service.InstrumentService;
-import com.ym.mec.biz.service.SubjectService;
-import com.ym.mec.biz.service.SysMusicScoreService;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
@@ -62,6 +59,8 @@ public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicS
     @Resource
     private SysMusicScoreAccompanimentDao sysMusicScoreAccompanimentDao;
     @Resource
+    private SysMusicScoreAccompanimentService sysMusicScoreAccompanimentService;
+    @Resource
     private MusicFeignClientService musicFeignClientService;
     @Resource
     private InstrumentService instrumentService;
@@ -161,13 +160,6 @@ public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicS
             List<String> cbsMusicSheetIds = records.stream().map(SysMusicScore::getCbsMusicSheetId).collect(Collectors.toList());
             List<CbsMusicSheetWrapper.MusicSheetApplication> applications = this.queryCbsMusicSheetApplication(cbsMusicSheetIds);
             if(CollectionUtils.isNotEmpty(applications)){
-//                List<Integer> categoriesIds = records.stream().map(SysMusicScore::getCbsMusicCategoriesId).distinct().filter(Objects::nonNull).collect(Collectors.toList());
-                //获取分部列表
-//                Map<Integer, String> organMap = MapUtil.convertMybatisMap(sysMusicScoreCategoriesDao.queryOrganByIds(categoriesIds));
-                /*Map<Integer, String> map = new HashMap<>();
-                if(CollectionUtils.isNotEmpty(categoriesIds)){
-                    map = cbsMusicScoreCategoriesService.getCategoriesNameMap(categoriesIds);
-                }*/
                 Map<Long, CbsMusicSheetWrapper.MusicSheetApplication> musicSheetApplicationMap = applications
                         .stream().collect(Collectors.toMap(CbsMusicSheetWrapper.MusicSheetApplication::getId, Function.identity()));
 
@@ -180,25 +172,29 @@ public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicS
                             this.queryMusicalInstrument(Arrays.stream(instrumentIds.split(",")).map(Integer::parseInt).distinct().collect(Collectors.toList()));
                     musicalInstrumentQueryMap = musicalInstrumentQueryDtos.stream().collect(Collectors.toMap(CbsMusicalInstrumentWrapper.MusicalInstrumentQueryDto::getId, o -> o, (o1, o2) -> o1));
                 }
-                //获取分类名称
-                /*Map<Integer, String> categoriesMap = new HashMap<>(categoriesIds.size());
-                for (Integer categoriesId : categoriesIds) {
-                    if(null != categoriesId){
-                        categoriesMap.put(categoriesId, getParentTreeName(categoriesId));
-                    }
-                }*/
                 //获取声部乐器关联
                 List<Instrument> list = instrumentService.lambdaQuery().list();
                 Map<Integer, Instrument> instrumentMap = list.stream().collect(Collectors.toMap(Instrument::getSubjectId, o -> o));
                 for (SysMusicScore record : records) {
-//                    record.setCategoriesName(map.get(record.getCbsMusicCategoriesId()));
-//                    record.setOrganName(organMap.get(record.getMusicScoreCategoriesId()));
                     CbsMusicSheetWrapper.MusicSheetApplication musicSheetApplication = musicSheetApplicationMap.get(Long.parseLong(record.getCbsMusicSheetId()));
                     if(musicSheetApplication != null){
                         this.initMusicSheetVo(record,musicSheetApplication,musicalInstrumentQueryMap,instrumentMap);
                     }
                 }
             }
+            List<Integer> musicSheetIds = records.stream().map(SysMusicScore::getId).collect(Collectors.toList());
+            Map<String, Object> params = new HashMap<>();
+            params.put("musicScoreIds", musicSheetIds);
+            List<SysMusicScoreAccompaniment> accompaniments = sysMusicScoreAccompanimentService.queryAccPage(params);
+            if(CollectionUtils.isNotEmpty(accompaniments)){
+                Map<Integer, List<SysMusicScoreAccompaniment>> accompanimentMap = accompaniments.stream().collect(Collectors.groupingBy(SysMusicScoreAccompaniment::getExamSongId));
+                for (SysMusicScore record : records) {
+                    List<SysMusicScoreAccompaniment> accompanimentList = accompanimentMap.get(record.getId());
+                    if(CollectionUtils.isNotEmpty(accompanimentList)){
+                        record.setBackground(accompanimentList);
+                    }
+                }
+            }
         }
     }
 

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/SysMusicScoreAccompanimentMapper.xml

@@ -178,6 +178,12 @@
 					#{item}
 				</foreach>
 			</if>
+			<if test="musicScoreIds != null and musicScoreIds.size > 0">
+				AND ses.id_ IN
+				<foreach collection="musicScoreIds" separator="," item="item" open="(" close=")">
+					#{item}
+				</foreach>
+			</if>
 			<if test="filterCategoriesIds != null and filterCategoriesIds != ''">
 				AND find_in_set(ses.cbs_music_categories_id_,#{filterCategoriesIds}) = 0
 			</if>