• 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     }
  • 相关阅读:
    Ubuntu-18.04设置花生壳内网穿透
    Ubuntu开启SSH
    Ubuntu查看版本信息
    Linux之使用mount挂载ISO镜像
    druid参数配置说明
    [转]Java多线程学习(吐血超详细总结)
    eclipse 更改官方配色
    Spring AOP拦截对Controller的请求时的配置失败
    Spring Security3详细配置
    “java.lang.IllegalArgumentException: Failed to evaluate expression ‘ROLE_USER’”报错的解决
  • 原文地址:https://www.cnblogs.com/windbag7/p/9386668.html
Copyright © 2020-2023  润新知