浏览代码

Merge remote-tracking branch 'origin/feature/1022_vip' into feature/1022_vip

zouxuan 8 月之前
父节点
当前提交
701c7b17a9

+ 14 - 0
mec-application/src/main/java/com/ym/mec/student/controller/SysMusicScoreController.java

@@ -3,12 +3,14 @@ package com.ym.mec.student.controller;
 import com.ym.mec.biz.dal.enums.ClientEnum;
 import com.ym.mec.biz.dal.enums.ClientTypeEnum;
 import com.ym.mec.biz.dal.page.SysExamSongQueryInfo;
+import com.ym.mec.biz.dal.wrapper.MusicSheetWrapper;
 import com.ym.mec.biz.service.SysMusicScoreService;
 import com.ym.mec.biz.service.SysUserService;
 import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -35,4 +37,16 @@ public class SysMusicScoreController extends BaseController {
         queryInfo.setClientType(ClientTypeEnum.SMART_PRACTICE);
         return succeed(sysMusicScoreService.queryMusicScorePageInfo(queryInfo));
     }
+
+
+    @ApiOperation(value = "分页查询")
+    @GetMapping("/detail/{id}")
+    public Object queryPage2(@PathVariable Integer id) {
+        MusicSheetWrapper.ClientMusicSheetInfoQuery query = new MusicSheetWrapper.ClientMusicSheetInfoQuery();
+        query.setMusicSheetId(id);
+        query.setUserId(sysUserService.getUserId());
+        query.setUserType(ClientEnum.STUDENT);
+
+        return succeed(sysMusicScoreService.queryMusicScoreDetail(query));
+    }
 }

+ 26 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/MusicSheetWrapper.java

@@ -5,6 +5,7 @@ import com.dayaedu.cbs.common.enums.music.*;
 import com.dayaedu.cbs.common.enums.school.EMusicSheetType;
 import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
+import com.ym.mec.biz.dal.enums.ClientEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
@@ -467,4 +468,29 @@ public class MusicSheetWrapper {
 
     }
 
+    @Data
+    public static class ClientMusicSheetInfo{
+
+        @ApiModelProperty("曲目ID")
+        private Integer musicSheetId;
+
+        @ApiModelProperty("曲目名称")
+        private String musicSheetName;
+
+        @ApiModelProperty("使用状态 试用: FREE 锁定: LOCK 解锁:UNLOCK")
+        private String useStatus;
+    }
+
+    @Data
+    public static class ClientMusicSheetInfoQuery{
+
+        @ApiModelProperty("曲目ID")
+        private Integer musicSheetId;
+
+        @ApiModelProperty("用户ID")
+        private Integer userId;
+
+        @ApiModelProperty("用户类型")
+        private ClientEnum userType;
+    }
 }

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysMusicScoreService.java

@@ -47,4 +47,6 @@ public interface SysMusicScoreService extends BaseService<Integer, SysMusicScore
     void sync();
 
     void del(Long id);
+
+    MusicSheetWrapper.ClientMusicSheetInfo queryMusicScoreDetail(MusicSheetWrapper.ClientMusicSheetInfoQuery id);
 }

+ 4 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankOrganizationFeeMapperServiceImpl.java

@@ -72,12 +72,10 @@ public class MemberRankOrganizationFeeMapperServiceImpl extends BaseServiceImpl<
 		if(memberFeeSetting == null){
 			throw new BizException("修改失败: 请设置收费标准");
 		}
-		if(!feeMapper.getOrganId().equals(memberRankOrganizationFeeMapper.getOrganId())){
-			MemberRankOrganizationFeeMapper organIdAndRankId = memberRankOrganizationFeeMapperDao.findByOrganIdAndRankId(memberRankOrganizationFeeMapper.getOrganId(), memberRankOrganizationFeeMapper.getMemberRankSettingId());
-			if(organIdAndRankId != null){
-				throw new BizException("修改失败: 该分部学练宝收费标准已存在");
-			}
-		}
+        MemberRankOrganizationFeeMapper organIdAndRankId = memberRankOrganizationFeeMapperDao.findByOrganIdAndRankId(memberRankOrganizationFeeMapper.getOrganId(), memberRankOrganizationFeeMapper.getMemberRankSettingId());
+        if(organIdAndRankId != null && !organIdAndRankId.getId().equals(feeMapper.getId())){
+            throw new BizException("修改失败: 该分部学练宝收费标准已存在");
+        }
 		memberFeeSetting.setId(feeMapper.getMemberFeeSettingId());
 		memberFeeSettingService.update(memberFeeSetting);
 		memberRankOrganizationFeeMapperDao.update(memberRankOrganizationFeeMapper);

+ 39 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicScoreServiceImpl.java

@@ -472,6 +472,45 @@ public class SysMusicScoreServiceImpl extends BaseServiceImpl<Integer, SysMusicS
         }
     }
 
+    @Override
+    public MusicSheetWrapper.ClientMusicSheetInfo queryMusicScoreDetail(MusicSheetWrapper.ClientMusicSheetInfoQuery query) {
+        MusicSheetWrapper.ClientMusicSheetInfo clientMusicSheetInfo = new MusicSheetWrapper.ClientMusicSheetInfo();
+
+        SysMusicScore sysMusicScore = get(query.getMusicSheetId());
+
+        if (sysMusicScore == null) {
+            throw new BizException("曲目不存在");
+        }
+        clientMusicSheetInfo.setMusicSheetId(sysMusicScore.getId());
+        clientMusicSheetInfo.setMusicSheetName(sysMusicScore.getName());
+        // 根据用户会员判断是否锁定,免费曲目为试用
+        if (query.getUserType()!=null && ClientEnum.STUDENT==query.getUserType()) {
+            // 查询有效的会员
+            List<Integer> activationVipIds = cloudTeacherOrderDao.getActivationVipIds(query.getUserId());
+
+            // 获取会员的曲目分类
+            List<MemberRankCategoryMapper> categoryMapperList = memberRankCategoryMapperService.getByMemberRankId(activationVipIds);
+            if (CollectionUtils.isEmpty(categoryMapperList)) {
+                categoryMapperList = new ArrayList<>();
+            }
+            List<Integer> categoryIds = categoryMapperList.stream().map(MemberRankCategoryMapper::getCategoryId).distinct().collect(Collectors.toList());
+
+            // 判断曲目是否在分类中
+                if (categoryIds.contains(sysMusicScore.getCbsMusicCategoriesId())) {
+                    clientMusicSheetInfo.setUseStatus("UNLOCK");
+                } else if (StringUtils.isBlank(sysMusicScore.getRankIds())) {
+                    clientMusicSheetInfo.setUseStatus("FREE");
+                } else {
+                    clientMusicSheetInfo.setUseStatus("LOCK");
+                }
+        } else {
+            clientMusicSheetInfo.setUseStatus("UNLOCK");
+        }
+
+        return clientMusicSheetInfo;
+
+    }
+
     private void syncMusicSheet(SysMusicScore record) {
         List<SysMusicScoreAccompaniment> list = sysMusicScoreAccompanimentDao.findByMusicScoreId(record.getId());