ソースを参照

Merge branch 'feature/0826_music' into test

liujc 10 ヶ月 前
コミット
127ba65593

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

@@ -64,7 +64,7 @@ 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.getSourceType() == SourceTypeEnum.TENANT &&  !StringUtil.isEmpty(query.getSubjectType())) {
+        if (query.getProviderType() == SourceTypeEnum.TENANT &&  !StringUtil.isEmpty(query.getSubjectType())) {
             Long categoryId = null;
             if (SubjectTypeEnum.SUBJECT.name().equals(query.getSubjectType())) {
                 categoryId= Long.parseLong(sysConfigService.findConfigValue(SysConfigConstant.TENANT_ALBUM_SUBJECT_TYPE_CATEGORY));

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

@@ -199,7 +199,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
     @Override
     public IPage<MusicSheetVoResult> selectCbsPage(IPage<MusicSheetVo> page, MusicSheetSearch query) {
         List<MusicSheetVo> musicSheets = baseMapper.selectPage(page, query);
-        IPage<MusicSheetVo> info = page.setRecords(musicDataFormat(musicSheets,query.getSourceType()));
+        IPage<MusicSheetVo> info = page.setRecords(musicDataFormat(musicSheets,query.getProviderType()));
         List<MusicSheetVo> rows = info.getRecords();
         List<MusicSheetVoResult> musicSheetVoResults = new ArrayList<>();
         for (MusicSheetVo row : rows) {
@@ -665,7 +665,6 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 
                 if (detail.getProviderType().contains(SourceTypeEnum.TENANT.getCode())) {
                     if (userType == ClientEnum.STUDENT) {
-
                         // 机构学生
                         List<Long> tenantAlbumIds = userTenantAlbumRecordMapper.selectTenantIds(sysUser.getId());
                         if (CollectionUtils.isNotEmpty(tenantAlbumIds)) {
@@ -673,7 +672,6 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
                             if (musicSheetIds.contains(detail.getId())) {
                                 detail.setPlay(YesOrNoEnum.YES);
                                 detail.setBuyed(true);
-                                return detail;
                             }
                         }
                     } else {
@@ -684,28 +682,18 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
                             if (musicSheetIds.contains(detail.getId())) {
                                 detail.setPlay(YesOrNoEnum.YES);
                                 detail.setBuyed(true);
-                                return detail;
                             }
                         }
+                        if (detail.getPlay() ==YesOrNoEnum.NO) {
+                            platformMusicUseCheck(sysUser, userType, detail);
+                        }
                     }
                 }
             } else {
                 if (!detail.getProviderType().contains(SourceTypeEnum.PLATFORM.getCode())) {
                     return detail;
                 }
-                if (detail.getPaymentType().contains(ChargeTypeEnum.FREE.getCode())) {
-                    detail.setPlay(YesOrNoEnum.YES);
-                } else if (ClientEnum.STUDENT.getCode().equals(userType.getCode())
-                    || ClientEnum.TEACHER.getCode().equals(userType.getCode())) {
-                    // 2022 7 20  老师也能购买曲目
-                    if (ClientEnum.TEACHER.getCode().equals(userType.getCode()) && sysUser.getId().equals(detail.getUserId())) {
-                        detail.setPlay(YesOrNoEnum.YES);
-                    } else {
-                        setMusicSheetPlay(sysUser.getId(), detail, userType);
-                    }
-                } else {
-                    detail.setPlay(YesOrNoEnum.YES);
-                }
+                platformMusicUseCheck(sysUser, userType, detail);
             }
         } else {
             detail.setTenantFlag(true);
@@ -713,7 +701,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
                 return detail;
             }
             // 机构专辑购买
-            detail.setPlay(YesOrNoEnum.NO);
+//            detail.setPlay(YesOrNoEnum.NO);
             List<Long> collected = Arrays.stream(tenantAlbumId.split(",")).map(Long::parseLong).collect(Collectors.toList());
 
             // 学生生效中的机构专辑
@@ -745,6 +733,25 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
         return detail;
     }
 
+    private void platformMusicUseCheck(SysUser sysUser, ClientEnum userType, MusicSheetDetailVo detail) {
+        if (!detail.getProviderType().contains(SourceTypeEnum.PLATFORM.getCode())) {
+            return;
+        }
+        if (detail.getPaymentType().contains(ChargeTypeEnum.FREE.getCode())) {
+            detail.setPlay(YesOrNoEnum.YES);
+        } else if (ClientEnum.STUDENT.getCode().equals(userType.getCode())
+            || ClientEnum.TEACHER.getCode().equals(userType.getCode())) {
+            // 2022 7 20  老师也能购买曲目
+            if (ClientEnum.TEACHER.getCode().equals(userType.getCode()) && sysUser.getId().equals(detail.getUserId())) {
+                detail.setPlay(YesOrNoEnum.YES);
+            } else {
+                setMusicSheetPlay(sysUser.getId(), detail, userType);
+            }
+        } else {
+            detail.setPlay(YesOrNoEnum.YES);
+        }
+    }
+
     private Long userTenantId(Long userId, ClientEnum userType) {
         if (ClientEnum.STUDENT == userType) {
             Student student = studentService.getById(userId);
@@ -771,7 +778,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
      * @param userType  用户类型
      */
     private void setMusicSheetPlay(Long studentId, MusicSheetDetailVo detail, ClientEnum userType) {
-        detail.setPlay(YesOrNoEnum.NO);
+//        detail.setPlay(YesOrNoEnum.NO);
         // 单曲购买 判断购买记录,有记录课播放
         if (detail.getPaymentType().contains(ChargeTypeEnum.CHARGE.getCode())) {
             // 学生须判断是否能播放曲目
@@ -812,6 +819,10 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
             return;
         }
 
+        if (detail.getDelFlag() ||detail.getState() == YesOrNoEnum.NO) {
+            return;
+        }
+
         // 判断专辑购买
 
         // 1 查询曲目所在的专辑
@@ -1014,6 +1025,8 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 
         // 设置学生端收藏联系
         query.setClientType(ClientEnum.STUDENT);
+        query.setState(null);
+        query.setDelFlag(null);
         // 构建分页信息
         List<MusicSheetVo> musicSheetVos = baseMapper.selectPracticeMusicPage(query, practiceMusicIdList);
         //设置内容平台曲目信息
@@ -1030,7 +1043,17 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
             musicSheetService.updateMusicAlbumNumInfo(page.getRecords());
         }
         for (MusicSheetVo record : page.getRecords()) {
-            record.setPlay(detail(record.getId(), sysUserFeignService.queryUserById(query.getStudentId()), ClientEnum.STUDENT).getPlay());
+            MusicSheetDetailVo detail = detail(record.getId(), sysUserFeignService.queryUserById(query.getStudentId()), ClientEnum.STUDENT);
+            record.setPlay(YesOrNoEnum.NO);
+            if (query.getProviderType() == SourceTypeEnum.PLATFORM) {
+                if (Boolean.TRUE.equals(detail.getBuyed())) {
+                    record.setPlay(YesOrNoEnum.YES);
+                } else if(detail.getProviderType().contains(SourceTypeEnum.PLATFORM.getCode())) {
+                    record.setPlay(detail.getState() ==YesOrNoEnum.YES && !detail.getDelFlag()?YesOrNoEnum.YES:YesOrNoEnum.NO);
+                }
+            }else {
+                record.setPlay(detail.getTenantState()&& !detail.getTenantDelFlag()?YesOrNoEnum.YES:YesOrNoEnum.NO);
+            }
         }
         return page;
     }

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/MusicSheetVoResult.java

@@ -253,6 +253,8 @@ public class MusicSheetVoResult implements Serializable {
     @ApiModelProperty(value = "内容平台状态曲目状态(0:停用,1:启用)")
     private Boolean  platformState;
 
+    @ApiModelProperty("分类")
+    private String categoryName;
 
     public ChargeTypeEnum getChargeType() {
         if (Objects.isNull(this.chargeType) && StringUtils.isNotEmpty(getPaymentType())) {

+ 12 - 12
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetPracticeRecordMapper.xml

@@ -32,21 +32,21 @@
             <if test="param.clientType != null">
                 and mspr.client_id_ = #{param.clientType}
             </if>
-            <if test="param.providerType.code == 'TENANT'">
-                and find_in_set('TENANT',ms.provider_type_)
+<!--            <if test="param.providerType.code == 'TENANT'">-->
+<!--                and find_in_set('TENANT',ms.provider_type_)-->
 
-                <if test="param.state != null">
-                    and ms.tenant_state_ = #{param.state}
-                </if>
-            </if>
+<!--                <if test="param.state != null">-->
+<!--                    and ms.tenant_state_ = #{param.state}-->
+<!--                </if>-->
+<!--            </if>-->
 
-            <if test="param.providerType.code == 'PLATFORM'">
-                and find_in_set('PLATFORM',ms.provider_type_)
+<!--            <if test="param.providerType.code == 'PLATFORM'">-->
+<!--                and find_in_set('PLATFORM',ms.provider_type_)-->
 
-                <if test="param.state != null">
-                    and ms.state_ = #{param.state}
-                </if>
-            </if>
+<!--                <if test="param.state != null">-->
+<!--                    and ms.state_ = #{param.state}-->
+<!--                </if>-->
+<!--            </if>-->
             <if test="param.studentId != null">
                 and mspr.user_id_ = #{param.studentId}
             </if>