刘俊驰 9 miesięcy temu
rodzic
commit
cf90529dc8

+ 1 - 1
mec-application/src/main/java/com/ym/mec/web/controller/MemberRankSettingController.java

@@ -89,7 +89,7 @@ public class MemberRankSettingController extends BaseController {
 
     @ApiOperation(value = "树状列表")
     @GetMapping("/categoryTree")
-    public HttpResponseResult<List<SysMusicScoreCategories>> queryTree(@RequestParam(required = false) Integer parentId) {
+    public HttpResponseResult<MemberRankSettingWrapper.Category> queryTree(@RequestParam(required = false) Integer parentId) {
 
         return succeed(memberRankSettingService.getTree(parentId));
     }

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MemberRankSettingDao.java

@@ -12,4 +12,8 @@ public interface MemberRankSettingDao extends BaseDAO<Integer, MemberRankSetting
 	List<MemberRankSetting> queryListByIsDefault(@Param("isDefault") Boolean isDefault);
 
     List<MemberRankSetting> selectBatchIds(@Param("ids") List<Integer> ids);
+
+    List<MemberRankSetting> selectBatchIdsByParentIds(@Param("topIds") List<Integer> topIds);
+
+    void deleteById(@Param("id") Integer id);
 }

+ 13 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/MemberRankSettingWrapper.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.dal.wrapper;
 
 import com.alibaba.fastjson.JSON;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
+import com.ym.mec.biz.dal.entity.SysMusicScoreCategories;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -136,4 +137,16 @@ public class MemberRankSettingWrapper {
         }
     }
 
+
+
+    @Data
+    @ApiModel(" Category-会员等级设置")
+    public static class Category {
+
+        @ApiModelProperty("曲目分类")
+        private List<SysMusicScoreCategories> musicScoreCategories;
+
+        @ApiModelProperty("学练宝云课堂内容")
+        private List<SysMusicScoreCategories> lessonCategories;
+    }
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/MemberRankSettingService.java

@@ -52,7 +52,7 @@ public interface MemberRankSettingService extends BaseService<Integer, MemberRan
 
     HttpResponseResult<Integer> checkActiveBuy(MemberPayParamDto memberPayParamDto);
 
-    List<SysMusicScoreCategories> getTree(Integer parentId);
+    MemberRankSettingWrapper.Category getTree(Integer parentId);
 
     List<MemberRankSettingWrapper.MemberRankSetting> queryPage2(MemberRankSettingWrapper.MemberRankSettingQuery queryInfo);
 

+ 70 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankSettingServiceImpl.java

@@ -128,6 +128,9 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
     @Autowired
     private CloudTeacherOrderDao cloudTeacherOrderDao;
 
+    @Autowired
+    private TenantMemberRankSettingService tenantMemberRankSettingService;
+
     private final Logger logger = LoggerFactory.getLogger(this.getClass());
 
     @Override
@@ -465,7 +468,8 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
     }
 
     @Override
-    public List<SysMusicScoreCategories> getTree(Integer parentId) {
+    public MemberRankSettingWrapper.Category getTree(Integer parentId) {
+        MemberRankSettingWrapper.Category category = new MemberRankSettingWrapper.Category();
         // 分类
         List<SysMusicScoreCategories> sysMusicScoreCategories = cbsMusicScoreCategoriesService.queryTreeByAppId();
 
@@ -487,6 +491,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
             }
             // 将被使用过的选出来
             sysMusicScoreCategories = getCategoryTreeByIds(sysMusicScoreCategories,memberCategoryIdList);
+            category.setMusicScoreCategories(sysMusicScoreCategories);
 
             List<String> memberCourseTypeList = detail.getMemberCourseTypeList();
             if (CollectionUtils.isNotEmpty(memberCourseTypeList) && course !=null) {
@@ -499,10 +504,11 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
                     }
                 }
                 if (CollectionUtils.isNotEmpty(course.getSysMusicScoreCategoriesList())) {
-                    sysMusicScoreCategories.add(course);
+                    category.setLessonCategories(Lists.newArrayList(course));
                 }
             }
         } else {
+            category.setMusicScoreCategories(sysMusicScoreCategories);
             for (LessonCoursewareWrapper.LessonCoursewareDto record : records) {
                 SysMusicScoreCategories lesson = new SysMusicScoreCategories();
                 lesson.setId(record.getId());
@@ -510,12 +516,12 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
                 course.getSysMusicScoreCategoriesList().add(lesson);
             }
             if (CollectionUtils.isNotEmpty(course.getSysMusicScoreCategoriesList())) {
-                sysMusicScoreCategories.add(course);
+                category.setLessonCategories(Lists.newArrayList(course));
             }
         }
 
 
-        return sysMusicScoreCategories;
+        return category;
 
     }
 
@@ -1031,6 +1037,24 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
         MapUtil.populateMap(params, queryInfo);
         List<MemberRankSetting>   dataList = this.getDAO().queryPage(params);
 
+
+        // 顶级查询所有,下级的查询自己和上级
+        List<Integer> topIds = new ArrayList<>();
+        //
+        List<Integer> parentIds = new ArrayList<>();
+        for (MemberRankSetting memberRankSetting : dataList) {
+            if (memberRankSetting.getParentId()== null || memberRankSetting.getParentId() == 0) {
+                topIds.add(memberRankSetting.getId());
+            } else {
+                parentIds.add(memberRankSetting.getParentId());
+            }
+        }
+        // 查询上级
+        List<MemberRankSetting> parents = memberRankSettingDao.selectBatchIds(parentIds);
+        List<MemberRankSetting> tops = memberRankSettingDao.selectBatchIdsByParentIds(topIds);
+
+        dataList.addAll(parents);
+        dataList.addAll(tops);
         List<MemberRankSettingWrapper.MemberRankSetting> memberRankSettings = JSON.parseArray(JSON.toJSONString(dataList), MemberRankSettingWrapper.MemberRankSetting.class);
 
         // 设置曲目数量
@@ -1059,13 +1083,55 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
                     }
                 });
             }
+            // 转tree
+            memberRankSettings = tree(memberRankSettings);
+
         }
         return memberRankSettings;
     }
 
+    private List<MemberRankSettingWrapper.MemberRankSetting> tree(List<MemberRankSettingWrapper.MemberRankSetting> memberRankSettings) {
+        List<MemberRankSettingWrapper.MemberRankSetting> list = Lists.newArrayList();
+        if (CollectionUtils.isEmpty(memberRankSettings)) {
+            return list;
+        }
+
+        for (MemberRankSettingWrapper.MemberRankSetting item : memberRankSettings) {
+            if (item.getParentId() == 0) {
+                list.add(item);
+            }
+
+            for (MemberRankSettingWrapper.MemberRankSetting child : memberRankSettings) {
+                if (child.getParentId().equals(item.getId())) {
+                    if (item.getChildren() == null) {
+                        item.setChildren(new ArrayList<>());
+                    }
+                    item.getChildren().add(child);
+                }
+            }
+
+        }
+        return list;
+
+    }
+
     @Override
     public void del(Integer id) {
 
+        // 判断是否买过
+
+        // 是否已被购买
+        int count = cloudTeacherOrderDao.countByMemberRankSetttingId(id);
+        if (count > 0) {
+            throw new BizException("存在学员使用、或销售,不可删除");
+        }
+        Integer count1 = tenantMemberRankSettingService.lambdaQuery()
+            .eq(TenantMemberRankSetting::getMemberRankSettingId, id)
+            .count();
+        if (count1 > 0) {
+            throw new BizException("存在学员使用、或销售,不可删除");
+        }
+        memberRankSettingDao.deleteById(id);
     }
 
     @Override

+ 10 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantMemberRankSettingServiceImpl.java

@@ -51,9 +51,17 @@ public class TenantMemberRankSettingServiceImpl extends ServiceImpl<TenantMember
         if (CollectionUtils.isEmpty(list)) {
             return new ArrayList<>();
         }
-        List<TenantMemberRankSettingWrapper.TenantMemberRankSettingAdd> tenantMemberRankSettingAdds = JSON.parseArray(JSON.toJSONString(list), TenantMemberRankSettingWrapper.TenantMemberRankSettingAdd.class);
+        List<TenantMemberRankSettingWrapper.TenantMemberRankSettingAdd> tenantMemberRankSettingAdds = new ArrayList<>();
+        for (TenantMemberRankSetting tenantMemberRankSetting : list) {
+            TenantMemberRankSettingWrapper.TenantMemberRankSettingAdd add = new TenantMemberRankSettingWrapper.TenantMemberRankSettingAdd();
+            add.setMemberRankSettingId(tenantMemberRankSetting.getMemberRankSettingId());
+            add.setType(tenantMemberRankSetting.getType());
+            add.setMemberConfig(JSON.parseObject(tenantMemberRankSetting.getMemberConfig(), TenantMemberRankSettingWrapper.MemberConfig.class));
+            tenantMemberRankSettingAdds.add(add);
+        }
+//        List<TenantMemberRankSettingWrapper.TenantMemberRankSettingAdd> tenantMemberRankSettingAdds = JSON.parseArray(JSON.toJSONString(list), TenantMemberRankSettingWrapper.TenantMemberRankSettingAdd.class);
         // 学练宝ID集合
-        List<Integer> ids = tenantMemberRankSettingAdds.stream().map(o -> o.getMemberRankSettingId()).distinct().collect(Collectors.toList());
+        List<Integer> ids = tenantMemberRankSettingAdds.stream().map(TenantMemberRankSettingWrapper.TenantMemberRankSettingAdd::getMemberRankSettingId).distinct().collect(Collectors.toList());
         List<MemberRankSetting> memberRankSettings = memberRankSettingService.listByIds(ids);
         // map
         Map<Integer, String> map =

+ 11 - 0
mec-biz/src/main/resources/config/mybatis/MemberRankSettingMapper.xml

@@ -113,4 +113,15 @@
             #{id}
         </foreach>
     </select>
+
+	<select id="selectBatchIdsByParentIds" resultMap="MemberRankSetting">
+        SELECT * FROM member_rank_setting WHERE parent_id_ IN
+        <foreach collection="topIds" item="parentId" open="(" close=")" separator=",">
+            #{parentId}
+        </foreach>
+    </select>
+
+	<update id="deleteById">
+        UPDATE member_rank_setting SET del_flag_ = 1 WHERE id_ = #{id}
+    </update>
 </mapper>