Browse Source

fix:学生端专辑的曲目数量错误

liujunchi 3 years ago
parent
commit
f31739bd11

+ 9 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dao/MusicAlbumDao.java

@@ -54,4 +54,13 @@ public interface MusicAlbumDao extends BaseMapper<MusicAlbum> {
      * @return
      */
     MusicAlbumVo selectMusicAlbumById(@Param("musicAlbumId") Long musicAlbumId);
+
+    /**
+     * 学生专辑查询
+     *
+     * @param page  分页信息
+     * @param query 查询条件
+     * @return page
+     */
+    List<MusicAlbumVo> selectStudentPage(@Param("page") IPage<MusicAlbumVo> page, @Param("query") MusicAlbumSearch query);
 }

+ 9 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/MusicAlbumService.java

@@ -113,4 +113,13 @@ public interface MusicAlbumService extends IService<MusicAlbum> {
      * @return
      */
     boolean del(Long id);
+
+    /**
+     * 学生查看专辑
+     *
+     * @param page 分页
+     * @param query 查询条件
+     * @return
+     */
+    IPage<MusicAlbumVo> selectStudentPage(IPage<MusicAlbumVo> page, MusicAlbumSearch query);
 }

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

@@ -92,11 +92,12 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
         albumDetailVo.setAlbumCoverUrl(musicAlbum.getAlbumCoverUrl());
         albumDetailVo.setAlbumStatue(musicAlbum.getAlbumStatus());
         albumDetailVo.setAlbumFavoriteCount(musicAlbum.getAlbumFavoriteCount());
-        albumDetailVo.setMusicSheetCount(musicAlbum.getMusicSheetCount());
         albumDetailVo.setMusicTagNames(musicTagService.getMusicTagNames(StringUtil.toLongList(musicAlbum.getAlbumTag())));
 
         IPage<MusicSheetVo> musicSheetVoIPage = musicSheetService.selectAlbumDetailPage(page,query);
         albumDetailVo.setMusicSheetList(PageUtil.pageInfo(musicSheetVoIPage));
+
+        albumDetailVo.setMusicSheetCount(Long.valueOf(musicSheetVoIPage.getTotal()).intValue());
         return albumDetailVo;
     }
 
@@ -196,6 +197,11 @@ public class MusicAlbumServiceImpl extends ServiceImpl<MusicAlbumDao,MusicAlbum>
         return this.updateById(musicAlbum);
     }
 
+    @Override
+    public IPage<MusicAlbumVo> selectStudentPage(IPage<MusicAlbumVo> page, MusicAlbumSearch query) {
+        return page.setRecords(baseMapper.selectStudentPage(page,query));
+    }
+
     private boolean checkNameRepeat(String albumName, Long id) {
         LambdaQueryChainWrapper<MusicAlbum> eq = this.lambdaQuery()
                                                      .eq(MusicAlbum::getDelFlag,0)

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

@@ -9,6 +9,7 @@ import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonGroupSearch;
 import com.yonge.cooleshow.biz.dal.dto.search.VideoLessonSearch;
 import com.yonge.cooleshow.biz.dal.entity.*;
 import com.yonge.cooleshow.biz.dal.enums.AuthStatusEnum;
+import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum;
 import com.yonge.cooleshow.biz.dal.service.VideoLessonGroupService;
 import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.common.exception.BizException;
@@ -145,6 +146,7 @@ public class VideoLessonGroupServiceImpl extends ServiceImpl<VideoLessonGroupDao
 
         //添加组
         lessonGroup.setTeacherId(sysUser.getId());
+        lessonGroup.setAuditVersion(YesOrNoEnum.NO);
         videoLessonGroupDao.insert(lessonGroup);
 
         for (VideoLessonGroupDetail detail : lessonList) {

+ 49 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicAlbumMapper.xml

@@ -113,7 +113,11 @@
         t1.num as musicSheetCount
         ,t2.num as albumFavoriteCount
         from music_album t
-        left join (select count(1) as num,amr.album_id_ from album_music_relate amr group by amr.album_id_) t1 on t1.album_id_ = t.id_
+        left join (select count(1) as num,amr.album_id_
+            from album_music_relate amr
+            join music_sheet ms on amr.music_sheet_id_ = ms.id_
+            where ms.del_flag_ = 0 and ms.state_ = 1 and ms.audit_status_ = 'PASS'
+            group by amr.album_id_) t1 on t1.album_id_ = t.id_
         left join (select count(1) as num,af.album_id_ from album_favorite af group by af.album_id_) t2 on t2.album_id_ = t.id_
         <where>
             t.del_flag_ = 0
@@ -144,4 +148,48 @@
         left join (select count(1) as num,af.album_id_ from album_favorite af group by af.album_id_) t2 on t2.album_id_ = t.id_
         where t.id_ = #{musicAlbumId}
     </select>
+
+    <select id="selectStudentPage" resultType="com.yonge.cooleshow.biz.dal.vo.MusicAlbumVo">
+        select <include refid="Base_Column_List"/>
+        ,(select group_concat(mt.name_) from music_tag mt
+        where find_in_set(mt.id_,t.album_tag_) and mt.del_flag_ = 0) as musicTagNames
+        ,if( t1.num>0,t1.num,0) as musicSheetCount
+        ,if(t2.num >0,t2.num,0) as albumFavoriteCount
+        from music_album t
+        left join (select count(1) as num,amr.album_id_
+            from album_music_relate amr
+            join music_sheet ms on amr.music_sheet_id_ = ms.id_
+            where ms.del_flag_ = 0 and ms.state_ = 1 and ms.audit_status_ = 'PASS'
+            group by amr.album_id_) t1 on t1.album_id_ = t.id_
+        left join (select count(1) as num,af.album_id_ from album_favorite af group by af.album_id_) t2 on t2.album_id_ = t.id_
+        <where>
+            t.del_flag_ = 0
+            <if test="query.idAndName != null and query.idAndName != ''">
+                and (t.id_ like concat('%',#{query.idAndName},'%') or
+                t.album_name_ like concat('%',#{query.idAndName},'%'))
+            </if>
+            <if test="query.albumTagIdList != null and query.albumTagIdList.size() != 0">
+                and
+                <foreach collection="query.albumTagIdList" separator="and" item="item">
+                    find_in_set(#{item},t.album_tag_)
+                </foreach>
+            </if>
+            <if test="query.albumStatus != null">
+                and t.album_status_ = #{query.albumStatus}
+            </if>
+            <if test="query.auditVersion != null">
+                and t.audit_version_ = #{query.auditVersion}
+            </if>
+        </where>
+        <if test="query.sortBy != null">
+            <choose>
+                <when test="query.sortBy == 1">
+                    order by t2.num desc
+                </when>
+            </choose>
+        </if>
+        <if test="query.sortBy == null">
+            order by t.id_ desc
+        </if>
+    </select>
 </mapper>

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

@@ -56,6 +56,7 @@
         t.update_time_ as updateTime,
         t.update_by_ as updateBy,
         t.del_flag_ as delFlag,
+        t.audit_version_ as auditVersion,
         t.source_type_ as sourceType,
         t.submit_audit_time_ as submitAuditTime,
         t.remark_ as remark

+ 1 - 1
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/MusicAlbumController.java

@@ -59,7 +59,7 @@ public class MusicAlbumController extends BaseController {
 
         query.setAlbumStatus(YesOrNoEnum.YES);
         query.setSortBy(1);
-        IPage<MusicAlbumVo> iPage = musicAlbumService.selectPage(PageUtil.getPage(query),query);
+        IPage<MusicAlbumVo> iPage = musicAlbumService.selectStudentPage(PageUtil.getPage(query),query);
         return succeed(PageUtil.pageInfo(iPage));
     }