多级菜单实现等级自动划分

       经常会遇到多级菜单、多级分类问题,但是某个数据处于第几级,应该是程序自己判断得出,新增一条数据时,父级以上的需要升级,删除一条数据时,父级以上的需要降级。下面总结了自己用到的一个公用方法去处理等级问题:


     /**
	 * 递归更新父级以及以上分类的等级(升级+1、降级-1)
	 * @param tbInformation 当前实体对象
	 * @param num 父级分类的等级,将要变化的数字
	 * @throws FrameworkException
	 */
	private void checkParentInfoRank(TBInformation tbInformation, int num) throws FrameworkException {
		if (tbInformation.getParentInfoId()!=null && !"".equals(tbInformation.getParentInfoId())) {
			//是否有和当前对象平等级的数据,有平级数据则父级数据等级不变
			TBInformation info = new TBInformation();
			info.setParentInfoId(tbInformation.getParentInfoId());
			List
   
   
    
     list = tbInformationDao.queryInformationList(tbInformation);
			TBInformation information = tbInformationDao.queryInformationById(tbInformation.getParentInfoId());
			if (list!=null && list.size()==0) {//没有平级数据
				if (information!=null) {
					information.setRank( information.getRank()+num );
					tbInformationDao.updateInformation(information);
					checkParentInfoRank(information, num);
				}
			}
		}
	}
   
   


    其中,实体类中的等级是int类型,父级编号还是同一张数据表中的Id字段,升级、降级的数字可以作为参数输入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值