|
@@ -1,25 +1,23 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
import com.ym.mec.auth.api.dto.MusicScoreQueryInfo;
|
|
|
-import com.ym.mec.auth.api.entity.SysMenu;
|
|
|
import com.ym.mec.biz.dal.dao.SysMusicScoreCategoriesDao;
|
|
|
import com.ym.mec.biz.dal.dao.SysMusicScoreDao;
|
|
|
import com.ym.mec.biz.dal.entity.SysMusicScoreCategories;
|
|
|
-import com.ym.mec.biz.dal.page.SysExamSongQueryInfo;
|
|
|
import com.ym.mec.biz.service.SysMusicScoreCategoriesService;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
import com.ym.mec.common.exception.BizException;
|
|
|
-import com.ym.mec.common.page.PageInfo;
|
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
-
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
public class SysMusicScoreCategoriesServiceImpl extends BaseServiceImpl<Integer, SysMusicScoreCategories> implements SysMusicScoreCategoriesService {
|
|
@@ -47,6 +45,38 @@ public class SysMusicScoreCategoriesServiceImpl extends BaseServiceImpl<Integer,
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public List<SysMusicScoreCategories> queryCategoriesTreeList(String categoryIds) {
|
|
|
+
|
|
|
+ categoryIds = categoryIds.endsWith(",") ? categoryIds.substring(0, categoryIds.length() - 1) : categoryIds;
|
|
|
+
|
|
|
+ List<SysMusicScoreCategories> rows = new ArrayList<SysMusicScoreCategories>();
|
|
|
+
|
|
|
+ List<SysMusicScoreCategories> categoryList = sysMusicScoreCategoriesDao.queryByIds(categoryIds);
|
|
|
+
|
|
|
+ SysMusicScoreCategories parentCategory = null;
|
|
|
+ SysMusicScoreCategories subCategory = null;
|
|
|
+ for(SysMusicScoreCategories smsc : categoryList){
|
|
|
+
|
|
|
+ if(smsc == null){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ parentCategory = getParentTree(smsc);
|
|
|
+ subCategory = getChildTree(smsc);
|
|
|
+
|
|
|
+ if(parentCategory == null){
|
|
|
+ insertSubToParent(rows, subCategory);
|
|
|
+ }else{
|
|
|
+ parentCategory.getSysMusicScoreCategoriesList().add(subCategory);
|
|
|
+ insertSubToParent(rows, parentCategory);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ return rows;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void save(SysMusicScoreCategories musicScoreCategories) {
|
|
|
String organId = musicScoreCategories.getOrganId();
|
|
@@ -210,4 +240,42 @@ public class SysMusicScoreCategoriesServiceImpl extends BaseServiceImpl<Integer,
|
|
|
}
|
|
|
return categories;
|
|
|
}
|
|
|
+
|
|
|
+ private SysMusicScoreCategories getChildTree(SysMusicScoreCategories sysMusicScoreCategories){
|
|
|
+
|
|
|
+ List<SysMusicScoreCategories> subCategoryList = sysMusicScoreCategoriesDao.findByParentId(sysMusicScoreCategories.getId(), null, null);
|
|
|
+
|
|
|
+ if(subCategoryList != null && subCategoryList.size() > 0){
|
|
|
+ sysMusicScoreCategories.setSysMusicScoreCategoriesList(subCategoryList);
|
|
|
+ for(SysMusicScoreCategories sc : subCategoryList){
|
|
|
+ getChildTree(sc);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return sysMusicScoreCategories;
|
|
|
+ }
|
|
|
+
|
|
|
+ private SysMusicScoreCategories getParentTree(SysMusicScoreCategories sysMusicScoreCategories) {
|
|
|
+ if (sysMusicScoreCategories != null && sysMusicScoreCategories.getParentId() > 0) {
|
|
|
+ SysMusicScoreCategories parentCategories = sysMusicScoreCategoriesDao.queryByParentId(sysMusicScoreCategories.getParentId());
|
|
|
+ if (parentCategories != null) {
|
|
|
+ if(parentCategories.getParentId() > 0){
|
|
|
+ return getParentTree(parentCategories);
|
|
|
+ }
|
|
|
+ return parentCategories;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void insertSubToParent(List<SysMusicScoreCategories> parentTree, SysMusicScoreCategories targetCategory) {
|
|
|
+ for (SysMusicScoreCategories target : parentTree) {
|
|
|
+ if (targetCategory.getId().intValue() == target.getId()) {
|
|
|
+ insertSubToParent(target.getSysMusicScoreCategoriesList(),targetCategory.getSysMusicScoreCategoriesList().get(0));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ parentTree.add(targetCategory);
|
|
|
+ }
|
|
|
}
|