liujc 11 місяців тому
батько
коміт
df8b038804

+ 6 - 0
cooleshow-app/src/main/java/com/yonge/cooleshow/admin/controller/MusicSheetController.java

@@ -64,6 +64,12 @@ public class MusicSheetController extends BaseController {
     @PostMapping(value="/list", consumes="application/json", produces="application/json")
     @PreAuthorize("@pcs.hasPermissions('music/sheet/list')")
     public HttpResponseResult<PageInfo<MusicSheetVoResult>> list(@RequestBody MusicSheetSearch query) {
+        if (query.getProviderType() == SourceTypeEnum.TENANT && query.getMusicCategoryId() !=null) {
+
+            List<Integer> integers = musicFeignClientService.getAllCategoryIdList(String.valueOf(query.getMusicCategoryId())).feignData();
+            integers.add(query.getMusicCategoryId());
+            query.setTenantCategoryIds(integers);
+        }
         return succeed(PageUtil.pageInfo(musicSheetService.selectCbsPage(PageUtil.getPage(query), query)));
     }
 

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

@@ -137,6 +137,8 @@ public class MusicSheetSearch  extends QueryInfo{
     @ApiModelProperty("机构专辑分类")
     private String subjectType;
 
+    @ApiModelProperty("机构分类id")
+    private Integer musicCategoryId;
 
     @ApiModelProperty("机构专辑分类")
     private List<Integer> tenantCategoryIds;

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

@@ -12,6 +12,7 @@ import com.yonge.cooleshow.biz.dal.dto.search.*;
 import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.OrderTypeEnum;
+import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
 import com.yonge.cooleshow.biz.dal.vo.*;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
 import com.yonge.cooleshow.biz.dal.wrapper.MusicSheetWrapper;
@@ -412,6 +413,8 @@ public interface MusicSheetService extends IService<MusicSheet> {
 
     CbsMusicSheetWrapper.MusicSheetApplicationQuery getMusicSheetApplicationQuery();
 
+    CbsMusicSheetWrapper.MusicSheetApplicationQuery getMusicSheetApplicationQuery(SourceTypeEnum sourceType);
+
     PageInfo<CbsMusicSheetWrapper.MusicSheetAccApplication> queryCbsMusicSheetSoundApplication(CbsMusicSheetWrapper.MusicSheetApplicationQuery query);
 
     List<CbsMusicSheetWrapper.MusicSheetApplication> queryCbsMusicSheetApplication(CbsMusicSheetWrapper.MusicSheetApplicationQuery query);

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

@@ -253,6 +253,7 @@ public class MusicSheetAuthRecordServiceImpl extends ServiceImpl<MusicSheetAuthR
         musicSheet.setUserId(userId);
         musicSheet.setCreateBy(userId);
         musicSheet.setUpdateBy(userId);
+        musicSheet.setScoreType(EDefaultScoreType.STAVE.name());
         musicSheet.setCbsMusicSheetId(IdWorker.getId());
         musicSheetService.save(musicSheet);
         List<MusicSheetAccompaniment> musicSheetAccompaniments = musicSheetAccompanimentService.initMusicSheetAccompaniment(musicSheetAuthRecord.getMusicSheetJson(),musicSheet.getId());

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

@@ -397,7 +397,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         return musicSheetShareVo;
     }
 
-    public MusicSheetDetailVo getCbsDetail(Long id) {
+    public MusicSheetDetailVo getCbsDetail(Long id,SourceTypeEnum sourceTypeEnum) {
         MusicSheet musicSheet = this.baseMapper.get(id);
         if (musicSheet == null) {
             throw new BizException("未找到曲目信息");
@@ -406,7 +406,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
             throw new BizException("曲目信息未同步");
         }
         MusicSheetDetailVo detailVo = JSON.parseObject(JSON.toJSONString(musicSheet), MusicSheetDetailVo.class);
-        this.initMusicSheetDetailVo(detailVo,musicSheet);
+        this.initMusicSheetDetailVo(detailVo,musicSheet,sourceTypeEnum);
         return detailVo;
     }
 
@@ -432,9 +432,11 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         return detailVo;
     }
 
-    public void initMusicSheetDetailVo(MusicSheetDetailVo detailVo,MusicSheet musicSheet) {
-        CbsMusicSheetWrapper.MusicSheetApplicationQuery query = this.getMusicSheetApplicationQuery();
+
+    public void initMusicSheetDetailVo(MusicSheetDetailVo detailVo,MusicSheet musicSheet,SourceTypeEnum sourceTypeEnum) {
+        CbsMusicSheetWrapper.MusicSheetApplicationQuery query = this.getMusicSheetApplicationQuery(sourceTypeEnum);
         query.setRows(1);
+        query.setDelFlag(true);
         query.setMusicSheetIds(Collections.singletonList(musicSheet.getCbsMusicSheetId()));
         List<CbsMusicSheetWrapper.MusicSheetApplication> rows = this.queryCbsMusicSheetApplication(query);
         if(CollectionUtils.isEmpty(rows)){
@@ -621,7 +623,33 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
                 throw new BizException("未找到曲目信息");
             }
         }
-        MusicSheetDetailVo detail = this.getCbsDetail(Long.parseLong(id));
+        MusicSheetDetailVo detail ;
+        if (StringUtil.isEmpty(tenantAlbumId)) {
+
+            // 如果是机构用户,判断机构专辑
+
+            // 机构学生,查询购买过的机构专辑,是否存在当前曲目
+            Long tenantId = userTenantId(sysUser.getId(), userType);
+
+            if (tenantId >0L) {
+                if (userType == ClientEnum.STUDENT) {
+                    detail = this.getCbsDetail(Long.parseLong(id),SourceTypeEnum.TENANT);
+                } else {
+                    if (detailVo.getProviderType().contains(SourceTypeEnum.PLATFORM.getCode())) {
+                        detail = this.getCbsDetail(Long.parseLong(id),SourceTypeEnum.PLATFORM);
+
+                    } else {
+                        detail = this.getCbsDetail(Long.parseLong(id),SourceTypeEnum.TENANT);
+                    }
+                }
+
+            } else {
+                detail = this.getCbsDetail(Long.parseLong(id),SourceTypeEnum.PLATFORM);
+            }
+        } else {
+
+            detail = this.getCbsDetail(Long.parseLong(id),SourceTypeEnum.TENANT);
+        }
         detail.setPlay(YesOrNoEnum.NO);
         detail.setTenantFlag(false);
         //兼容审批数据
@@ -666,10 +694,10 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
             Long tenantId = userTenantId(sysUser.getId(), userType);
 
             if (tenantId >0L) {
-                detail.setTenantFlag(true);
 
                 if (detail.getProviderType().contains(SourceTypeEnum.TENANT.getCode())) {
                     if (userType == ClientEnum.STUDENT) {
+                        detail.setTenantFlag(true);
                         // 机构学生
                         List<Long> tenantAlbumIds = userTenantAlbumRecordMapper.selectTenantIds(sysUser.getId());
                         if (CollectionUtils.isNotEmpty(tenantAlbumIds)) {
@@ -687,6 +715,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
                             if (musicSheetIds.contains(detail.getId())) {
                                 detail.setPlay(YesOrNoEnum.YES);
                                 detail.setBuyed(true);
+                                detail.setTenantFlag(true);
                             }
                         }
                         if (detail.getPlay() ==YesOrNoEnum.NO) {
@@ -732,8 +761,11 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
                     }
                 }
             }
+        }
+        if (detail.getTenantFlag()) {
             detail.setNotation(detail.getTenantNotation() !=null&& detail.getTenantNotation()?YesOrNoEnum.YES:YesOrNoEnum.NO);
             detail.setScoreType(detail.getTenantScoreType());
+
         }
         return detail;
     }
@@ -1048,16 +1080,17 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
             musicSheetService.updateMusicAlbumNumInfo(page.getRecords());
         }
         for (MusicSheetVo record : page.getRecords()) {
+            // 1失效 0 有效
             MusicSheetDetailVo detail = detail(record.getId(), sysUserFeignService.queryUserById(query.getStudentId()), ClientEnum.STUDENT);
-            record.setPlay(YesOrNoEnum.NO);
+            record.setPlay(YesOrNoEnum.YES);
             if (query.getProviderType() == SourceTypeEnum.PLATFORM) {
                 if (Boolean.TRUE.equals(detail.getBuyed())) {
-                    record.setPlay(YesOrNoEnum.YES);
+                    record.setPlay(YesOrNoEnum.NO);
                 } else if(detail.getProviderType().contains(SourceTypeEnum.PLATFORM.getCode())) {
-                    record.setPlay(detail.getState() ==YesOrNoEnum.YES && !detail.getDelFlag()?YesOrNoEnum.YES:YesOrNoEnum.NO);
+                    record.setPlay(detail.getState() ==YesOrNoEnum.YES && !detail.getDelFlag()?YesOrNoEnum.NO:YesOrNoEnum.YES);
                 }
             }else {
-                record.setPlay(detail.getPlay());
+                record.setPlay(detail.getPlay()==YesOrNoEnum.YES?YesOrNoEnum.NO:YesOrNoEnum.YES);
             }
         }
         return page;
@@ -2407,12 +2440,20 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 
     @Override
     public CbsMusicSheetWrapper.MusicSheetApplicationQuery getMusicSheetApplicationQuery() {
+        return getMusicSheetApplicationQuery(SourceTypeEnum.PLATFORM);
+    }
+    @Override
+    public CbsMusicSheetWrapper.MusicSheetApplicationQuery getMusicSheetApplicationQuery(SourceTypeEnum sourceType) {
         CbsMusicSheetWrapper.MusicSheetApplicationQuery query = new CbsMusicSheetWrapper.MusicSheetApplicationQuery();
         query.setDetailFlag(true);
         query.setDelFlag(true);
         query.setPage(1);
         query.setAudioPlayTypeFlag(false);
-        query.setApplicationId(applicationId);
+        if (sourceType == SourceTypeEnum.PLATFORM) {
+            query.setApplicationId(applicationId);
+        } else {
+            query.setApplicationId(Long.parseLong(sysConfigService.findConfigValue(SysConfigConstant.CBS_TENANT_APP_ID)));
+        }
         return query;
     }
 

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

@@ -18,6 +18,7 @@ import com.dayaedu.cbs.openfeign.wrapper.music.MusicSheetCategoriesWrapper;
 import com.microsvc.toolkit.common.response.paging.PageInfo;
 import com.yonge.cooleshow.biz.dal.entity.*;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.enums.SourceTypeEnum;
 import com.yonge.cooleshow.biz.dal.enums.SubjectTypeEnum;
 import com.yonge.cooleshow.biz.dal.mapper.TenantAlbumMusicMapper;
 import com.yonge.cooleshow.biz.dal.service.*;
@@ -112,8 +113,8 @@ public class TenantAlbumMusicServiceImpl extends ServiceImpl<TenantAlbumMusicMap
             if (CollectionUtils.isEmpty(musicSheets)) {
                 return page.setRecords(musicSheets);
             }
-            CbsMusicSheetWrapper.MusicSheetApplicationQuery cbsQuery = musicSheetService.getMusicSheetApplicationQuery();
-            List<Long> cbsMusicSheetIds = musicSheets.stream().map(TenantAlbumMusicWrapper.StudentTenantAlbumMusic::getCbsMusicSheetId).collect(Collectors.toList());
+            CbsMusicSheetWrapper.MusicSheetApplicationQuery cbsQuery = musicSheetService.getMusicSheetApplicationQuery(SourceTypeEnum.TENANT);
+            List<Long> cbsMusicSheetIds = musicSheets.stream().map(e -> e.getCbsMusicSheetId()).collect(Collectors.toList());
             cbsQuery.setMusicSheetIds(cbsMusicSheetIds);
             cbsQuery.setRows(cbsMusicSheetIds.size());
             List<CbsMusicSheetWrapper.MusicSheetApplication> rows = musicSheetService.queryCbsMusicSheetApplication(cbsQuery);

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

@@ -40,6 +40,12 @@
             <if test="param.subjectType != null">
                 and t.subject_type_ = #{param.subjectType}
             </if>
+            <if test="param.level != null and param.level != ''">
+                and t.level_ = #{param.level}
+            </if>
+            <if test="param.type != null and param.type != ''">
+                and t.type_ = #{param.type}
+            </if>
             <if test="param.albumId != null">
                 and t.tenant_album_id_ = #{param.albumId}
             </if>