java根据给定的末级分类反向递归查询分类名称

业务要求:

1.前台给定末级分类id,要求根据当前末级分类id递归方向查询分类名称如:


2.java后台代码:

controller层:

// 根据商品ID查询单个的商品对象
GoodsMoifiedVo goodsMoifiedVo = this.goodsService.queryModeifiedVoByGoodsId(goodsId);
//根据指定末级分类id反向递归查询
Long catId=goodsMoifiedVo.getGoodsCate().getCatId();
String catName=goodsMoifiedVo.getGoodsCate().getCatName();
Map<String,Object> paramMap=new HashMap<String,Object>();
paramMap.put("catId", catId);
paramMap.put("catName", catName);
String allCatName=(goodsCateService.getAllCatName(paramMap)).get("catName").toString();
LOGGER.info("allCatName:"+allCatName);

serverIml业务层:

 /**
     * 根据指定末级分类id反向递归查询
     * @param paramMap 末级分类参数
     * @return 返回分类名称,分类id
     */
    public Map<String,Object> getAllCatName(Map<String,Object> paramMap){
    	Long catId=(Long)paramMap.get("catId");
    	String catName=(String)paramMap.get("catName");
    	try {
    		//根据分类id查询分类信息
    		GoodsCate goodsCate=goodsCateMapper.findGoodsCateById(catId);
    		//父级分类id
    		Long catParentId=goodsCate.getCatParentId();
    		if(goodsCate!=null && catParentId.longValue()!=0){//注意Long值比较
    			//父级分类名称
    			String catParentName=(goodsCateMapper.findGoodsCateById(catParentId)).getCatName();
    			//拼接所有分类名称
    			catName=catParentName+">"+catName;
    			Map<String,Object> map=new HashMap<String,Object>();
    			map.put("catName", catName);
    			map.put("catId", catParentId);
    		    return getAllCatName(map);
    		}
		} catch (Exception e) {
			e.printStackTrace();
			LOGGER.error("根据指定末级分类id反向递归查询失败"+e.getMessage(),e);
		}
		return paramMap;
    }

得到所有父类名称:

allCatName:家用电器>电视>互联网品牌



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值