Browse Source

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

# Conflicts:
#	pom.xml
zouxuan 2 months ago
parent
commit
74c87043b0

+ 20 - 0
mec-application/src/main/java/com/ym/mec/teacher/controller/SysMusicScoreController.java

@@ -5,6 +5,7 @@ import com.ym.mec.biz.dal.entity.SysMusicScore;
 import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.dal.enums.ClientTypeEnum;
 import com.ym.mec.biz.dal.page.SysExamSongQueryInfo;
+import com.ym.mec.biz.dal.wrapper.MusicSheetWrapper;
 import com.ym.mec.biz.service.SysMusicScoreService;
 import com.ym.mec.biz.service.SysUserService;
 import com.ym.mec.biz.service.TeacherService;
@@ -50,4 +51,23 @@ public class SysMusicScoreController extends BaseController {
         queryInfo.setClientType(ClientTypeEnum.SMART_PRACTICE);
         return succeed(sysMusicScoreService.queryMusicScorePageInfo(queryInfo));
     }
+
+    @ApiOperation(value = "分页查询简化")
+    @GetMapping("/queryPageSimple")
+    public HttpResponseResult<PageInfo<MusicSheetWrapper.MusicSheetSimpleDto>> queryPageSimple(SysExamSongQueryInfo queryInfo) {
+        //判断用户是否可以访问云练习
+        Integer userId = sysUserService.getUserId();
+        Teacher teacher = teacherDao.get(userId);
+        if (teacher == null) {
+            throw new BizException("老师信息不存在");
+        }
+        //是否限制用户使用云教练
+        if(teacher.getCoursewareLimit()){
+            throw new BizException("您没有权限使用云练习");
+        }
+        queryInfo.setType("COMMON");
+        queryInfo.setClientFlag(true);
+        queryInfo.setClientType(ClientTypeEnum.SMART_PRACTICE);
+        return succeed(sysMusicScoreService.queryMusicScorePageInfoSimple(queryInfo));
+    }
 }

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMusicScoreDao.java

@@ -9,6 +9,7 @@ import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 public interface SysMusicScoreDao extends BaseDAO<Integer, SysMusicScore> {
 
@@ -35,4 +36,8 @@ public interface SysMusicScoreDao extends BaseDAO<Integer, SysMusicScore> {
     SysMusicScore getCbsId(@Param("cbsMusicSheetId") Long cbsMusicSheetId);
 
     List<MusicSheetWrapper.CategoryMusicNumStat> getNumByCategoryIds(@Param("categoryIds") List<Integer> categoryIds);
+
+    List<MusicSheetWrapper.MusicSheetSimpleDto> queryPageSimple(@Param("params") Map<String, Object> params);
+
+    int findCountSimple(@Param("params") Map<String, Object> params);
 }

+ 19 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/MusicSheetWrapper.java

@@ -535,4 +535,23 @@ public class MusicSheetWrapper {
         @ApiModelProperty("用户类型")
         private ClientEnum userType;
     }
+
+    @Data
+    public static class MusicSheetSimpleDto{
+
+        @ApiModelProperty("主键")
+        private Long id;
+
+        @ApiModelProperty("内容平台曲目ID")
+        private String cbsMusicSheetId;
+
+        @ApiModelProperty("曲目封面图")
+        private String titleImg;
+
+        @ApiModelProperty("曲目名称")
+        private String name;
+
+        @ApiModelProperty("音频文件")
+        private String audioFileUrl;
+    }
 }

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysMusicScoreService.java

@@ -24,10 +24,14 @@ public interface SysMusicScoreService extends BaseService<Integer, SysMusicScore
 
     List<CbsMusicSheetWrapper.MusicSheetApplication> queryCbsMusicSheetApplication(CbsMusicSheetWrapper.MusicSheetApplicationQuery query);
 
+    List<CbsMusicSheetWrapper.MusicSheetApplicationSimple> queryCbsMusicSheetApplicationSimple(CbsMusicSheetWrapper.MusicSheetApplicationQuery query);
+
     PageInfo<CbsMusicSheetWrapper.MusicSheetAccApplication> queryCbsMusicSheetSoundApplication(CbsMusicSheetWrapper.MusicSheetApplicationQuery query);
 
     List<CbsMusicSheetWrapper.MusicSheetApplication> queryCbsMusicSheetApplication(List<String> cbsMusicSheetIds);
 
+    List<CbsMusicSheetWrapper.MusicSheetApplicationSimple> queryCbsMusicSheetApplicationSimple(List<String> cbsMusicSheetIds);
+
     //获取乐器名称
     List<CbsMusicalInstrumentWrapper.MusicalInstrumentQueryDto> queryMusicalInstrument(List<Integer> musicalInstrumentIds);
 
@@ -37,6 +41,8 @@ public interface SysMusicScoreService extends BaseService<Integer, SysMusicScore
     
     PageInfo<SysMusicScore> queryMusicScorePageInfo(SysExamSongQueryInfo queryInfo);
 
+    PageInfo<MusicSheetWrapper.MusicSheetSimpleDto> queryMusicScorePageInfoSimple(SysExamSongQueryInfo queryInfo);
+
     Map<Long, SysMusicScore> getMapByIds(List<Long> musicSheetIds);
 
     Boolean stateList(ReasonDto reasonDto);

+ 69 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicScoreServiceImpl.java

@@ -130,6 +130,20 @@ public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicS
     }
 
     @Override
+    public List<CbsMusicSheetWrapper.MusicSheetApplicationSimple> queryCbsMusicSheetApplicationSimple(CbsMusicSheetWrapper.MusicSheetApplicationQuery query) {
+        R<com.microsvc.toolkit.common.response.paging.PageInfo<CbsMusicSheetWrapper.MusicSheetApplicationSimple>> pageInfoR =
+                musicFeignClientService.musicSheetPageByApplicationSimple(query);
+        if(pageInfoR.getCode() != 200){
+            throw new BizException("获取曲目信息失败");
+        }
+        com.microsvc.toolkit.common.response.paging.PageInfo<CbsMusicSheetWrapper.MusicSheetApplicationSimple> pageInfo = pageInfoR.getData();
+        if(pageInfo != null && CollectionUtils.isNotEmpty(pageInfo.getRows())){
+            return pageInfo.getRows();
+        }
+        return new ArrayList<>();
+    }
+
+    @Override
     public PageInfo<CbsMusicSheetWrapper.MusicSheetAccApplication> queryCbsMusicSheetSoundApplication(CbsMusicSheetWrapper.MusicSheetApplicationQuery query) {
         R<com.microsvc.toolkit.common.response.paging.PageInfo<CbsMusicSheetWrapper.MusicSheetAccApplication>> pageInfoR =
                 musicFeignClientService.musicSheetAccPageByApplication(query);
@@ -148,6 +162,14 @@ public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicS
         return this.queryCbsMusicSheetApplication(query);
     }
 
+    @Override
+    public List<CbsMusicSheetWrapper.MusicSheetApplicationSimple> queryCbsMusicSheetApplicationSimple(List<String> cbsMusicSheetIds){
+        CbsMusicSheetWrapper.MusicSheetApplicationQuery query = this.getMusicSheetApplicationQuery();
+        query.setMusicSheetIds(cbsMusicSheetIds.stream().map(Long::parseLong).collect(Collectors.toList()));
+        query.setRows(cbsMusicSheetIds.size());
+        return this.queryCbsMusicSheetApplicationSimple(query);
+    }
+
     //获取乐器名称
     @Override
     public List<CbsMusicalInstrumentWrapper.MusicalInstrumentQueryDto> queryMusicalInstrument(List<Integer> musicalInstrumentIds){
@@ -164,6 +186,7 @@ public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicS
         return infoR.getData().getRows();
     }
 
+
     private void dealMusicScoreData(List<SysMusicScore> records){
         if (CollectionUtils.isNotEmpty(records)) {
             List<String> cbsMusicSheetIds = records.stream().map(SysMusicScore::getCbsMusicSheetId).collect(Collectors.toList());
@@ -386,6 +409,52 @@ public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicS
         }
         return pageInfo;
     }
+    @Override
+    public PageInfo<MusicSheetWrapper.MusicSheetSimpleDto> queryMusicScorePageInfoSimple(SysExamSongQueryInfo queryInfo) {
+        this.initCategoryIds(queryInfo);
+        if(queryInfo.getSubjectId() != null){
+            if(queryInfo.getSubjectId() == 5){
+                queryInfo.setSubjectId(null);
+                queryInfo.setSubjectIds("6");
+            }else if(queryInfo.getSubjectId() == 122){
+                queryInfo.setSubjectId(null);
+                queryInfo.setSubjectIds("122,121,113,23");
+            }else {
+                queryInfo.setSubjectIds(queryInfo.getSubjectId().toString());
+            }
+        }
+        if(CollectionUtils.isEmpty(queryInfo.getCategoriesIdList())){
+            return new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        }
+        PageInfo<MusicSheetWrapper.MusicSheetSimpleDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<String, Object>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<MusicSheetWrapper.MusicSheetSimpleDto> dataList = null;
+        int count = sysMusicScoreDao.findCountSimple(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = sysMusicScoreDao.queryPageSimple(params);
+            List<String> cbsMusicSheetIds = dataList.stream().map(MusicSheetWrapper.MusicSheetSimpleDto::getCbsMusicSheetId).collect(Collectors.toList());
+            List<CbsMusicSheetWrapper.MusicSheetApplicationSimple> applications = this.queryCbsMusicSheetApplicationSimple(cbsMusicSheetIds);
+            if(CollectionUtils.isNotEmpty(applications)){
+                Map<Long, CbsMusicSheetWrapper.MusicSheetApplicationSimple> musicSheetApplicationMap = applications
+                        .stream().collect(Collectors.toMap(CbsMusicSheetWrapper.MusicSheetApplicationSimple::getId, Function.identity()));
+                for (MusicSheetWrapper.MusicSheetSimpleDto record : dataList) {
+                    CbsMusicSheetWrapper.MusicSheetApplicationSimple simple = musicSheetApplicationMap.get(Long.parseLong(record.getCbsMusicSheetId()));
+                    record.setAudioFileUrl(simple.getAudioFileUrl());
+                    record.setName(simple.getName());
+                    record.setTitleImg(simple.getTitleImg());
+                }
+            }
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
 
     @Override
     public Map<Long, SysMusicScore> getMapByIds(List<Long> musicSheetIds) {

+ 39 - 0
mec-biz/src/main/resources/config/mybatis/SysMusicScoreMapper.xml

@@ -357,4 +357,43 @@
         and del_flag_ = 0 and cbs_music_sheet_id_ is not null GROUP BY cbs_music_categories_id_
 
     </select>
+	<select id="queryPageSimple" resultType="com.ym.mec.biz.dal.wrapper.MusicSheetWrapper$MusicSheetSimpleDto">
+		SELECT ses.cbs_music_sheet_id_ cbsMusicSheetId,ses.id_ id
+		FROM sys_music_score ses
+		<include refid="queryPageSqlSimple"/>
+		order by ses.sort_group_, ses.sort_num_, ses.sort_num2_, ses.alias_
+		<include refid="global.limit"/>
+	</select>
+	<select id="findCountSimple" resultType="java.lang.Integer">
+		SELECT COUNT(0) FROM sys_music_score ses
+		<include refid="queryPageSqlSimple"/>
+	</select>
+
+
+	<sql id="queryPageSqlSimple">
+		<where>
+			ses.del_flag_ = 0 AND ses.cbs_music_sheet_id_ IS NOT NULL
+			<if test="categoriesIdList != null">
+				AND ses.cbs_music_categories_id_ IN
+				<foreach collection="categoriesIdList" separator="," item="item" open="(" close=")">
+					#{item}
+				</foreach>
+			</if>
+			<if test="search != null and search != ''">
+				AND (ses.cbs_music_sheet_id_ = #{search} OR ses.name_ LIKE CONCAT('%',#{search},'%'))
+			</if>
+			<if test="clientFlag != null and clientFlag == true">
+				AND ses.client_show_flag_ = true AND ses.show_flag_ = true
+			</if>
+			<if test="subjectIds != null and subjectIds != ''">
+				AND (INTE_ARRAY(#{subjectIds},ses.subject_ids_) OR ses.subject_ids_ IS NULL OR ses.subject_ids_ = '' OR ses.is_all_subject_)
+			</if>
+			<if test="clientType != null">
+				AND ses.client_type_ = #{clientType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+			</if>
+			<if test="type != null and type == 'COMMON'">
+				AND ses.type_ = #{type}
+			</if>
+		</where>
+	</sql>
 </mapper>

+ 1 - 1
pom.xml

@@ -26,7 +26,7 @@
 		<docker.registry.repository>127.0.0.1:5000</docker.registry.repository>
 		<docker.maven.plugin.version>1.2.2</docker.maven.plugin.version>
 		<com.microsvc.toolkit.version>1.0.8-RC1</com.microsvc.toolkit.version>
-		<cbs.version>1.0.25</cbs.version>
+		<cbs.version>1.0.26</cbs.version>
 	</properties>
 
 	<dependencyManagement>