例:1.JPA持久层 InvoiceRepository.java
@Repository
public interface InvoiceRepository extends JpaRepository<Invoice, Integer> {
@Query(
value =
"SELECT * from invoice_apply where company_id=?1 and IF (?2 is null ,1=1,status = ?2)",
countQuery =
"select count(*) from invoice_apply where company_id=?1 and IF (?2 is null ,1=1,status = ?2)",
nativeQuery = true)
Page<Map> findInvoice(int companyID, String status, Pageable pageable);
}
2.服务层
@Override
public Map findInvoice(int companyID, String status, Integer page, Integer pageSize) {
Double amount = companyFinanceRepository.findDCompanyFinance(companyID);
//分页查询
Pageable pageable = PageRequest.of(page, pageSize, Sort.Direction.ASC, "id");
Page<Map> invoiceList = invoiceRepository.findInvoice(companyID, status, pageable);
//重组返回结果
Map map = new HashMap();
map.put("invoice_amount", amount);
map.put("list", invoiceList.getContent());//数据列表
map.put("total", invoiceList.getTotalElements());//记录总条数
map.put("current_page", invoiceList.getNumber());//当前页码
return map;
}