刘俊驰 8 месяцев назад
Родитель
Сommit
be15ef3067

+ 49 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankSettingServiceImpl.java

@@ -204,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));
@@ -1123,6 +1164,8 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
             // 转tree
             memberRankSettings = tree(memberRankSettings);
 
+            // ID 倒序
+            memberRankSettings.sort(Comparator.comparing(MemberRankSettingWrapper.MemberRankSetting::getId).reversed());
         }
         return memberRankSettings;
     }
@@ -1168,6 +1211,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);
     }