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 单击每个美食类目平级类目时候
//会递归调用该接口,因此美食在这边非叶子节点
}
再做补充,在控制器端做业务逻辑判断不是很好选择,在此只是方便大家查看。
@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 单击每个美食类目平级类目时候
//会递归调用该接口,因此美食在这边非叶子节点
}
再做补充,在控制器端做业务逻辑判断不是很好选择,在此只是方便大家查看。
相关文章推荐
- Java中的基础----JVM加载class文件的原理
- Java中String
- Java中String
- JAVA技术发展——你不知道的J2SE(三)
- Spring NamedParameterJdbcTemplate 详解
- java中将对象写入文件
- java多态性理解
- JAVAACRIPT基础教程(第8版)---第8章_处理事件
- Java数据类型
- 第N次重学Struts2之路(一)
- 【附源码】搭建MVC:Spring+FreeMarker+MyBatis
- 码农小汪-Spring-MVC 控制器4
- 初识java异常处理
- spring cloud/mesos:在mesos上运行高可用的eureka服务发现
- [Java视频笔记]day13
- Java判断回文字符
- Java 基础———第二弹
- java基础笔记05
- SpringData 学习(2)—— 使用注解替代继承标记接口、初步认识 Repository 接口
- Java基础-环境变量配置