소스 검색

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

zouxuan 8 달 전
부모
커밋
61ed74c73e

+ 0 - 4
mec-application/src/main/java/com/ym/mec/student/controller/StudentManageController.java

@@ -2,7 +2,6 @@ package com.ym.mec.student.controller;
 
 import com.google.common.collect.Lists;
 import com.microsvc.toolkit.middleware.oss.wrapper.OssWrapper;
-import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.CloudTeacherOrderDao;
 import com.ym.mec.biz.dal.dto.CashAccountDetail;
@@ -21,14 +20,11 @@ import com.ym.mec.util.date.DateUtil;
 import com.ym.mec.util.http.HttpUtil;
 import com.ym.mec.util.upload.UploadUtil;
 import io.swagger.annotations.*;
-import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
-import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 

+ 10 - 0
mec-application/src/main/java/com/ym/mec/student/controller/SysMusicScoreAccompanimentController.java

@@ -2,9 +2,11 @@ package com.ym.mec.student.controller;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
+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.service.SysMusicScoreAccompanimentService;
+import com.ym.mec.biz.service.SysUserService;
 import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -13,6 +15,8 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
+
 @RequestMapping("${app-config.url.student:}/sysMusicScoreAccompaniment")
 @Api(tags = "曲库服务")
 @RestController
@@ -23,9 +27,15 @@ public class SysMusicScoreAccompanimentController extends BaseController {
     @Autowired
     private SysUserFeignService sysUserFeignService;
 
+    @Resource
+    private SysUserService sysUserService;
+
     @ApiOperation(value = "分页查询")
     @GetMapping("/queryPage")
     public Object queryPage(SysExamSongQueryInfo queryInfo) {
+        // 设置用户ID
+        queryInfo.setUserId(sysUserService.getUserId());
+        queryInfo.setUserType(ClientEnum.STUDENT);
         queryInfo.setType("COMMON");
         if(queryInfo.getClientType() == null){
             queryInfo.setClientType(ClientTypeEnum.SMART_PRACTICE);

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysMusicScoreAccompaniment.java

@@ -143,6 +143,9 @@ public class SysMusicScoreAccompaniment {
 	@ApiModelProperty("伴奏固定调PDF文件")
 	private String accJianPdfUrl;
 
+	@ApiModelProperty("使用状态 试用: FREE 锁定: LOCK 解锁:UNLOCK")
+	private String useStatus;
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 42 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicScoreAccompanimentServiceImpl.java

@@ -3,11 +3,14 @@ package com.ym.mec.biz.service.impl;
 
 import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
 import com.ym.mec.auth.api.dto.MusicScoreQueryInfo;
+import com.ym.mec.biz.dal.dao.CloudTeacherOrderDao;
 import com.ym.mec.biz.dal.dao.SysMusicScoreAccompanimentDao;
 import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.enums.ClientEnum;
 import com.ym.mec.biz.dal.page.SysExamSongQueryInfo;
 import com.ym.mec.biz.service.CbsMusicScoreCategoriesService;
 import com.ym.mec.biz.service.InstrumentService;
+import com.ym.mec.biz.service.MemberRankCategoryMapperService;
 import com.ym.mec.biz.service.SysMusicScoreAccompanimentService;
 import com.ym.mec.biz.service.SysMusicScoreService;
 import com.ym.mec.common.dal.BaseDAO;
@@ -18,6 +21,7 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.util.collection.MapUtil;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -36,6 +40,13 @@ public class SysMusicScoreAccompanimentServiceImpl extends BaseServiceImpl<Strin
 	private SysMusicScoreService sysMusicScoreService;
 	@Resource
 	private InstrumentService instrumentService;
+
+	@Autowired
+	private CloudTeacherOrderDao cloudTeacherOrderDao;
+
+	@Autowired
+	private MemberRankCategoryMapperService memberRankCategoryMapperService;
+
 	@Override
 	public BaseDAO<String, SysMusicScoreAccompaniment> getDAO() {
 		return sysMusicScoreAccompanimentDao;
@@ -347,7 +358,37 @@ public class SysMusicScoreAccompanimentServiceImpl extends BaseServiceImpl<Strin
 		}
 		Map<String, Object> params = new HashMap<>();
 		MapUtil.populateMap(params, queryInfo);
-        return this.queryAccPage(params);
+		List<SysMusicScoreAccompaniment> accompaniments = this.queryAccPage(params);
+
+		// 根据用户会员判断是否锁定,免费曲目为试用
+		if (queryInfo.getUserType()!=null && ClientEnum.STUDENT==queryInfo.getUserType()) {
+			// 查询有效的会员
+			List<Integer> activationVipIds = cloudTeacherOrderDao.getActivationVipIds(queryInfo.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());
+
+			// 判断曲目是否在分类中
+			for (SysMusicScoreAccompaniment row : accompaniments) {
+				if (categoryIds.contains(row.getCategoriesId())) {
+					row.setUseStatus("UNLOCK");
+				} else if (StringUtils.isBlank(row.getRankIds())) {
+					row.setUseStatus("FREE");
+				} else {
+					row.setUseStatus("LOCK");
+				}
+			}
+		} else {
+			for (SysMusicScoreAccompaniment item : accompaniments) {
+				item.setUseStatus("UNLOCK");
+			}
+		}
+
+		return accompaniments;
     }
 
 	@Override