package cn.wisenergy.chnmuseum.party.service.impl;

import cn.wisenergy.chnmuseum.party.model.Role;
import cn.wisenergy.chnmuseum.party.service.IMenuService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cn.wisenergy.chnmuseum.party.mapper.MenuMapper;
import cn.wisenergy.chnmuseum.party.model.Menu;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;

/**
 * <p>
 * 菜单权限表 服务实现类
 * </p>
 *
 * @author 杨智平
 * @since 2018-08-03
 */
@Service
public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IMenuService {

    @Resource
    private MenuMapper menuMapper;

    public List<Menu> getUserMenuPerms(List<Role> list) {
        List<String> list1 = new ArrayList<>();
        list.stream().forEach(r-> list1.add(r.getId()));
        List<Menu> menuList = menuMapper.getUserMenuPerms(list1);
        HashMap<String, Menu> map = new HashMap<>();
        menuList.forEach(m->map.put(m.getId(),m));
        for (Menu menu : menuList) {
            Menu parent = map.get(menu.getParentId());
            if (parent!=null){
                if (parent.getChildren()==null){
                    parent.setChildren(new ArrayList<>());
                }
                parent.getChildren().add(menu);
            }
        }
        menuList = menuList.stream().filter(m -> m.getLevel()==1).collect(Collectors.toList());
        return menuList;
    }

}