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     }

原文地址:https://www.cnblogs.com/windbag7/p/9386668.html

时间: 2024-10-31 07:09:59

shop--8.店铺列表展示--Service层的相关文章

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

实现商铺管理 实现商店列表 实现分页查询店铺,通过条件组合,来筛选出条件范围内的店铺列表 分页查询中使用LIMIT 第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目 1 /** 2 * 分页查询店铺,可输入的条件有:店铺名(模糊),店铺状态,店铺类别,区域id,owner 3 * @param shopCondition 4 * @param rowIndex 从第几行开始取数据 5 * @param pageSize 表示返回多少行数据 6 * @param 标签的作

校园商铺-6店铺编辑列表和列表功能-6店铺列表展示之Service层的实现

1. Service层 为什么返回shopExecution? 原因:需要将这个shopList还有它的count整合在一起返回.而shopExecution正好满足了我们的条件. package com.csj2018.o2o.service; import java.io.InputStream; import com.csj2018.o2o.entity.Shop; import com.csj2018.o2o.exceptions.ShopOperationException; impo

shop--6.店铺注册--店铺注册之Service层的实现

Service的流程 1.插入店铺信息->2.返回店铺Id->3.根据店铺Id创建存储图片的文件夹->4.把文件夹的地址更新回店铺信息中 只要有一步出错 就要事务回滚 创建ShopService 接口 接着写实现类ShopServiceImpl 在实现service接口中添加@Transational事务标签 只有当程序抛出RuntimeException的异常或继承RuntimeException类 时,事务才会回滚,如果只是抛出Exception,事物不会回滚 1 @Service

shop--10.店铺列表(前端)

利用SUI Mobile的模板来进行拼装 http://m.sui.taobao.org/components/#searchbar 搜索栏.栅栏和按钮组合 卡片 无限滚动 shoplist.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=ed

shop--11.前端展示系统--店铺列表(后端)

按照页面原型设计 点击全部商店后加载一级商铺列表,加载对应的数据 点击特定的一级商铺列表,加载对应商铺列表下的数据 区域显示全部区域 店铺列表页面需要支持分页功能,使用无极滚动的样式 店铺列表页面需要支持多条件排列组合查询店铺信息 <select id="queryShopList" resultMap="shopMap"> SELECT s.shop_id, s.shop_name, s.shop_desc, s.shop_addr, s.phone,

校园商铺-4店铺注册功能模块-6店铺注册之Controller层的改造

不合理的地方: 1. 并不需要将InputStream转换成File类型,直接将InputStream传进入交给CommonsMultipartfile去处理就可以了 如果做这样的转换,每次都需要生成一个空白的文件,然后还需要向文件中写入请求传送过来的文件流,这样不仅仅产生很多垃圾文件,同时有可能造成写入失败,抛出异常的风险,大大地加大了系统的不稳定性. 2. 问题:一开始设计ShopService接口addShop方法的时候,第二个参数不早早设定为InputStream? 原因:体现实际的开发

032医疗项目-模块三:药品供应商目录模块——Service层和Action层和调试

我们上一篇文章讲了Dao层代码: 这一篇我们讲解Service层和Action层: Service层: 分为接口和实现类,我们主要看实现类:GysemplServiceImpl package yycg.business.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import yycg.business.dao.mapper.Gysypml

如何让CI框架支持service层

本文主要介绍了在controller和model中加一个业务层service,由它来负责业务逻辑,封装好的调用接口可以被controller复用,提高了通用的业务逻辑的复用性,设计到具体业务实现会调用Model的接口. 大家知道CodeIgniter框架式MVC分层的,通常大家把业务逻辑写到Controller中,而Model只负责和数据库打交道. 但是随着业务越来越复杂,controller越来越臃肿,举一个简单的例子,比如说用户下订单,这必然会有一系列的操作:更新购物车.添加订单记录.会员添

[转]JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分

首先这是现在最基本的分层方式,结合了SSH架构.modle层就是对应的数据库表的实体类.Dao层是使用了Hibernate连接数据库.操作数据库(增删改查).Service层:引用对应的Dao数据库操作,在这里可以编写自己需要的代码(比如简单的判断).Action层:引用对应的Service层,在这里结合Struts的配置文件,跳转到指定的页面,当然也能接受页面传递的请求数据,也可以做些计算处理.以上的Hibernate,Struts,都需要注入到Spring的配置文件中,Spring把这些联系