优化menu
This commit is contained in:
parent
5f53b20a35
commit
d9b991ae9e
|
@ -10,200 +10,198 @@ import com.len.mapper.SysRoleMenuMapper;
|
|||
import com.len.service.MenuService;
|
||||
import com.len.service.SysUserService;
|
||||
import com.len.util.TreeUtil;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zhuxiaomeng
|
||||
* @date 2017/12/12.
|
||||
* @email 154040976@qq.com
|
||||
*/
|
||||
@Service
|
||||
public class MenuServiceImpl extends BaseServiceImpl<SysMenu,String> implements MenuService {
|
||||
public class MenuServiceImpl extends BaseServiceImpl<SysMenu, String> implements MenuService {
|
||||
|
||||
@Autowired
|
||||
private SysMenuMapper menuDao;
|
||||
@Autowired
|
||||
private SysMenuMapper menuDao;
|
||||
|
||||
@Autowired
|
||||
private SysUserService userService;
|
||||
@Autowired
|
||||
private SysUserService userService;
|
||||
|
||||
@Autowired
|
||||
private SysRoleMenuMapper roleMenuMapper;
|
||||
@Autowired
|
||||
private SysRoleMenuMapper roleMenuMapper;
|
||||
|
||||
@Override
|
||||
public BaseMapper<SysMenu, String> getMappser() {
|
||||
return menuDao;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysMenu> getMenuNotSuper() {
|
||||
return menuDao.getMenuNotSuper();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insert(SysMenu menu) {
|
||||
return menuDao.insert(menu);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SysMenu selectByPrimaryKey(String id) {
|
||||
return menuDao.selectByPrimaryKey(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysMenu> getMenuChildren(String id) {
|
||||
return menuDao.getMenuChildren(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray getMenuJson(String roleId){
|
||||
List<SysMenu> mList=menuDao.getMenuNotSuper();
|
||||
JSONArray jsonArr=new JSONArray();
|
||||
int pNum=1000,num=0;
|
||||
for(SysMenu sysMenu:mList){
|
||||
SysMenu menu=getChild(sysMenu.getId(),true,pNum,num);
|
||||
jsonArr.add(menu);
|
||||
pNum+=1000;
|
||||
@Override
|
||||
public BaseMapper<SysMenu, String> getMappser() {
|
||||
return menuDao;
|
||||
}
|
||||
System.out.println(jsonArr);
|
||||
return jsonArr;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray getMenuJsonList() {
|
||||
List<SysMenu> mList=menuDao.getMenuNotSuper();
|
||||
JSONArray jsonArr=new JSONArray();
|
||||
for(SysMenu sysMenu:mList){
|
||||
SysMenu menu=getChild(sysMenu.getId(),false,0,0);
|
||||
jsonArr.add(menu);
|
||||
@Override
|
||||
public List<SysMenu> getMenuNotSuper() {
|
||||
return menuDao.getMenuNotSuper();
|
||||
}
|
||||
System.out.println(jsonArr);
|
||||
return jsonArr;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray getMenuJsonByUser(List<SysMenu> menuList){
|
||||
//List<SysMenu> menuListOne=new ArrayList<>();//获取第一级别
|
||||
JSONArray jsonArr=new JSONArray();
|
||||
Collections.sort(menuList, new Comparator<SysMenu>() {
|
||||
@Override
|
||||
public int compare(SysMenu o1, SysMenu o2) {
|
||||
if(o1.getOrderNum()==null||o2.getOrderNum()==null){
|
||||
return -1;
|
||||
@Override
|
||||
public int insert(SysMenu menu) {
|
||||
return menuDao.insert(menu);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SysMenu selectByPrimaryKey(String id) {
|
||||
return menuDao.selectByPrimaryKey(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysMenu> getMenuChildren(String id) {
|
||||
return menuDao.getMenuChildren(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray getMenuJson(String roleId) {
|
||||
List<SysMenu> mList = menuDao.getMenuNotSuper();
|
||||
JSONArray jsonArr = new JSONArray();
|
||||
int pNum = 1000, num = 0;
|
||||
for (SysMenu sysMenu : mList) {
|
||||
SysMenu menu = getChild(sysMenu.getId(), true, pNum, num);
|
||||
jsonArr.add(menu);
|
||||
pNum += 1000;
|
||||
}
|
||||
if(o1.getOrderNum()>o2.getOrderNum()){
|
||||
return 1;
|
||||
return jsonArr;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray getMenuJsonList() {
|
||||
List<SysMenu> mList = menuDao.getMenuNotSuper();
|
||||
JSONArray jsonArr = new JSONArray();
|
||||
for (SysMenu sysMenu : mList) {
|
||||
SysMenu menu = getChild(sysMenu.getId(), false, 0, 0);
|
||||
jsonArr.add(menu);
|
||||
}
|
||||
if(o1.getOrderNum().equals(o2.getOrderNum())){
|
||||
return 0;
|
||||
return jsonArr;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray getMenuJsonByUser(List<SysMenu> menuList) {
|
||||
//List<SysMenu> menuListOne=new ArrayList<>();//获取第一级别
|
||||
JSONArray jsonArr = new JSONArray();
|
||||
Collections.sort(menuList, new Comparator<SysMenu>() {
|
||||
@Override
|
||||
public int compare(SysMenu o1, SysMenu o2) {
|
||||
if (o1.getOrderNum() == null || o2.getOrderNum() == null) {
|
||||
return -1;
|
||||
}
|
||||
if (o1.getOrderNum() > o2.getOrderNum()) {
|
||||
return 1;
|
||||
}
|
||||
if (o1.getOrderNum().equals(o2.getOrderNum())) {
|
||||
return 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
});
|
||||
int pNum = 1000;
|
||||
for (SysMenu menu : menuList) {
|
||||
if (StringUtils.isEmpty(menu.getPId())) {
|
||||
SysMenu sysMenu = getChilds(menu, pNum, 0, menuList);
|
||||
jsonArr.add(sysMenu);
|
||||
pNum += 1000;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
});
|
||||
int pNum=1000;
|
||||
for(SysMenu menu:menuList){
|
||||
if(StringUtils.isEmpty(menu.getPId())){
|
||||
SysMenu sysMenu=getChilds(menu,pNum,0,menuList);
|
||||
jsonArr.add(sysMenu);
|
||||
pNum+=1000;
|
||||
}
|
||||
return jsonArr;
|
||||
}
|
||||
return jsonArr;
|
||||
}
|
||||
|
||||
public SysMenu getChilds(SysMenu menu,int pNum,int num,List<SysMenu> menuList){
|
||||
for(SysMenu menus:menuList){
|
||||
if(menu.getId().equals(menus.getPId())&&menus.getMenuType()==0){
|
||||
++num;
|
||||
SysMenu m=getChilds(menus,pNum,num,menuList);
|
||||
m.setNum(pNum+num);
|
||||
menu.addChild(m);
|
||||
}
|
||||
}
|
||||
return menu;
|
||||
public SysMenu getChilds(SysMenu menu, int pNum, int num, List<SysMenu> menuList) {
|
||||
for (SysMenu menus : menuList) {
|
||||
if (menu.getId().equals(menus.getPId()) && menus.getMenuType() == 0) {
|
||||
++num;
|
||||
SysMenu m = getChilds(menus, pNum, num, menuList);
|
||||
m.setNum(pNum + num);
|
||||
menu.addChild(m);
|
||||
}
|
||||
}
|
||||
return menu;
|
||||
|
||||
}
|
||||
@Override
|
||||
public List<SysMenu> getMenuChildrenAll(String id) {
|
||||
return menuDao.getMenuChildrenAll(id);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param id 父菜单id
|
||||
* @param flag true 获取非按钮菜单 false 获取包括按钮在内菜单 用于nemuList展示
|
||||
* @param pNum 用户控制侧拉不重复id tab 父循环+1000
|
||||
* @param num 用户控制侧拉不重复id tab 最终效果 1001 10002 2001 2002
|
||||
* @return
|
||||
*/
|
||||
public SysMenu getChild(String id,boolean flag,int pNum,int num){
|
||||
SysMenu sysMenu=menuDao.selectByPrimaryKey(id);
|
||||
List<SysMenu> mList=null;
|
||||
if(flag){
|
||||
mList= menuDao.getMenuChildren(id);
|
||||
}else{
|
||||
mList=menuDao.getMenuChildrenAll(id);
|
||||
@Override
|
||||
public List<SysMenu> getMenuChildrenAll(String id) {
|
||||
return menuDao.getMenuChildrenAll(id);
|
||||
}
|
||||
for(SysMenu menu:mList){
|
||||
++num;
|
||||
SysMenu m=getChild(menu.getId(),flag,pNum,num);
|
||||
if(flag)
|
||||
m.setNum(pNum+num);
|
||||
sysMenu.addChild(m);
|
||||
}
|
||||
return sysMenu;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONArray getTreeUtil(String roleId){
|
||||
TreeUtil treeUtil=null;
|
||||
List<SysMenu> mList=menuDao.getMenuNotSuper();
|
||||
JSONArray jsonArr=new JSONArray();
|
||||
for(SysMenu sysMenu:mList){
|
||||
treeUtil=getChildByTree(sysMenu.getId(),false,0,null,roleId);
|
||||
jsonArr.add(treeUtil);
|
||||
/**
|
||||
* @param id 父菜单id
|
||||
* @param flag true 获取非按钮菜单 false 获取包括按钮在内菜单 用于nemuList展示
|
||||
* @param pNum 用户控制侧拉不重复id tab 父循环+1000
|
||||
* @param num 用户控制侧拉不重复id tab 最终效果 1001 10002 2001 2002
|
||||
* @return
|
||||
*/
|
||||
public SysMenu getChild(String id, boolean flag, int pNum, int num) {
|
||||
SysMenu sysMenu = menuDao.selectByPrimaryKey(id);
|
||||
List<SysMenu> mList = null;
|
||||
if (flag) {
|
||||
mList = menuDao.getMenuChildren(id);
|
||||
} else {
|
||||
mList = menuDao.getMenuChildrenAll(id);
|
||||
}
|
||||
for (SysMenu menu : mList) {
|
||||
++num;
|
||||
SysMenu m = getChild(menu.getId(), flag, pNum, num);
|
||||
if (flag)
|
||||
m.setNum(pNum + num);
|
||||
sysMenu.addChild(m);
|
||||
}
|
||||
return sysMenu;
|
||||
}
|
||||
System.out.println(jsonArr);
|
||||
return jsonArr;
|
||||
|
||||
}
|
||||
@Override
|
||||
public JSONArray getTreeUtil(String roleId) {
|
||||
TreeUtil treeUtil = null;
|
||||
List<SysMenu> mList = menuDao.getMenuNotSuper();
|
||||
JSONArray jsonArr = new JSONArray();
|
||||
for (SysMenu sysMenu : mList) {
|
||||
treeUtil = getChildByTree(sysMenu.getId(), false, 0, null, roleId);
|
||||
jsonArr.add(treeUtil);
|
||||
}
|
||||
return jsonArr;
|
||||
|
||||
@Override
|
||||
public List<SysMenu> getUserMenu(String id) {
|
||||
return menuDao.getUserMenu(id);
|
||||
}
|
||||
}
|
||||
|
||||
public TreeUtil getChildByTree(String id,boolean flag,int layer,String pId,String roleId){
|
||||
layer++;
|
||||
SysMenu sysMenu=menuDao.selectByPrimaryKey(id);
|
||||
List<SysMenu> mList=null;
|
||||
if(flag){
|
||||
mList= menuDao.getMenuChildren(id);
|
||||
}else{
|
||||
mList=menuDao.getMenuChildrenAll(id);
|
||||
@Override
|
||||
public List<SysMenu> getUserMenu(String id) {
|
||||
return menuDao.getUserMenu(id);
|
||||
}
|
||||
TreeUtil treeUtil = new TreeUtil();
|
||||
treeUtil.setId(sysMenu.getId());
|
||||
treeUtil.setName(sysMenu.getName());
|
||||
treeUtil.setLayer(layer);
|
||||
treeUtil.setPId(pId);
|
||||
/**判断是否存在*/
|
||||
if(!StringUtils.isEmpty(roleId)){
|
||||
SysRoleMenu sysRoleMenu = new SysRoleMenu();
|
||||
sysRoleMenu.setMenuId(sysMenu.getId());
|
||||
sysRoleMenu.setRoleId(roleId);
|
||||
int count = roleMenuMapper.selectCountByCondition(sysRoleMenu);
|
||||
if (count > 0)
|
||||
treeUtil.setChecked(true);
|
||||
|
||||
public TreeUtil getChildByTree(String id, boolean flag, int layer, String pId, String roleId) {
|
||||
layer++;
|
||||
SysMenu sysMenu = menuDao.selectByPrimaryKey(id);
|
||||
List<SysMenu> mList = null;
|
||||
if (flag) {
|
||||
mList = menuDao.getMenuChildren(id);
|
||||
} else {
|
||||
mList = menuDao.getMenuChildrenAll(id);
|
||||
}
|
||||
TreeUtil treeUtil = new TreeUtil();
|
||||
treeUtil.setId(sysMenu.getId());
|
||||
treeUtil.setName(sysMenu.getName());
|
||||
treeUtil.setLayer(layer);
|
||||
treeUtil.setPId(pId);
|
||||
/**判断是否存在*/
|
||||
if (!StringUtils.isEmpty(roleId)) {
|
||||
SysRoleMenu sysRoleMenu = new SysRoleMenu();
|
||||
sysRoleMenu.setMenuId(sysMenu.getId());
|
||||
sysRoleMenu.setRoleId(roleId);
|
||||
int count = roleMenuMapper.selectCountByCondition(sysRoleMenu);
|
||||
if (count > 0)
|
||||
treeUtil.setChecked(true);
|
||||
}
|
||||
for (SysMenu menu : mList) {
|
||||
TreeUtil m = getChildByTree(menu.getId(), flag, layer, menu.getId(), roleId);
|
||||
treeUtil.getChildren().add(m);
|
||||
}
|
||||
return treeUtil;
|
||||
}
|
||||
for(SysMenu menu:mList){
|
||||
TreeUtil m=getChildByTree(menu.getId(),flag,layer,menu.getId(),roleId);
|
||||
treeUtil.getChildren().add(m);
|
||||
}
|
||||
return treeUtil;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue