|
@@ -20,7 +20,6 @@ import com.ym.mec.common.controller.BaseController;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
import com.ym.mec.common.entity.HttpResponseResult;
|
|
|
import com.ym.mec.common.exception.BizException;
|
|
|
-import com.ym.mec.common.page.PageInfo;
|
|
|
import com.ym.mec.common.service.IdGeneratorService;
|
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
import com.ym.mec.thirdparty.adapay.Payment;
|
|
@@ -189,7 +188,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
}
|
|
|
|
|
|
// 是否已被购买
|
|
|
- int count = cloudTeacherOrderDao.countByMemberRankSetttingId(memberRankSettingId);
|
|
|
+ int count = cloudTeacherOrderDao.countByMemberRankSettingId(memberRankSettingId);
|
|
|
result.setBuyFlag(count > 0);
|
|
|
|
|
|
// 查询上级
|
|
@@ -205,6 +204,47 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void updateSetting(MemberRankSettingWrapper.MemberRankSettingAdd memberRankSetting) {
|
|
|
|
|
|
+ // 是否已被购买
|
|
|
+ int count = cloudTeacherOrderDao.countByMemberRankSettingId(memberRankSetting.getId());
|
|
|
+ if (count >0) {
|
|
|
+ // 不能修改权益内容
|
|
|
+ List<MemberRankPrivileges> privilegesList = memberRankPrivilegesDao.findByRankSettingId(memberRankSetting.getId());
|
|
|
+ if (CollectionUtils.isNotEmpty(privilegesList)) {
|
|
|
+ List<Integer> privilegesIds = privilegesList.stream().map(MemberRankPrivileges::getMemberPrivilegesId).collect(Collectors.toList());
|
|
|
+ List<Integer> memberPrivilegesItemIdList = memberRankSetting.getMemberPrivilegesItemIdList();
|
|
|
+ if (CollectionUtils.isEmpty(memberPrivilegesItemIdList)) {
|
|
|
+ memberPrivilegesItemIdList = new ArrayList<>();
|
|
|
+ }
|
|
|
+ if (!new HashSet<>(privilegesIds).containsAll(memberPrivilegesItemIdList) || !new HashSet<>(memberPrivilegesItemIdList).containsAll(privilegesIds)) {
|
|
|
+ throw new BizException("已被购买的会员等级不能修改权益内容");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 不能修改曲目分类内容
|
|
|
+ List<MemberRankCategoryMapper> categoryMapperList = memberRankCategoryMapperService.getByMemberRankId(Lists.newArrayList(memberRankSetting.getId()));
|
|
|
+ if (CollectionUtils.isNotEmpty(categoryMapperList)) {
|
|
|
+ List<Integer> categoryIdList = categoryMapperList.stream().map(MemberRankCategoryMapper::getCategoryId).collect(Collectors.toList());
|
|
|
+ List<Integer> memberCategoryIdList = memberRankSetting.getMemberCategoryIdList();
|
|
|
+ if (CollectionUtils.isEmpty(memberCategoryIdList)) {
|
|
|
+ memberCategoryIdList = new ArrayList<>();
|
|
|
+ }
|
|
|
+ if (!new HashSet<>(categoryIdList).containsAll(memberCategoryIdList) || !new HashSet<>(memberCategoryIdList).containsAll(categoryIdList)) {
|
|
|
+ throw new BizException("已被购买的会员等级不能修改权益内容");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 不能修改云课堂内容
|
|
|
+ List<MemberRankCourseTypeMapper> courseTypeMapperList = memberRankCourseTypeMapperService.getByMemberRankId(memberRankSetting.getId());
|
|
|
+ if (CollectionUtils.isNotEmpty(courseTypeMapperList)) {
|
|
|
+ List<String> courseTypeList = courseTypeMapperList.stream().map(MemberRankCourseTypeMapper::getCourseType).collect(Collectors.toList());
|
|
|
+ List<String> memberCourseTypeList = memberRankSetting.getMemberCourseTypeList();
|
|
|
+ if (CollectionUtils.isEmpty(memberCourseTypeList)) {
|
|
|
+ memberCourseTypeList = new ArrayList<>();
|
|
|
+ }
|
|
|
+ if (!new HashSet<>(courseTypeList).containsAll(memberCourseTypeList) || !new HashSet<>(memberCourseTypeList).containsAll(courseTypeList)) {
|
|
|
+ throw new BizException("已被购买的会员等级不能修改权益内容");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
|
|
|
memberRankSettingDao.update(JSON.parseObject(JSON.toJSONString(memberRankSetting),MemberRankSetting.class));
|
|
@@ -505,7 +545,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
sysMusicScoreCategories = new ArrayList<>();
|
|
|
}
|
|
|
// 将被使用过的选出来
|
|
|
- sysMusicScoreCategories = getCategoryTreeByIds(sysMusicScoreCategories,memberCategoryIdList);
|
|
|
+ getCategoryTreeByIds(sysMusicScoreCategories,memberCategoryIdList);
|
|
|
category.setMusicScoreCategories(sysMusicScoreCategories);
|
|
|
|
|
|
List<String> memberCourseTypeList = detail.getMemberCourseTypeList();
|
|
@@ -540,23 +580,19 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
|
|
|
}
|
|
|
|
|
|
- private List<SysMusicScoreCategories> getCategoryTreeByIds(List<SysMusicScoreCategories> sysMusicScoreCategories, List<Integer> memberCategoryIdList) {
|
|
|
+ private void getCategoryTreeByIds(List<SysMusicScoreCategories> sysMusicScoreCategories, List<Integer> memberCategoryIdList) {
|
|
|
if (CollectionUtils.isEmpty(sysMusicScoreCategories)) {
|
|
|
- return new ArrayList<>();
|
|
|
+ return ;
|
|
|
}
|
|
|
- List<SysMusicScoreCategories> list = new ArrayList<>();
|
|
|
- for (SysMusicScoreCategories sysMusicScoreCategory : sysMusicScoreCategories) {
|
|
|
- if (memberCategoryIdList.contains(sysMusicScoreCategory.getId())) {
|
|
|
- list.add(sysMusicScoreCategory);
|
|
|
+ for (int i = 0; i < sysMusicScoreCategories.size(); i++) {
|
|
|
+ SysMusicScoreCategories sysMusicScoreCategory = sysMusicScoreCategories.get(i);
|
|
|
+ if (!memberCategoryIdList.contains(sysMusicScoreCategory.getId())) {
|
|
|
+ sysMusicScoreCategories.remove(i);
|
|
|
+ i--;
|
|
|
} else {
|
|
|
- List<SysMusicScoreCategories> sysMusicScoreCategories1 = getCategoryTreeByIds(sysMusicScoreCategory.getSysMusicScoreCategoriesList(), memberCategoryIdList);
|
|
|
- if (CollectionUtils.isNotEmpty(sysMusicScoreCategories1)) {
|
|
|
- sysMusicScoreCategory.setSysMusicScoreCategoriesList(sysMusicScoreCategories1);
|
|
|
- list.add(sysMusicScoreCategory);
|
|
|
- }
|
|
|
+ getCategoryTreeByIds(sysMusicScoreCategory.getSysMusicScoreCategoriesList(), memberCategoryIdList);
|
|
|
}
|
|
|
}
|
|
|
- return list;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -1124,6 +1160,8 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
// 转tree
|
|
|
memberRankSettings = tree(memberRankSettings);
|
|
|
|
|
|
+ // ID 倒序
|
|
|
+ memberRankSettings.sort(Comparator.comparing(MemberRankSettingWrapper.MemberRankSetting::getId).reversed());
|
|
|
}
|
|
|
return memberRankSettings;
|
|
|
}
|
|
@@ -1159,7 +1197,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
// 判断是否买过
|
|
|
|
|
|
// 是否已被购买
|
|
|
- int count = cloudTeacherOrderDao.countByMemberRankSetttingId(id);
|
|
|
+ int count = cloudTeacherOrderDao.countByMemberRankSettingId(id);
|
|
|
if (count > 0) {
|
|
|
throw new BizException("存在学员使用、或销售,不可删除");
|
|
|
}
|
|
@@ -1169,6 +1207,12 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
if (count1 > 0) {
|
|
|
throw new BizException("存在学员使用、或销售,不可删除");
|
|
|
}
|
|
|
+ // 判断是否存在子集
|
|
|
+ List<MemberRankSetting> memberRankSettings = memberRankSettingDao.selectBatchIdsByParentIds(Lists.newArrayList(id));
|
|
|
+ memberRankSettings = memberRankSettings.stream().filter(o -> !o.getDelFlag()).collect(Collectors.toList());
|
|
|
+ if (CollectionUtils.isNotEmpty(memberRankSettings)) {
|
|
|
+ throw new BizException("存在子级,不可删除");
|
|
|
+ }
|
|
|
memberRankSettingDao.deleteById(id);
|
|
|
}
|
|
|
|