controller
@ApiOperation(value = "查询所有积分流水列表")
@PostMapping(value = "/integral")
public Result list(@RequestBody Map searchMap) {
return new Result(true, StatusCode.OK, "操作成功", integralFlowService.findList(searchMap));
}
service
public List<IntegralFlow> findList(Map searchMap) {
Specification<IntegralFlow> specification = createSpecification(searchMap);
return integralFlowDao.findAll(specification);
}
/**
* 动态条件构建
*
* @param searchMap
* @return
*/
private Specification<IntegralFlow> createSpecification(Map searchMap) {
return new Specification<IntegralFlow>() {
@Override
public Predicate toPredicate(Root<IntegralFlow> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
List<Predicate> predicateList = new ArrayList<Predicate>();
if (Objects.nonNull(searchMap.get("idcode"))) {
predicateList.add(cb.equal(root.get("idcode").as(Integer.class), searchMap.get("idcode")));
}
if (Objects.nonNull(searchMap.get("operatorIdcode"))) {
predicateList.add(cb.equal(root.get("operatorIdcode").as(String.class), searchMap.get("operatorIdcode")));
}
//角色
if (Objects.nonNull(searchMap.get("roles"))) {
predicateList.add(cb.equal(root.get("roles").as(Integer.class), searchMap.get("roles")));
}
// 订单id
if (Objects.nonNull(searchMap.get("orderId"))) {
predicateList.add(cb.like(root.get("orderId").as(String.class), "%" + searchMap.get("orderId") + "%"));
}
if (Objects.nonNull(searchMap.get("sourceType"))) {
predicateList.add(cb.equal(root.get("sourceType").as(Integer.class), searchMap.get("sourceType")));
}
//搜索订单状态 auditType(0:所有;1:未审核;2:已通过;3:未通过)
Object obj = searchMap.get("auditType");
if (Objects.nonNull(obj)) {
String auditType = obj.toString();
if (Objects.equals(auditType, "1")) {
predicateList.add(cb.isNull(root.get("audit").as(Boolean.class)));
}
if (Objects.equals(auditType, "2")) {
predicateList.add(cb.equal(root.get("audit").as(Boolean.class), true));
}
if (Objects.equals(auditType, "3")) {
predicateList.add(cb.equal(root.get("audit").as(Boolean.class), false));
}
}
return cb.and(predicateList.toArray(new Predicate[predicateList.size()]));
}
};
}
分页查询controller
@ApiOperation(value = "查询所有积分流水列表_分页+多条件查询")
@ApiImplicitParams({
@ApiImplicitParam(name = "searchMap", value = "查询条件"),
@ApiImplicitParam(name = "page", value = "页码"),
@ApiImplicitParam(name = "size", value = "页大小")
})
@PostMapping(value = "/integral/search/{page}/{size}")
public Result findSearch(@RequestBody Map searchMap, @PathVariable int page, @PathVariable int size) {
log.debug("传参" + "_page:" + page + "_size:" + size);
Page<IntegralFlow> pageList = integralFlowService.findSearch(searchMap, page, size);
return new Result(true, StatusCode.OK, "操作成功", new PageResult<IntegralFlow>(pageList.getTotalElements(), pageList.getContent()));
}
service
public Page<IntegralFlow> findSearch(Map searchMap, int page, int size) {
Specification<IntegralFlow> specification = createSpecification(searchMap);
PageRequest pageRequest = PageRequest.of(page - 1, size);
return integralFlowDao.findAll(specification, pageRequest);
}