Browse Source

关联曲目

刘俊驰 5 months ago
parent
commit
0eaf76ea0e

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

@@ -153,9 +153,9 @@ public class MusicSheetCbsController extends BaseController {
         query.setStatus(true);
         query.setUserId(student.getUserId());
         query.setClientType(ClientEnum.STUDENT.name());
-
-        if (query.getMusicSheetId() !=null) {
-            MusicSheet musicSheet = musicSheetService.getById(query.getExcludeMusicId());
+        MusicSheet musicSheet =null;
+        if (query.getExcludeMusicId() !=null) {
+            musicSheet = musicSheetService.getById(query.getExcludeMusicId());
             if (musicSheet == null) {
                 return failed("曲目不存在");
             }
@@ -166,6 +166,9 @@ public class MusicSheetCbsController extends BaseController {
             query.setProviderType(SourceTypeEnum.TENANT);
         } else {
             query.setProviderType(SourceTypeEnum.PLATFORM);
+            if (musicSheet !=null) {
+                query.setMusicTagIds(musicSheet.getMusicTag());
+            }
         }
         IPage<MusicSheetWrapper.MusicSheetCloud> musicSheetCloudIPage = musicSheetService.cloudPage(query);
         return HttpResponseResult.succeed(PageUtil.pageInfo(musicSheetCloudIPage));

+ 9 - 1
cooleshow-app/src/main/java/com/yonge/cooleshow/teacher/controller/MusicSheetCbsController.java

@@ -7,6 +7,7 @@ import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
 import com.microsvc.toolkit.common.response.template.R;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
 import com.yonge.cooleshow.biz.dal.entity.Student;
 import com.yonge.cooleshow.biz.dal.entity.Teacher;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
@@ -148,7 +149,14 @@ public class MusicSheetCbsController extends BaseController {
         query.setUserId(teacher.getUserId());
         query.setClientType(ClientEnum.TEACHER.name());
         query.setProviderType(SourceTypeEnum.PLATFORM);
-
+        if (query.getExcludeMusicId() !=null) {
+            MusicSheet musicSheet = musicSheetService.getById(query.getExcludeMusicId());
+            if (musicSheet == null) {
+                return failed("曲目不存在");
+            }
+            query.setMusicSheetType(musicSheet.getMusicSheetType());
+            query.setMusicTagIds(musicSheet.getMusicTag());
+        }
         IPage<MusicSheetWrapper.MusicSheetCloud> musicSheetCloudIPage = musicSheetService.cloudPage(query);
         return HttpResponseResult.succeed(PageUtil.pageInfo(musicSheetCloudIPage));
     }

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

@@ -15,6 +15,7 @@ import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheetAccompaniment;
 import com.yonge.cooleshow.biz.dal.enums.*;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
+import com.yonge.toolset.base.util.StringUtil;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
@@ -1032,6 +1033,19 @@ public class MusicSheetWrapper {
 
         private Long subjectId;
 
+        @ApiModelProperty("标签id(多个逗号隔开)")
+        private String musicTagIds;
+
+        @ApiModelProperty(hidden = true)
+        private List<Long> musicTagIdList;
+
+        public void setMusicTagIds(String musicTagIds) {
+            this.musicTagIds = musicTagIds;
+            if (StringUtils.isNotBlank(musicTagIds)) {
+                this.musicTagIdList = StringUtil.toLongList(musicTagIds);
+            }
+        }
+
         private MusicSheetTypeEnum musicSheetType;
 
         // 是否为机构学生用户

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

@@ -1449,7 +1449,12 @@
             <if test="param.subjectId != null">
                 and (find_in_set(#{param.subjectId},t.music_subject_)or t.music_subject_ is null or t.music_subject_ = '' OR t.is_all_subject_)
             </if>
-
+            <if test="param.musicTagIdList != null and param.musicTagIdList.size() >0">
+                and
+                <foreach collection="param.musicTagIdList" open="(" close=")" separator="or" item="item">
+                    find_in_set(#{item},t.music_tag_)
+                </foreach>
+            </if>
         </where>
 
         GROUP BY t.id_