菜单修改

This commit is contained in:
xu_lw
2019-09-01 22:55:09 +08:00
parent 98d8d977f5
commit df56451adf
4 changed files with 114 additions and 2 deletions
@@ -1,5 +1,6 @@
package com.murong.ecp.netpay.mbu.web.pub.action.buipubbpc1;
import com.alibaba.fastjson.JSON;
import com.murong.ecp.netpay.mbu.web.common.utils.*;
import com.murong.ecp.netpay.mbu.web.pub.common.PUBUtils;
import com.murong.ecp.netpay.mbu.web.pub.dal.dao.BuiMenuMapper;
@@ -7,6 +8,7 @@ import com.murong.ecp.netpay.mbu.web.pub.dal.entity.BuiMenuDO;
import com.murong.ecp.netpay.mbu.web.pub.model.BuiMenuDTO;
import com.murong.ecp.netpay.mbu.web.pub.model.BuiMenuNavRspBO;
import com.murong.ecp.netpay.mbu.web.pub.model.BuiOperDTO;
import com.yuangou.ecp.biz.transengine.sqlsession.YGPageEntity;
import com.yuangou.ecp.bp.core.common.exception.YGException;
import com.yuangou.ecp.bp.core.common.message.YGBizMessage;
import com.yuangou.ecp.bp.core.common.message.YGBizMessageContext;
@@ -14,10 +16,12 @@ import com.yuangou.ecp.bp.core.common.message.YGEDB;
import com.yuangou.ecp.bp.core.common.yglog4j.Logger;
import com.yuangou.ecp.bp.core.common.yglog4j.YGLogger;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.*;
/**
* 菜单管理管理服务
@@ -45,9 +49,42 @@ public class BuiMenuNavAction extends BaseAction {
buiOperDTO.setOperId(buiOperDTO.getOperId());
YGPageEntity pageEntity = new YGPageEntity();
pageEntity.setPag_no(1);
pageEntity.setLimit(9999);
BuiMenuDO menuDO = new BuiMenuDO();
List<BuiMenuDO> list = buiMenuMapper.selectPage(pageEntity, menuDO);
List<BuiMenuDTO> list2 = PUBUtils.menuProc1(list);
List<BuiMenuDO> list1 = buiMenuMapper.selectByOperId(buiOperDTO.getOperId());
BuiMenuNavRspBO rspBO = PUBUtils.menuProc(list1);
Set<Long> authMenuIdSet = new HashSet<Long>();
for( BuiMenuDO menuDO1: list1 ) {
authMenuIdSet.add(menuDO1.getMenuId());
}
Set<String> permissions = new HashSet<String>();
for( BuiMenuDO menuDO1: list1 ) {
String perms = menuDO1.getPerms();
if (StringUtils.isNotBlank(perms)) {
String[] values = StringUtils.split(perms, ",");
for (String value : values) {
if (!permissions.contains(value)) {
permissions.add(value);
}
}
}
}
walkMenuTree(list2, authMenuIdSet);
msgLog.info("list2:" + JSON.toJSONString(list2));
BuiMenuNavRspBO rspBO = new BuiMenuNavRspBO();
rspBO.setMenulist(list2);
rspBO.setPermissions(StringUtils.join(permissions, "|"));
ResultT resultT = new ResultT();
resultT.setMsgCod(CommonMessageCode.SUCC);
@@ -56,5 +93,28 @@ public class BuiMenuNavAction extends BaseAction {
return resultT;
}
private boolean walkMenuTree(List<BuiMenuDTO> list, Set<Long> authMenuIdSet) {
boolean flag = false;
for( Iterator iter = list.iterator(); iter.hasNext(); ) {
BuiMenuDTO menuDTO = (BuiMenuDTO)iter.next();
if( authMenuIdSet.contains(menuDTO.getMenuId())) {
menuDTO.setFlag("Y");
flag = true;
}
if( !menuDTO.getList().isEmpty() ) {
boolean flag1 = walkMenuTree(menuDTO.getList(), authMenuIdSet);
if( flag1 ) {
menuDTO.setFlag("Y");
flag = true;
}
}
if( "N".equals(menuDTO.getFlag())) {
iter.remove();
}
}
return flag;
}
}
@@ -26,6 +26,45 @@ import java.util.List;
* copyright @2018 北京沐融信息科技股份有限公司
*/
public class PUBUtils {
public static List<BuiMenuDTO> menuProc1(List<BuiMenuDO> menus)
throws YGException {
List<BuiMenuDTO> list = new ArrayList<BuiMenuDTO>();
for (BuiMenuDO menuDO : menus) {
Long menuId = menuDO.getMenuId();
Long parentId = menuDO.getParentId();
if (2 == menuDO.getType()) {
continue;
}
BuiMenuDTO menuDTO = new BuiMenuDTO();
BeanUtils.copyProperties(menuDO, menuDTO);
if( "0".equals(menuDTO.getMenuId())) {
list.add(menuDTO);
continue;
}
BuiMenuDTO parentMenuDTO = getParentMenuDTO(list, parentId);
if (parentMenuDTO == null) {
BuiMenuDO parentMenuDO = geParentMenuDO(menus, parentId);
if (parentMenuDO == null) {
// root
list.add(menuDTO);
continue;
} else {
parentMenuDTO = new BuiMenuDTO();
BeanUtils.copyProperties(parentMenuDO, parentMenuDTO);
list.add(parentMenuDTO);
}
}
List<BuiMenuDTO> list1 = parentMenuDTO.getList();
list1.add(menuDTO);
}
return list;
}
/**
* 菜单处理
*
@@ -45,6 +45,10 @@ public class BuiMenuDTO extends BaseDO {
* 授权(多个用逗号分隔,如:user:list,user:create)
*/
private String perms = "";
/**
* 是否有权限
*/
private String flag = "N";
/**
* 类型 0:目录 1:菜单 2:按钮
*/
@@ -140,4 +144,12 @@ public class BuiMenuDTO extends BaseDO {
public void setList(List<BuiMenuDTO> list) {
this.list = list;
}
public String getFlag() {
return flag;
}
public void setFlag(String flag) {
this.flag = flag;
}
}
@@ -141,4 +141,5 @@
<delete id="deleteByIdCascade" parameterType="java.lang.Long">
delete from t_bui_menu where menu_id in (select menu_id from t_bui_menu start with menu_id=${menuId} connect by prior menu_id = parent_id)
</delete>
</mapper>