Browse Source

Merge branch 'zx_saas_cbs' of http://git.dayaedu.com/yonge/mec into dev

zouxuan 1 year ago
parent
commit
79231a57cc

+ 30 - 31
mec-application/src/main/java/com/ym/mec/web/controller/SubjectController.java

@@ -127,7 +127,7 @@ public class SubjectController extends BaseController {
      */
     @ApiOperation(value = "内容平台对应的声部数据")
     @PostMapping("/cbsSubject/page")
-    public HttpResponseResult<SubjectWrapper.CbsSubject> subjectPage(@RequestBody SubjectWrapper.CbsSubjectQuery query){
+    public HttpResponseResult<List<SubjectWrapper.CbsSubject>> subjectPage(@RequestBody SubjectWrapper.CbsSubjectQuery query){
         // 移除已被使用的声部ID
         if (Boolean.TRUE.equals(query.getRemoveUsed())) {
             List<Subject> list = subjectService.getDao().notInSubjectIds(query.getSubjectId());
@@ -142,21 +142,15 @@ public class SubjectController extends BaseController {
         try {
             query.setPage(1);
             query.setRows(-1);
-            Subject sb = subjectService.getDao().get(query.getSubjectId());
-            if (sb == null || sb.getCbsSubjectId() == null) {
-                return succeed(null);
-            }
-            query.setIds(Collections.singletonList(sb.getCbsSubjectId().longValue()));
             List<CbsSubjectWrapper.Subject> subjectPageInfo = musicFeignClientService.subjectPage(query).feignData().getRows();
             if (CollectionUtils.isEmpty(subjectPageInfo)) {
-                return succeed(null);
+                return succeed(new ArrayList<>());
             }
-            CbsSubjectWrapper.Subject subject = subjectPageInfo.get(0);
-//            List<Integer> subjectIds = subjectPageInfo.stream().map(CbsSubjectWrapper.Subject::getId).map(Long::intValue).collect(Collectors.toList());
+            List<Integer> subjectIds = subjectPageInfo.stream().map(CbsSubjectWrapper.Subject::getId).map(Long::intValue).collect(Collectors.toList());
 
             // 查询乐器信息
             CbsMusicalInstrumentWrapper.MusicalInstrumentQuery musicalInstrumentQuery = new CbsMusicalInstrumentWrapper.MusicalInstrumentQuery();
-            musicalInstrumentQuery.setSubjectIds(Collections.singletonList(subject.getId().intValue()));
+            musicalInstrumentQuery.setSubjectIds(subjectIds);
             musicalInstrumentQuery.setPage(1);
             musicalInstrumentQuery.setRows(9999);
             List<CbsMusicalInstrumentWrapper.MusicalInstrumentQueryDto> rows = musicFeignClientService
@@ -171,31 +165,36 @@ public class SubjectController extends BaseController {
             // 转map
             Map<Long, SubjectWrapper.Subject> subjectMap = list.stream().collect(Collectors.groupingBy(SubjectWrapper.Subject::getCbsSubjectId, Collectors.collectingAndThen(Collectors.toList(), v -> v.get(0))));
 
-            SubjectWrapper.CbsSubject cbsSubject = new SubjectWrapper.CbsSubject();
-            BeanUtils.copyProperties(subject, cbsSubject);
+            List<SubjectWrapper.CbsSubject> cbsSubjects = new ArrayList<>();
+            for (CbsSubjectWrapper.Subject subject : subjectPageInfo) {
+                SubjectWrapper.CbsSubject cbsSubject = new SubjectWrapper.CbsSubject();
+                BeanUtils.copyProperties(subject, cbsSubject);
 
-            List<CbsMusicalInstrumentWrapper.MusicalInstrumentQueryDto> musicalInstrumentQueryDtos = subjectIdMap.get(cbsSubject.getId());
-            if (CollectionUtils.isEmpty(musicalInstrumentQueryDtos)) {
-                return succeed(cbsSubject);
-            }
-            cbsSubject.setInstruments(JSON.parseArray(JSON.toJSONString(musicalInstrumentQueryDtos), SubjectWrapper.Instrument.class));
+                List<CbsMusicalInstrumentWrapper.MusicalInstrumentQueryDto> musicalInstrumentQueryDtos = subjectIdMap.get(cbsSubject.getId());
+                if (CollectionUtils.isEmpty(musicalInstrumentQueryDtos)) {
+                    continue;
+                }
+                cbsSubject.setInstruments(JSON.parseArray(JSON.toJSONString(musicalInstrumentQueryDtos), SubjectWrapper.Instrument.class));
+
+                cbsSubjects.add(cbsSubject);
+                // 本地已经添加过的曲目数据
+                SubjectWrapper.Subject subject1 = subjectMap.get(subject.getId());
+                if (subject1 == null) {
+                    continue;
+                }
+                List<InstrumentWrapper.Instrument> instruments = subject1.getInstruments();
+                if (CollectionUtils.isEmpty(instruments)) {
+                    continue;
+                }
+                // instruments 转map
+                Map<Integer, InstrumentWrapper.Instrument> instrumentMap = instruments.stream().collect(Collectors.toMap(InstrumentWrapper.Instrument::getId, o -> o));
+                for (SubjectWrapper.Instrument instrument : cbsSubject.getInstruments()) {
+                    instrument.setAdded(instrumentMap.containsKey(instrument.getId()));
+                }
 
-            // 本地已经添加过的曲目数据
-            SubjectWrapper.Subject subject1 = subjectMap.get(subject.getId());
-            if (subject1 == null) {
-                return succeed(cbsSubject);
-            }
-            List<InstrumentWrapper.Instrument> instruments = subject1.getInstruments();
-            if (CollectionUtils.isEmpty(instruments)) {
-                return succeed(cbsSubject);
-            }
-            // instruments 转map
-            Map<Integer, InstrumentWrapper.Instrument> instrumentMap = instruments.stream().collect(Collectors.toMap(InstrumentWrapper.Instrument::getId, o -> o));
-            for (SubjectWrapper.Instrument instrument : cbsSubject.getInstruments()) {
-                instrument.setAdded(instrumentMap.containsKey(instrument.getId()));
             }
 
-            return succeed(cbsSubject);
+            return succeed(cbsSubjects);
         } catch (Exception e) {
             log.error("内容平台对应的声部数据查询失败", e);
             throw BizException.from("内容平台服务异常");

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/SubjectMapper.xml

@@ -45,6 +45,9 @@
             <if test="parentSubjectId != null">
                 parent_subject_id_ = #{parentSubjectId},
             </if>
+            <if test="cbsSubjectId != null">
+                cbs_subject_id_ = #{cbsSubjectId},
+            </if>
             <if test="code != null">
                 code_ = #{code},
             </if>