业务要求:
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:家用电器>电视>互联网品牌