package org.hsweb.web.service.commons; import org.hsweb.web.bean.common.PagerResult; import org.hsweb.web.bean.common.QueryParam; import org.hsweb.web.dao.QueryMapper; import org.hsweb.web.service.QueryService; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; /** * @author zhouhao */ public interface SimpleQueryService<Po, Pk> extends QueryService<Po, Pk> { QueryMapper<Po, Pk> getQueryMapper(); @Override default PagerResult<Po> selectPager(QueryParam param) { PagerResult<Po> pagerResult = new PagerResult<>(); param.setPaging(false); int total = getQueryMapper().total(param); pagerResult.setTotal(total); if (total == 0) { pagerResult.setData(new ArrayList<>()); } else { //根据实际记录数量重新指定分页参数 param.rePaging(total); pagerResult.setData(getQueryMapper().select(param)); } return pagerResult; } @Override @Transactional(readOnly = true) default List<Po> select(QueryParam param) { return getQueryMapper().select(param); } @Override @Transactional(readOnly = true) default int total(QueryParam param) { return getQueryMapper().total(param); } @Override @Transactional(readOnly = true) default Po selectByPk(Pk pk) { return getQueryMapper().selectByPk(pk); } @Override @Transactional(readOnly = true) default List<Po> select() { return this.createQuery().listNoPaging(); } }