Browse Source

update:修改专辑传参

liujunchi 3 years ago
parent
commit
ba3aa7825f

+ 13 - 12
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/MusicAlbumController.java

@@ -3,6 +3,7 @@ package com.yonge.cooleshow.admin.controller;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.biz.dal.dto.MusicAlbumSheetDto;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumDetailSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.MusicAlbumSearch;
 import com.yonge.cooleshow.biz.dal.entity.MusicAlbum;
@@ -139,20 +140,20 @@ public class MusicAlbumController extends BaseController {
     /**
      * 专辑详情删除曲目列表
      */
-    @PostMapping("/detail/delMusicSheet")
-    @ApiOperation(value = "专辑详情删除曲目列表")
+    @PostMapping(value = "/detail/delMusicSheet" ,consumes="application/json", produces="application/json")
+    @ApiOperation(value = "专辑详情删除曲目列表",  httpMethod="POST", consumes="application/json", produces="application/json")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "albumId",value = "专辑编号ID", required = true, dataType = "Integer"),
             @ApiImplicitParam(name = "musicSheetIds",value = "删除曲目编号,多个逗号隔开", required = true, dataType = "String")
     })
-    public HttpResponseResult<Boolean> detailDelMusicSheet(Long albumId, String musicSheetIds) {
-        if (StringUtil.isEmpty(albumId)) {
+    public HttpResponseResult<Boolean> detailDelMusicSheet(@Valid @RequestBody MusicAlbumSheetDto query) {
+        if (StringUtil.isEmpty(query.getAlbumId())) {
             return failed("专辑编号ID不能为空");
         }
-        if (StringUtil.isEmpty(musicSheetIds)) {
+        if (StringUtil.isEmpty(query.getMusicSheetIds())) {
             return failed("曲目编号不能为空");
         }
-        return status(musicAlbumService.delMusicSheet(albumId,musicSheetIds));
+        return status(musicAlbumService.delMusicSheet(query.getAlbumId(),query.getMusicSheetIds()));
     }
 
 
@@ -160,24 +161,24 @@ public class MusicAlbumController extends BaseController {
     /**
      * 专辑详情添加曲目列表
      */
-    @PostMapping("/detail/addMusicSheet")
-    @ApiOperation(value = "专辑详情添加曲目列表")
+    @PostMapping(value = "/detail/addMusicSheet",consumes="application/json", produces="application/json")
+    @ApiOperation(value = "专辑详情添加曲目列表",  httpMethod="POST", consumes="application/json", produces="application/json")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "albumId",value = "专辑编号ID", required = true, dataType = "Integer"),
             @ApiImplicitParam(name = "musicSheetIds",value = "添加曲目编号,多个逗号隔开", required = true, dataType = "String")
     })
-    public HttpResponseResult<Boolean> detailAddMusicSheet(Long albumId, String musicSheetIds) {
+    public HttpResponseResult<Boolean> detailAddMusicSheet(@Valid @RequestBody MusicAlbumSheetDto query) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null  || sysUser.getId() == null) {
             return failed("用户信息获取失败");
         }
-        if (StringUtil.isEmpty(albumId)) {
+        if (StringUtil.isEmpty(query.getAlbumId())) {
             return failed("专辑编号ID不能为空");
         }
-        if (StringUtil.isEmpty(musicSheetIds)) {
+        if (StringUtil.isEmpty(query.getMusicSheetIds())) {
             return failed("曲目编号不能为空");
         }
-        return status(musicAlbumService.addMusicSheet(albumId,musicSheetIds,sysUser.getId()));
+        return status(musicAlbumService.addMusicSheet(query.getAlbumId(),query.getMusicSheetIds(),sysUser.getId()));
     }
 
 }

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/MusicSheetDao.java

@@ -34,7 +34,7 @@ public interface MusicSheetDao extends BaseMapper<MusicSheet> {
      * @param query 查询条件
      * @return
      */
-    List<MusicSheet> selectAlbumDetailPage(@Param("page") IPage<MusicSheet> page, @Param("param") MusicAlbumDetailSearch query);
+    List<MusicSheetVo> selectAlbumDetailPage(@Param("page") IPage<MusicSheetVo> page, @Param("param") MusicAlbumDetailSearch query);
 
     /**
      * 获取曲目详情

+ 37 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/MusicAlbumSheetDto.java

@@ -0,0 +1,37 @@
+package com.yonge.cooleshow.biz.dal.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * Description 专辑新增或删除曲目
+ *
+ * @author liujunchi
+ * @date 2022-04-14
+ */
+@ApiModel("专辑新增或删除曲目")
+public class MusicAlbumSheetDto {
+
+    @ApiModelProperty("专辑id")
+    private Long albumId;
+
+    @ApiModelProperty("曲目id,多个逗号隔开")
+    private String musicSheetIds;
+
+
+    public Long getAlbumId() {
+        return albumId;
+    }
+
+    public void setAlbumId(Long albumId) {
+        this.albumId = albumId;
+    }
+
+    public String getMusicSheetIds() {
+        return musicSheetIds;
+    }
+
+    public void setMusicSheetIds(String musicSheetIds) {
+        this.musicSheetIds = musicSheetIds;
+    }
+}

+ 2 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicAlbumService.java

@@ -10,6 +10,7 @@ import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
 import com.yonge.cooleshow.biz.dal.vo.AlbumDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicAlbumVo;
+import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
 
 /**
  * MusicAlbumService服务类
@@ -43,7 +44,7 @@ public interface MusicAlbumService extends IService<MusicAlbum> {
      * @param query 查询条件
      * @return AlbumDetailVo
      */
-    AlbumDetailVo detail(IPage<MusicSheet> page, MusicAlbumDetailSearch query);
+    AlbumDetailVo detail(IPage<MusicSheetVo> page, MusicAlbumDetailSearch query);
 
     /**
      * 删除专辑详情关联曲目

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicSheetService.java

@@ -49,7 +49,7 @@ public interface MusicSheetService extends IService<MusicSheet> {
      * @param query 查询条件
      * @return MusicSheet
      */
-    IPage<MusicSheet> selectAlbumDetailPage(IPage<MusicSheet> page, MusicAlbumDetailSearch query);
+    IPage<MusicSheetVo> selectAlbumDetailPage(IPage<MusicSheetVo> page, MusicAlbumDetailSearch query);
 
     /**
      * 老师分享乐谱信息

+ 8 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicTagService.java

@@ -74,4 +74,12 @@ public interface MusicTagService extends IService<MusicTag>  {
 	 * @return boolean
 	 */
     boolean checkParentDifferent(List<Long> musicTagIdList);
+
+	/**
+	 *  获取标签名字符串
+	 *
+	 * @param tagIdList 标签id集合
+	 * @return 标签名字符串
+	 */
+    String getMusicTagNames(List<Long> tagIdList);
 }

+ 9 - 6
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicAlbumServiceImpl.java

@@ -11,13 +11,11 @@ import com.yonge.cooleshow.biz.dal.entity.AlbumFavorite;
 import com.yonge.cooleshow.biz.dal.entity.MusicAlbum;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
-import com.yonge.cooleshow.biz.dal.service.AlbumFavoriteService;
-import com.yonge.cooleshow.biz.dal.service.AlbumMusicRelateService;
-import com.yonge.cooleshow.biz.dal.service.MusicAlbumService;
-import com.yonge.cooleshow.biz.dal.service.MusicSheetService;
+import com.yonge.cooleshow.biz.dal.service.*;
 import com.yonge.cooleshow.biz.dal.support.PageUtil;
 import com.yonge.cooleshow.biz.dal.vo.AlbumDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicAlbumVo;
+import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
 import com.yonge.cooleshow.common.exception.BizException;
 import com.yonge.toolset.utils.string.StringUtil;
 import org.slf4j.Logger;
@@ -52,6 +50,9 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
     private MusicSheetService musicSheetService;
 
     @Autowired
+    private MusicTagService musicTagService;
+
+    @Autowired
     private AlbumFavoriteService albumFavoriteService;
 
     public MusicAlbumDao getDao() {
@@ -79,7 +80,7 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
     }
 
     @Override
-    public AlbumDetailVo detail(IPage<MusicSheet> page, MusicAlbumDetailSearch query) {
+    public AlbumDetailVo detail(IPage<MusicSheetVo> page, MusicAlbumDetailSearch query) {
         MusicAlbum musicAlbum = this.getById(query.getId());
         if (musicAlbum == null) {
             throw  new BizException("未找到专辑信息");
@@ -88,8 +89,10 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
         albumDetailVo.setId(musicAlbum.getId());
         albumDetailVo.setAlbumName(musicAlbum.getAlbumName());
         albumDetailVo.setAlbumDesc(musicAlbum.getAlbumDesc());
+        albumDetailVo.setAlbumTag(musicAlbum.getAlbumTag());
+        albumDetailVo.setMusicTagNames(musicTagService.getMusicTagNames(StringUtil.toLongList(musicAlbum.getAlbumTag())));
 
-        IPage<MusicSheet> musicSheetVoIPage = musicSheetService.selectAlbumDetailPage(page,query);
+        IPage<MusicSheetVo> musicSheetVoIPage = musicSheetService.selectAlbumDetailPage(page,query);
         albumDetailVo.setMusicSheetList(PageUtil.pageInfo(musicSheetVoIPage));
         return albumDetailVo;
     }

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java

@@ -108,7 +108,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao,MusicSheet>
     }
 
     @Override
-    public IPage<MusicSheet> selectAlbumDetailPage(IPage<MusicSheet> page, MusicAlbumDetailSearch query) {
+    public IPage<MusicSheetVo> selectAlbumDetailPage(IPage<MusicSheetVo> page, MusicAlbumDetailSearch query) {
         return page.setRecords(baseMapper.selectAlbumDetailPage(page, query));
     }
 

+ 16 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicTagServiceImpl.java

@@ -223,5 +223,21 @@ public class MusicTagServiceImpl extends ServiceImpl<MusicTagDao, MusicTag> impl
 
     }
 
+    @Override
+    public String getMusicTagNames(List<Long> tagIdList) {
+
+        if (CollectionUtils.isEmpty(tagIdList)) {
+            return "";
+        }
+        List<MusicTag> list = this.lambdaQuery()
+                                  .in(MusicTag::getId, tagIdList)
+                                    .eq(MusicTag::getDelFlag,YesOrNoEnum.NO)
+                                  .list();
+        if (CollectionUtils.isEmpty(list)) {
+            return "";
+        }
+        return list.stream().map(MusicTag::getName).collect(Collectors.joining(","));
+    }
+
 
 }

+ 24 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/AlbumDetailVo.java

@@ -29,8 +29,29 @@ public class AlbumDetailVo {
     private YesOrNoEnum favorite;
 
     @ApiModelProperty("专辑详情曲目")
-    private PageInfo<MusicSheet> musicSheetList;
+    private PageInfo<MusicSheetVo> musicSheetList;
 
+    @ApiModelProperty(value = "专辑标签(多个标签以逗号分开)",required = true)
+    private String albumTag;  //专辑标签(多个标签以逗号分开)
+
+    @ApiModelProperty("教材标签")
+    private String musicTagNames;
+
+    public String getAlbumTag() {
+        return albumTag;
+    }
+
+    public void setAlbumTag(String albumTag) {
+        this.albumTag = albumTag;
+    }
+
+    public String getMusicTagNames() {
+        return musicTagNames;
+    }
+
+    public void setMusicTagNames(String musicTagNames) {
+        this.musicTagNames = musicTagNames;
+    }
 
     public Long getId() {
         return id;
@@ -48,11 +69,11 @@ public class AlbumDetailVo {
         this.albumName = albumName;
     }
 
-    public PageInfo<MusicSheet> getMusicSheetList() {
+    public PageInfo<MusicSheetVo> getMusicSheetList() {
         return musicSheetList;
     }
 
-    public void setMusicSheetList(PageInfo<MusicSheet> musicSheetList) {
+    public void setMusicSheetList(PageInfo<MusicSheetVo> musicSheetList) {
         this.musicSheetList = musicSheetList;
     }
 

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

@@ -110,8 +110,12 @@
         </if>
     </sql>
 
-    <select id="selectAlbumDetailPage" resultType="com.yonge.cooleshow.biz.dal.entity.MusicSheet">
+    <select id="selectAlbumDetailPage" resultType="com.yonge.cooleshow.biz.dal.vo.MusicSheetVo">
         select <include refid="Base_Column_List"/>
+        ,(select group_concat(mt.name_) from music_tag mt
+        where find_in_set(mt.id_,t.music_tag_) and mt.del_flag_ = 0) as musicTagNames
+        ,(select group_concat(s.name_) from subject s
+        where find_in_set(s.id_,t.music_subject_) and s.del_flag_ = 0 ) as subjectNames
         from music_sheet t
         left join album_music_relate amr on t.id_ = amr.music_sheet_id_
         <where>