刘俊驰 8 ماه پیش
والد
کامیت
a74f3ce6c4

+ 6 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetCbsController.java

@@ -164,10 +164,16 @@ public class MusicSheetCbsController extends BaseController {
         // 如果是机构学生
         if (student.getTenantId() !=null && student.getTenantId()>0) {
             query.setProviderType(SourceTypeEnum.TENANT);
+
+            query.setSubjectId(Long.parseLong(student.getSubjectId()));
         } else {
             query.setProviderType(SourceTypeEnum.PLATFORM);
             if (musicSheet !=null) {
                 query.setMusicTagIds(musicSheet.getMusicTag());
+                if (StringUtils.isNotBlank(musicSheet.getMusicSubject())) {
+                    List<Long> subjectIds = Arrays.stream(musicSheet.getMusicSubject().split(",")).filter(StringUtils::isNotBlank).map(Long::parseLong).collect(Collectors.toList());
+                    query.setMustMatchSubjectIds(subjectIds);
+                }
             }
         }
         IPage<MusicSheetWrapper.MusicSheetCloud> musicSheetCloudIPage = musicSheetService.cloudPage(query);

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/MusicSheetWrapper.java

@@ -1013,6 +1013,8 @@ public class MusicSheetWrapper {
         @ApiModelProperty("是否最近练习")
         private Boolean recentFlag = false;
 
+        @ApiModelProperty(value = "必须要匹配声部ID")
+        private List<Long> mustMatchSubjectIds;
 
         @ApiModelProperty("是否查看收藏")
         private Boolean favoriteFlag = false;

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

@@ -1405,6 +1405,12 @@
                 and t.audit_version_ = #{param.versionFlag}
             </if>
 
+            <if test="param.mustMatchSubjectIds != null and param.mustMatchSubjectIds.size() != 0">
+                and
+                <foreach collection="param.mustMatchSubjectIds" separator="and" item="item" open="(" close=")">
+                    find_in_set(#{item},t.music_subject_)
+                </foreach>
+            </if>
             <if test="param.recentFlag != null and param.recentFlag == 1">
                 <if test="param.userId != null">
                     and msar.user_id_ = #{param.userId}