整体进程
**分页review **
数据库实现
采用数据库内直接进行分页,也就是利用limit语句进行限定起始杭与终止行
<select id="queryByCouponIdPaging" resultMap="CouponTemplate">
select
<include refid="columns"/>
from
<include refid="tableName"/>
<!-- and <include refid="searchWhereSQL"/>-->
ORDER BY id asc
limit #{startRow}, #{pageSize}
</select>
dao层功能实现
返回List
/**
* 分页查询
* @param couponTemplateParam
* @return
*/
public List<CouponTemplateDO> queryByCouponTemplateIdPage(CouponSearchParam couponTemplateParam) {
return couponSqlSessionTemplate.selectList("CouponTemplateDao.queryByCouponIdPaging",couponTemplateParam);
}
其中CouponSearchParam数据类是这样的:
@Data
public class CouponSearchParam {
/**
* 类型
* 1 未开始 2 进行中 3 已经结束 4.已经失效 0全部
*/
private Integer status;
/**
* 偏移量
*/
private Integer offset;
/**
* 每页面大小
*/
private Integer pageSize;
/**
* 当前页数
*/
private Integer pageNumber;
public int getOffset() {
int offset = 0;
if (pageNumber != null && pageSize != null) {
int temp = (pageNumber - 1) * pageSize;
if (temp > offset) {
return temp;
}
}
return offset;
}
}
manager层调用
@CacheData(namespace = COUPONS_DETAILS_KEY, interval = 1800)
public List<CouponTemplateDO> queryCouponByIdPage(CouponSearchParam couponTemplateParam) {
return couponTemplateDAO.queryByCouponTemplateIdPage(couponTemplateParam);
}
service层封装
@Override
public ServiceResponse<CouponTemplateVO> queryByIdPage(QueryCouponSearchReq queryCouponSearchReq) {
CouponTemplateVO couponTemplateVO = new CouponTemplateVO();
if (null == queryCouponSearchReq.getCouponSearchParam()) {
Response.error("CouponTemplateVO is null");
}
//
List<CouponTemplateDO> list = couponTemplateManager.queryCouponByIdPage(queryCouponSearchReq.getCouponSearchParam());
//return Response.SUCCESS;
return Response.success(list);
}
dubbo配置service
<dubbo:service interface=“com.zhicong.coupon.service.CouponTeamplateService” ref=“couponTeamplateService” timeout=“2000” retries=“0”/>