|
@@ -1,7 +1,11 @@
|
|
|
package com.ym.mec.cms.service.impl;
|
|
|
|
|
|
import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
+import com.ym.mec.cms.dal.dao.SysNewsInformationDao;
|
|
|
+import com.ym.mec.cms.dal.entity.SysNewsInformation;
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
@@ -13,37 +17,69 @@ import com.ym.mec.common.dal.BaseDAO;
|
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
|
|
|
@Service
|
|
|
-public class SysNewsTypeServiceImpl extends BaseServiceImpl<Integer, SysNewsType> implements SysNewsTypeService {
|
|
|
-
|
|
|
- @Autowired
|
|
|
- private SysNewsTypeDao sysNewsTypeDao;
|
|
|
-
|
|
|
- @Override
|
|
|
- public BaseDAO<Integer, SysNewsType> getDAO() {
|
|
|
- return sysNewsTypeDao;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public List<SysNewsTypeTree> queryTree(Integer parentId) {
|
|
|
- if(parentId == null){
|
|
|
- parentId = 0 ;
|
|
|
- }
|
|
|
- List<SysNewsTypeTree> sysNewsTypeList = queryByParentId(parentId);
|
|
|
- if(sysNewsTypeList != null && sysNewsTypeList.size() > 0){
|
|
|
- for(SysNewsTypeTree type : sysNewsTypeList){
|
|
|
- type.setSubTypeList(queryTree(type.getId()));
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- return sysNewsTypeList;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public List<SysNewsTypeTree> queryByParentId(Integer parentId) {
|
|
|
- if(parentId == null){
|
|
|
- parentId = 0 ;
|
|
|
- }
|
|
|
- return sysNewsTypeDao.queryByParentId(parentId);
|
|
|
- }
|
|
|
-
|
|
|
+public class SysNewsTypeServiceImpl extends BaseServiceImpl<Integer, SysNewsType> implements SysNewsTypeService {
|
|
|
+ @Autowired
|
|
|
+ private SysNewsTypeDao sysNewsTypeDao;
|
|
|
+ @Autowired
|
|
|
+ private SysNewsInformationDao informationDao;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public BaseDAO<Integer, SysNewsType> getDAO() {
|
|
|
+ return sysNewsTypeDao;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<SysNewsTypeTree> queryTree(Integer parentId) {
|
|
|
+ if (parentId == null) {
|
|
|
+ parentId = 0;
|
|
|
+ }
|
|
|
+ List<SysNewsTypeTree> sysNewsTypeList = queryByParentId(parentId);
|
|
|
+ if (sysNewsTypeList != null && sysNewsTypeList.size() > 0) {
|
|
|
+ for (SysNewsTypeTree type : sysNewsTypeList) {
|
|
|
+ type.setSubTypeList(queryTree(type.getId()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return sysNewsTypeList;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<SysNewsTypeTree> queryByParentId(Integer parentId) {
|
|
|
+ if (parentId == null) {
|
|
|
+ parentId = 0;
|
|
|
+ }
|
|
|
+ return sysNewsTypeDao.queryByParentId(parentId);
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<SysNewsType> listWithTree(Integer id) {
|
|
|
+ SysNewsType newsType = sysNewsTypeDao.get(id);
|
|
|
+ List<SysNewsType> all = sysNewsTypeDao.findAll(null);
|
|
|
+
|
|
|
+ all.forEach(e -> {
|
|
|
+ List<SysNewsInformation> list = informationDao.queryByType(e.getId());
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
+ e.setInformationList(list);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ List<SysNewsType> treeMenus = all.stream().filter((categoryEntity) -> {
|
|
|
+ return categoryEntity.getParentId() == newsType.getParentId();
|
|
|
+ }).map((menu) -> {
|
|
|
+ menu.setChildren(getChildren(menu, all));
|
|
|
+ return menu;
|
|
|
+ }).filter(e -> {
|
|
|
+ return e.getId().equals(id);
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ return treeMenus;
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<SysNewsType> getChildren(SysNewsType rootMenu, List<SysNewsType> allMenus) {
|
|
|
+ List<SysNewsType> childrenList = allMenus.stream().filter(categoryEntity -> {
|
|
|
+ return categoryEntity.getParentId().equals(rootMenu.getId());
|
|
|
+ }).map(menu -> {
|
|
|
+ menu.setChildren(getChildren(menu, allMenus));
|
|
|
+ return menu;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ return childrenList;
|
|
|
+ }
|
|
|
}
|