shop--8.店铺列表展示--Service层

在service层中, 有一个问题,就是:

dao层中的分页查询传参,传入的是rowIndex(从第几行开始查询), pageSize(查询多少条记录)

而在service层中分页查询传的是pageIndex(第几页),pageSize

所以在第一个参数要有一个转换才可以

所以编写一个工具类,将pageIndex转为rowIndex

PageCalculator

 1    /**
 2      * 将pageIndex(第几页)转换为查询结果中的第几行rowIndex
 3      * 如果pageIndex是1 pageSize是5 那么就是从第0行开始取5条数据
 4      * 如果pageIndex是2 pageSize是5 那么就是从第5行开始取5条数据 
 5      * @param pageIndex
 6      * @param pageSize
 7      * @return
 8      */
 9     public static int calculateRowIndex(int pageIndex,int pageSize) {
10         return (pageIndex > 0)?(pageIndex - 1) * pageSize : 0;
11     }    

 

service接口

 1 /**
 2      * 实现分页查询店铺,通过条件组合,来筛选出条件范围内的店铺列表
 3      * 根据shopCondition分页返回相应店铺列表
 4      * 因为需要List 和 count 所以使用ShopExecution类型
 5      * @param shopCondition
 6      * @param pageIndex 第几页
 7      * @param pageSize 一页中数据的数量
 8      * @return ShopExecution 
 9      */
10     public ShopExecution getShopList(Shop shopCondition,int pageIndex,int pageSize);

 

serviceImpl

 1     @Override
 2     public ShopExecution getShopList(Shop shopCondition, int pageIndex, int pageSize) {
 3         int rowIndex = PageCalculator.calculateRowIndex(pageIndex, pageSize);
 4         List<Shop> shopList = shopDao.queryShopList(shopCondition, rowIndex, pageSize);
 5         int count = shopDao.queryShopCount(shopCondition);
 6         ShopExecution se = new ShopExecution();
 7         if(shopList != null) {
 8             se.setShopList(shopList);
 9             se.setCount(count);
10         }else {
11             se.setState(ShopStateEnum.INNER_ERROR.getState());
12         }
13         return se;
14     }

 

posted @ 2018-07-29 19:29  windbag7  阅读(322)  评论(0编辑  收藏  举报