菜单修改
This commit is contained in:
+62
-2
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user