package com.fzzy.sys;
|
|
import com.bstek.dorado.annotation.DataProvider;
|
import com.fzzy.sys.entity.LogLogin;
|
import com.fzzy.api.utils.ContextUtil;
|
import com.fzzy.sys.repository.LogLoginRep;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import com.bstek.dorado.data.provider.Page;
|
import org.springframework.data.domain.PageRequest;
|
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Sort;
|
import org.springframework.data.jpa.domain.Specification;
|
import org.springframework.stereotype.Component;
|
import javax.persistence.criteria.CriteriaBuilder;
|
import javax.persistence.criteria.CriteriaQuery;
|
import javax.persistence.criteria.Predicate;
|
import javax.persistence.criteria.Root;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* @Description 登录日志
|
* @Author CZT
|
* @Date 2024/5/30 15:53
|
*/
|
@Component
|
public class LogLoginPR {
|
|
@Autowired
|
private LogLoginRep logLoginRep;
|
|
/**
|
* logLoginPR#pageLogLogin
|
*
|
* @param page
|
* @param param
|
* @throws Exception
|
*/
|
@DataProvider
|
public void pageLogLogin(Page<LogLogin> page, Map<String, Object> param) {
|
//多参数分页查询
|
Pageable pageable = PageRequest.of(page.getPageNo() - 1, page.getPageSize(), Sort.Direction.DESC, LogLogin.SORT_PROP);
|
|
if (null == param) {
|
org.springframework.data.domain.Page<LogLogin> japPage = logLoginRep.findAll(pageable);
|
page.setEntityCount((int) japPage.getTotalElements());
|
page.setEntities(japPage.getContent());
|
|
return;
|
}
|
|
Specification<LogLogin> specification = new Specification<LogLogin>() {
|
private static final long serialVersionUID = 1L;
|
|
public Predicate toPredicate(Root<LogLogin> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
|
List<Predicate> predicates = new ArrayList<>(); //所有的断言
|
|
Date date = (Date) param.get("start");
|
if (null != date) {
|
Predicate predicate3 = cb.greaterThan(root.get("loginTime"), ContextUtil.getCurZero(date));
|
predicates.add(predicate3);
|
}
|
date = (Date) param.get("end");
|
if (null != date) {
|
Predicate predicate4 = cb.lessThan(root.get("loginTime"), ContextUtil.getNextZero(date));
|
predicates.add(predicate4);
|
}
|
return cb.and(predicates.toArray(new Predicate[0]));
|
}
|
};
|
|
org.springframework.data.domain.Page<LogLogin> japPage = logLoginRep.findAll(specification, pageable);
|
page.setEntityCount((int) japPage.getTotalElements());
|
page.setEntities(japPage.getContent());
|
}
|
}
|