java不确定多条件筛选接口
有同学来信说看了数据持久层的实现之后还是不能正确的使用不确定多条件筛选来做项目,无法写出接口来,今天正好有点空闲我就把接口的代码也展现出来风向给大家
接口层其实有接注意的点:
1,对参数的处理(APP接口为例)
2,对经纬度和分页的处理
3,对筛选出无店铺数据的处理
总之掌握了以上的三点类容,就能够轻松的驾驭从数据持久层到接口层的应用
/** * 筛选店铺列表 * @return */ @RequestMapping(value="getShopByCondition",method={RequestMethod.POST,RequestMethod.GET}) @ResponseBody public Map<String, Object> getShopByCondition(Shop shop,Presence presence,HttpServletResponse response,HttpServletRequest request) { //参数示例 /*String province="四川省";//省直辖市 String city="成都市"; //城市 String county="武侯区"; //县区 String town=""; //街道 String distance="3000"; //距离 String tag=""; //网红 String media="5"; //小于等于5为图文券,大于为视频券 String vip=""; //大于0为捧达人券 */ /** * 参数列表 */ String lat=request.getParameter("lat"); String lng=request.getParameter("lng"); String province=request.getParameter("province"); //省直辖市 String city=request.getParameter("city"); //城市 String county=request.getParameter("county"); //县区 String town=request.getParameter("town"); //街道 String distance=request.getParameter("distance"); //距离 String tag=request.getParameter("tag"); //网红 String media=request.getParameter("media"); //小于等于5为图文券,大于为视频券 String vip=request.getParameter("vip"); //大于0为捧达人券 String avger=request.getParameter("avger"); String old=request.getParameter("old"); String min=request.getParameter("min"); String max=request.getParameter("max"); String status=request.getParameter("status"); String startIndex=request.getParameter("startIndex"); String pageSize=request.getParameter("pageSize"); /** * 筛选条件(经纬度和分页判断) */ if (startIndex!=null&&pageSize!=null&&lat!=null&&lat!=""&&lng!=null&&lng!="") { shop.setStatus(status); shop.setProvince(province); shop.setTown(town); shop.setCity(city); shop.setCounty(county); shop.setDistance(distance); shop.setTag(tag); shop.setAvger(avger); shop.setOld(old); presence.setMedia(media); presence.setVip(vip); List data=shopManager.getShopByCondition(lat,lng,min,max,shop, presence,Integer.parseInt(startIndex), Integer.parseInt(pageSize)); List dataRecom=shopManager.getShopAll(Integer.parseInt(startIndex), Integer.parseInt(pageSize)); if (data.size()>0) { if (data.size()<5) { return new Json().getJsonRecom("200", "筛选店铺", dataRecom, data); } return new Json().getJson("200", "筛选店铺", data); }else { return new Json().getJsonRecom("200", "无店铺", dataRecom, data); } } return new Json().getJson("201", "分页信息或定位错误!!!", ""); }