java ext+ssh框架(修正版)

不多说,直接上图


源码下载地址:http://115.com/file/dplcvzpu

源码下载地址:http://115.com/file/dplcvzpu


//获取对应角色菜单列表

public List getRgMenuByRoleId(Integer RoleId) {
		Map<Integer, List> retMap = new HashMap();//返回菜单集
		StringBuffer rmBuffer=new StringBuffer();
		rmBuffer.append("select rm from RgMenu rm where 1=1 ");
		rmBuffer.append("and rm.id in ");
		rmBuffer.append("(select rmr.menuId from RgMenurole rmr,User u where u.role=rmr.roleId ");
		rmBuffer.append("and u.role="+RoleId+") order by rm.sort");
		try {
			List<RgMenu> rmList=super.findByHql(rmBuffer.toString());
			Set pids = new HashSet();//目录结点ID
			for (RgMenu rgMenu : rmList) {
				RgMenu rm=getRgMenuById(rgMenu.getPid());
				if (retMap.containsKey(rgMenu.getPid())) {
					List sysMenus = (List) retMap.get(rgMenu.getPid());
					sysMenus.add(rgMenu);
				} else {
					List sysMenus = new ArrayList();
					sysMenus.add(rgMenu);
					retMap.put(rgMenu.getPid(), sysMenus);
				}
				pids.add(getRgMenuById(rgMenu.getPid()));//获取系统菜单
			}

			
			//遍历菜单集合
			Map validPidMap = new HashMap();
			Iterator itor = pids.iterator();
			while (itor.hasNext()) {
				List<RgMenu> pidList=new ArrayList<RgMenu>();
				RgMenu pid = (RgMenu) itor.next();
				for (RgMenu rgMenu : rmList) {
					if(rgMenu.getPid().equals(pid.getId())){
						pidList.add(rgMenu);
					}
				}
//				//子节点菜单排序
				Collections.sort(pidList,new Comparator<RgMenu>(){
		            public int compare(RgMenu arg0, RgMenu arg1) {
		            		return arg0.getSort().compareTo(arg1.getSort());
		            }
		        });
				validPidMap.put(pid, pidList);
			}
			List<Map.Entry<RgMenu,List<RgMenu>>> mappingList = new ArrayList<Map.Entry<RgMenu,List<RgMenu>>>(validPidMap.entrySet()); ; 
			//对目录结点按sort进行排序
		    Collections.sort(mappingList, new Comparator<Map.Entry<RgMenu,List<RgMenu>>>(){
	            public int compare(Map.Entry<RgMenu,List<RgMenu>> mapping1,Map.Entry<RgMenu,List<RgMenu>> mapping2) {
	                return mapping1.getKey().getSort().compareTo(mapping2.getKey().getSort());
	            }
	        });
			return mappingList;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
public String addRole(Role role,String ids,String vals) {
		boolean flag=false;
		ArrayList al=HashStr.getHashStr(vals);
		List<Role> roleList=new ArrayList<Role>();
		List<RgMethodrole> rmrList=new ArrayList<RgMethodrole>();
		List<RgMenurole> rrList=new ArrayList<RgMenurole>();
		Map<String, Object> causeMaps = new HashMap<String, Object>();
		try {
			if(role!=null){
				SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
				role.setCreatetime(format.format(new Date()));
				Integer getRoleNo=roleDao.addAndGetId(role);
				if(getRoleNo!=null){
					if("".equals(ids)&&"".equals(vals)){
						causeMaps.put("success", true);
						causeMaps.put("message", "操作成功,未分配权限");
					}else{
						String[] idsArray=ids.split(",");
						String[] valsArray=vals.split(",");
						for (int i = 0; i < idsArray.length; i++) {
							RgMethodrole rmr=new RgMethodrole();
							rmr.setMethodId(Integer.valueOf(idsArray[i]));
							rmr.setRoleId(getRoleNo);
							rmr.setMenuId(Integer.valueOf(valsArray[i]));
							rmrList.add(rmr);
						}
						for (int i = 0; i < al.size(); i++) {
							RgMenurole rr=new RgMenurole();
							rr.setMenuId(Integer.valueOf((String) al.get(i)));
							rr.setRoleId(getRoleNo);
							rrList.add(rr);
						}
						flag=roleDao.addRole(rmrList,rrList);
						if(flag){
							causeMaps.put("success", flag);
							causeMaps.put("message", "操作成功!");
						}
					}
				}else{
					causeMaps.put("success", false);
					causeMaps.put("message", "操作失败");
				}
			}else{
				causeMaps.put("success", false);
				causeMaps.put("message", "操作失败");
			}
		} catch (Exception e) {
			causeMaps.put("success", flag);
			causeMaps.put("message", e.getMessage());
		}
		jsonString=JsonUtil.getJsonStringFromXml(causeMaps);
		return jsonString;
	}









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值