初始版本
This commit is contained in:
98
src/main/java/com/vverp/dao/PaymentApplyDao.java
Normal file
98
src/main/java/com/vverp/dao/PaymentApplyDao.java
Normal file
@@ -0,0 +1,98 @@
|
||||
package com.vverp.dao;
|
||||
|
||||
import com.vverp.dto.PaymentApplyQuery;
|
||||
import com.vverp.entity.PaymentApply;
|
||||
import com.vverp.moli.util.Page;
|
||||
import com.vverp.moli.util.Pageable;
|
||||
import com.vverp.util.CriteriaUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import javax.persistence.criteria.CriteriaBuilder;
|
||||
import javax.persistence.criteria.CriteriaQuery;
|
||||
import javax.persistence.criteria.Predicate;
|
||||
import javax.persistence.criteria.Root;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author dealsky
|
||||
* @date 2020/6/14 5:07 下午
|
||||
*/
|
||||
@Repository
|
||||
public class PaymentApplyDao extends BaseDao<PaymentApply, Long> {
|
||||
|
||||
public Page<PaymentApply> findPage(Pageable pageable, PaymentApplyQuery query) {
|
||||
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
|
||||
CriteriaQuery<PaymentApply> criteriaQuery = criteriaBuilder.createQuery(PaymentApply.class);
|
||||
Root<PaymentApply> root = criteriaQuery.from(PaymentApply.class);
|
||||
criteriaQuery.select(root);
|
||||
Predicate predicate = toPredicate(criteriaBuilder, root, query);
|
||||
criteriaQuery.where(predicate);
|
||||
return findPage(criteriaQuery, pageable);
|
||||
}
|
||||
|
||||
public List<PaymentApply> findList(PaymentApplyQuery query) {
|
||||
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
|
||||
CriteriaQuery<PaymentApply> criteriaQuery = criteriaBuilder.createQuery(PaymentApply.class);
|
||||
Root<PaymentApply> root = criteriaQuery.from(PaymentApply.class);
|
||||
criteriaQuery.select(root);
|
||||
Predicate predicate = toPredicate(criteriaBuilder, root, query);
|
||||
criteriaQuery.where(predicate);
|
||||
return findList(criteriaQuery, null, null, null, null);
|
||||
}
|
||||
|
||||
public BigDecimal calcAmount(PaymentApplyQuery query) {
|
||||
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
|
||||
CriteriaQuery<BigDecimal> criteriaQuery = criteriaBuilder.createQuery(BigDecimal.class);
|
||||
Root<PaymentApply> root = criteriaQuery.from(PaymentApply.class);
|
||||
criteriaQuery.select(criteriaBuilder.sum(root.get("amount")));
|
||||
Predicate predicate = toPredicate(criteriaBuilder, root, query);
|
||||
criteriaQuery.where(predicate);
|
||||
return entityManager.createQuery(criteriaQuery).getSingleResult();
|
||||
}
|
||||
|
||||
public Predicate toPredicate(CriteriaBuilder criteriaBuilder, Root<PaymentApply> root, PaymentApplyQuery query) {
|
||||
Predicate predicate = criteriaBuilder.conjunction();
|
||||
if (query.getStatus() != null) {
|
||||
predicate = criteriaBuilder.and(predicate, criteriaBuilder.equal(root.get("status"), query.getStatus()));
|
||||
}
|
||||
if (query.getType() != null) {
|
||||
predicate = criteriaBuilder.and(predicate, criteriaBuilder.equal(root.get("type"), query.getType()));
|
||||
}
|
||||
if (query.getOwnerId() != null) {
|
||||
predicate = criteriaBuilder.and(predicate, criteriaBuilder.equal(root.get("ownerId"), query.getOwnerId()));
|
||||
}
|
||||
if (query.getCompanyId() != null) {
|
||||
predicate = criteriaBuilder.and(predicate, criteriaBuilder.equal(root.get("companyId"), query.getCompanyId()));
|
||||
}
|
||||
if (query.getContentId() != null) {
|
||||
predicate = criteriaBuilder.and(predicate, criteriaBuilder.equal(root.get("contentId"), query.getContentId()));
|
||||
}
|
||||
if (query.getContractRequired() != null) {
|
||||
predicate = criteriaBuilder.and(predicate, criteriaBuilder.equal(root.get("contractRequired"), query.getContractRequired()));
|
||||
}
|
||||
if (query.getApprovalFailed() != null) {
|
||||
predicate = criteriaBuilder.and(predicate, criteriaBuilder.equal(root.get("approvalFailed"), query.getApprovalFailed()));
|
||||
}
|
||||
if (query.getReceivePayment() != null) {
|
||||
predicate = criteriaBuilder.and(predicate, criteriaBuilder.equal(root.get("receivePayment"), query.getReceivePayment()));
|
||||
}
|
||||
if (query.getTypeList() != null && query.getTypeList().size() > 0) {
|
||||
predicate = criteriaBuilder.and(predicate, root.get("type").in(query.getTypeList()));
|
||||
}
|
||||
if (StringUtils.isNotBlank(query.getOwnerName())) {
|
||||
predicate = criteriaBuilder.and(predicate, criteriaBuilder.equal(root.get("ownerName"), query.getOwnerName()));
|
||||
}
|
||||
if (query.getReservoir() != null) {
|
||||
predicate = criteriaBuilder.and(predicate, criteriaBuilder.equal(root.get("reservoir"), query.getReservoir()));
|
||||
}
|
||||
if (query.getCashierConfirmFlag() != null) {
|
||||
predicate = criteriaBuilder.and(predicate, criteriaBuilder.equal(root.get("cashierConfirmFlag"), query.getCashierConfirmFlag()));
|
||||
}
|
||||
predicate = CriteriaUtils.dateFilter(criteriaBuilder, predicate, root, "payDate", query.getPayDateStart(), query.getPayDateEnd());
|
||||
predicate = CriteriaUtils.dateFilter(criteriaBuilder, predicate, root, query.getCreateDateStart(), query.getCreateDateEnd());
|
||||
return predicate;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user