MenuServiceImpl.java 2.59 KB
package com.govmade.modules.system.service.impl;

import java.util.List;
import java.util.Map;
import java.util.Set;

import org.springframework.stereotype.Service;

import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.google.common.collect.Lists;
import com.govmade.common.utils.PageTreeUtils;
import com.govmade.common.utils.PageUtils;
import com.govmade.modules.system.dao.MenuDao;
import com.govmade.modules.system.entity.MenuEntity;
import com.govmade.modules.system.service.MenuService;

import cn.hutool.core.util.StrUtil;

/**
 * 系统管理 - 菜单设置
 * 
 * @author Fred
 * @email fangtaosh@qq.com
 * @date 2018年8月7日
 */
@Service("MenuService")
public class MenuServiceImpl extends ServiceImpl<MenuDao, MenuEntity> implements MenuService {

	
	@Override
	public PageTreeUtils queryPage(Map<String, Object> params) {
		String name = (String) params.get("name");
		int currPage = Integer.parseInt((String) params.get("currPage"));
		int pageSize = Integer.parseInt((String) params.get("pageSize"));
		int start = (currPage-1)*pageSize;
		params.put("name2", name);
		params.put("pageSize2", pageSize);
		params.put("start", start);
		List<MenuEntity> allList=this.baseMapper.listTree(params);
		List<MenuEntity> list=buildAreaTree(allList,0L);
		int totalCount = super.selectCount(new EntityWrapper<MenuEntity>().like(StrUtil.isNotBlank(name), "name", name)
				.eq("pid", 0).eq("state", 1));
		return new PageTreeUtils(list,totalCount,pageSize,currPage);

    }
	
	/**
	 *递归方法
	 */
		 private List<MenuEntity> buildAreaTree(List<MenuEntity> menuList, Long id) {
		        List<MenuEntity> mList = Lists.newArrayList();

		        for (MenuEntity menu : menuList) {
		            if (id == menu.getPid()) {
		                menu.setChildren(buildAreaTree(menuList, menu.getId()));
		                mList.add(menu);
		            }
		        }
		        return mList;
		    }
	
	/**
	 * 获取所有菜单列表
	 */
	private List<MenuEntity> queryAll(List<Long> menuIdList){
		//查询根菜单列表
		//List<MenuEntity> menuList = queryListParentId(0L, menuIdList);
		//递归获取子菜单
	//	getMenuTreeList(menuList, menuIdList);
		
		return null;
	}
	
	@Override
	public void save(MenuEntity menu) {
		super.insertOrUpdate(menu);
	}

	@Override
	public Integer checkMenu(String name) {
		return super.selectCount(new EntityWrapper<MenuEntity>().eq("name", name));
	}

	@Override
	public MenuEntity queryById(Long id) {
		return super.selectById(id);
	}
	
	@Override
	public void deleteBatch(Set<Long> ids) {
		this.baseMapper.deleteBatch(ids);
	}

}