Browse Source

机构学生关联曲目

liujc 8 months ago
parent
commit
8958eb3fa7

+ 18 - 2
cooleshow-app/src/main/java/com/yonge/cooleshow/student/controller/MusicSheetController.java

@@ -351,8 +351,24 @@ public class MusicSheetController extends BaseController {
     @ApiOperation(value = "关联的曲目列表")
     @GetMapping(value="/queryRelatedList")
     public HttpResponseResult<PageInfo<MusicSheetVo>> queryRelatedList(MusicSheetRelatedQueryInfo queryInfo) {
-    	
-    	IPage<MusicSheetVo> musicSheetVoIPage = musicSheetService.queryRelatedList(PageUtil.getPage(queryInfo),queryInfo);
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null  || sysUser.getId() == null) {
+            return failed("用户信息获取失败");
+        }
+
+        Student student = studentService.getById(sysUser.getId());
+        if (student == null) {
+            return failed("用户信息获取失败");
+        }
+        // 如果是机构学生
+        IPage<MusicSheetVo> musicSheetVoIPage;
+        if (student.getTenantId() !=null && student.getTenantId()>0) {
+            queryInfo.setSubjectId(Long.parseLong(student.getSubjectId()));
+            musicSheetVoIPage =musicSheetService.queryTenantRelatedList(PageUtil.getPage(queryInfo),queryInfo);
+        } else {
+
+            musicSheetVoIPage = musicSheetService.queryRelatedList(PageUtil.getPage(queryInfo), queryInfo);
+        }
         return succeed(PageUtil.pageInfo(musicSheetVoIPage));
     }
 

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

@@ -213,4 +213,6 @@ public interface MusicSheetDao extends BaseMapper<MusicSheet> {
     MusicSheet get(Long id);
 
     IPage<MusicSheet> selectSyncPage(Page<Object> objectPage);
+
+    IPage<MusicSheetVo> queryTenantRelatedList(@Param("page") IPage<Object> page, @Param("queryInfo") MusicSheetRelatedQueryInfo queryInfo);
 }

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MusicSheetRelatedQueryInfo.java

@@ -1,5 +1,6 @@
 package com.yonge.cooleshow.biz.dal.dto.search;
 
+import com.yonge.cooleshow.biz.dal.enums.MusicSheetTypeEnum;
 import com.yonge.toolset.base.page.QueryInfo;
 
 public class MusicSheetRelatedQueryInfo extends QueryInfo {
@@ -10,6 +11,16 @@ public class MusicSheetRelatedQueryInfo extends QueryInfo {
 
     private Long subjectId;
 
+    private MusicSheetTypeEnum musicSheetType;
+
+    public MusicSheetTypeEnum getMusicSheetType() {
+        return musicSheetType;
+    }
+
+    public void setMusicSheetType(MusicSheetTypeEnum musicSheetType) {
+        this.musicSheetType = musicSheetType;
+    }
+
     public Long getSubjectId() {
         return subjectId;
     }

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

@@ -409,4 +409,6 @@ public interface MusicSheetService extends IService<MusicSheet> {
     void initMusicSheetDetailVo(CbsMusicSheetWrapper.AddMusicSheet addMusicSheet, MusicSheetDetailVo musicSheetAudit);
 
     void sync();
+
+    IPage<MusicSheetVo> queryTenantRelatedList(IPage<Object> page, MusicSheetRelatedQueryInfo queryInfo);
 }

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

@@ -229,6 +229,9 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
 
         VipCardRecordWrapper.UserVip userVip = vipCardRecordService.userVipInfo(orderDetailVo.getUserId(), orderDetailVo.getOrderClient());
         int svipDays = getSvipDays(detail, orderDetailVo.getGoodNum(), userVip);
+        if (userVip.getVipType() == EVipType.VIP) {
+            addVipCardRecord.setVipDays(Math.max(userVip.getVipEndDays()-1,0));
+        }
         if (detail.getVipType() == EVipType.SVIP &&userVip.getVipEndDays() !=null && svipDays >=userVip.getVipEndDays()) {
             addVipCardRecord.setVipDays(userVip.getVipEndDays());
         }

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

@@ -271,6 +271,8 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
                 if (queryInfo.getSubjectId() !=null) {
                     query.setSubjectIdList(Lists.newArrayList(queryInfo.getSubjectId()));
                 }
+                query.setState(YesOrNoEnum.YES);
+                query.setProviderType(SourceTypeEnum.PLATFORM);
                 query.setExcludeMusicIds(Lists.newArrayList(queryInfo.getMusicSheetId()));
                 if (StringUtils.isNotBlank(musicSheet.getMusicSubject())) {
                     List<Long> subjectIds = Arrays.stream(musicSheet.getMusicSubject().split(",")).filter(StringUtils::isNotBlank).map(Long::parseLong).collect(Collectors.toList());
@@ -282,6 +284,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
             // 查询带有当前曲目标签的所有曲目
             MusicAlbumDetailSearch query = new MusicAlbumDetailSearch();
             query.setId(queryInfo.getAlbumId());
+            query.setState(YesOrNoEnum.YES);
             query.setType(2);
             if (queryInfo.getSubjectId() !=null) {
                 query.setSubjectIdList(Lists.newArrayList(queryInfo.getSubjectId()));
@@ -2375,6 +2378,20 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         executorService.shutdown();
     }
 
+    @Override
+    public IPage<MusicSheetVo> queryTenantRelatedList(IPage<Object> page, MusicSheetRelatedQueryInfo queryInfo) {
+
+        MusicSheet musicSheet = musicSheetDao.get(queryInfo.getMusicSheetId());
+        if (musicSheet == null) {
+            throw new BizException("曲目不存在");
+        }
+        queryInfo.setMusicSheetType(musicSheet.getMusicSheetType());
+        if (musicSheet.getMusicSheetType() == MusicSheetTypeEnum.CONCERT) {
+            queryInfo.setSubjectId(null);
+        }
+        return musicSheetDao.queryTenantRelatedList(page,queryInfo);
+    }
+
 
     private void syncMusicSheet(MusicSheet record, Date date) {
         List<MusicSheetAccompaniment> list = musicSheetAccompanimentService.lambdaQuery().eq(MusicSheetAccompaniment::getMusicSheetId, record.getId()).list();

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

@@ -1040,5 +1040,34 @@
         from music_sheet
         where del_flag_ = 0 and audit_status_ = 'PASS' and cbs_music_sheet_id_ is null
     </select>
+
+    <select id="queryTenantRelatedList" resultType="com.yonge.cooleshow.biz.dal.vo.MusicSheetVo">
+
+        select
+        <include refid="Base_Column_List"/>
+        from music_sheet t
+            left join tenant_album_music t1 on t1.music_sheet_id_ = t.id_
+        <where>
+            t.del_flag_ = 0 and t.state_ =1  and t.audit_status_ = 'PASS' and t.cbs_music_sheet_id_ is not null
+            and t1.del_flag_=0 and t1.subject_type_ in ('ENSEMBLE', 'MUSIC', 'SUBJECT')
+            <if test="queryInfo.albumId != null">
+                and t1.tenant_album_id_ = #{queryInfo.albumId}
+            </if>
+
+            <if test="queryInfo.albumId == null">
+                and 1=2
+            </if>
+            <if test="queryInfo.musicSheetId != null">
+                and t.id_ != #{queryInfo.musicSheetId}
+            </if>
+            <if test="queryInfo.subjectId != null">
+                and find_in_set(#{queryInfo.subjectId},t.music_subject_)
+            </if>
+            <if test="queryInfo.musicSheetType != null">
+                and t.music_sheet_type_ = #{queryInfo.musicSheetType}
+            </if>
+        </where>
+
+    </select>
     <!--单曲专辑数量统计-->
 </mapper>