您的位置:首页 > 编程语言 > Java开发

java 实际场景下根节点 叶子节点 的不处理方法

2016-05-02 11:09 471 查看
要求某个登录用户下 只显示美食(其他都显示) ,pc的显示只到美食这一层,但是app端美食类目下面还有类别





@RequestMapping(value = "/filter",method = RequestMethod.GET)
@ResponseBody
public ServiceResult getShopClassificationModel(@RequestParam(value = "cityId", defaultValue = "0") int cityId,
@RequestParam(value = "mainCategoryId", defaultValue = "0") int mainCategoryId,
@RequestParam(value = "categoryId", defaultValue = "0") int categoryId,
@RequestParam(value = "mainRegionId", defaultValue = "0") int mainRegionId,
@RequestParam(value = "regionId", defaultValue = "0") int regionId,
@RequestParam(value = "recommendType", defaultValue = "0") int recommendType,
@RequestParam(value = "qualityType", defaultValue = "0") int qualityType,
@RequestParam(value = "zlfType", defaultValue = "0") int zlfType) {
ShopFilter shopFilter = ShopFilter.builder().cityId(cityId).mainCategoryId(mainCategoryId).categoryId(categoryId).
mainRegionId(mainRegionId).regionId(regionId).recommendType(recommendType).qualityType(qualityType).zlfType(zlfType).build();

ShopClassificationModel shopClassificationModel =shopClassificationService.getShopClassification(shopFilter);
if (ContextHolder.getUserContext() != null) {
int userBiz = ContextHolder.getUserContext().getUserRotateBizId();
shopClassificationModel.setBizId(ContextHolder.getUserContext().getUserRotateBizId());
if(userBiz == 104){
List<BaseModel> daoCan = new ArrayList<BaseModel>();
daoCan.add(shopClassificationModel.getMainCategories().get(0));
BaseModel foodCategories = new BaseModel();
foodCategories.setId(10);
foodCategories.setName("美食");
foodCategories.setSelected(false);
daoCan.add(foodCategories);
shopClassificationModel.setMainCategories(daoCan);
}
} //后加的 这种处理方式在返回的时候,直接给个list的第一个元素初始化 这么处理,因为美食相当于叶子节点
return setResponseData(shopClassificationModel);
}

//app
@RequestMapping(value = "/categories", method = RequestMethod.GET)
@ResponseBody
public ServiceResult getCategories(@RequestParam(value = "cityId", defaultValue = "0") int cityId,
@RequestParam(value = "parentId", defaultValue = "-1") int parentId) {
List<BaseModel> mainCategories = shopClassificationService.getCategoriesById(cityId, parentId);

if (ContextHolder.getUserContext() != null) {
int userBiz = ContextHolder.getUserContext().getUserRotateBizId();
if (userBiz == 104 && mainCategories.get(0).getId() == 10) {
List<BaseModel> foodCategories = new ArrayList<BaseModel>();
foodCategories.add(mainCategories.get(0));
return setResponseData(foodCategories);
}
} //和pc采用一样的方法不适用,因为美食这个类目下面还有川菜 之类的 后来发现所有的这些类目的id不同 通过这个来做区分。

return setResponseData(mainCategories); //循环调用,app 单击每个美食类目平级类目时候
//会递归调用该接口,因此美食在这边非叶子节点
}

再做补充,在控制器端做业务逻辑判断不是很好选择,在此只是方便大家查看。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: