|  | @@ -1,7 +1,11 @@
 | 
											
												
													
														|  |  package com.ym.mec.cms.service.impl;
 |  |  package com.ym.mec.cms.service.impl;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  import java.util.List;
 |  |  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.beans.factory.annotation.Autowired;
 | 
											
												
													
														|  |  import org.springframework.stereotype.Service;
 |  |  import org.springframework.stereotype.Service;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -13,37 +17,69 @@ import com.ym.mec.common.dal.BaseDAO;
 | 
											
												
													
														|  |  import com.ym.mec.common.service.impl.BaseServiceImpl;
 |  |  import com.ym.mec.common.service.impl.BaseServiceImpl;
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  @Service
 |  |  @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;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  |  }
 |  |  }
 |