ExportConsignmentRepositoryImpl.java
package com.tradecloud.repository.impl;
import com.tradecloud.domain.export.TermsAndConditionsConfig;
import com.tradecloud.domain.export.TermsAndConditionsConsignment;
import com.tradecloud.domain.model.ordermanagement.ConsignmentType;
import com.tradecloud.domain.model.ordermanagement.ExportConsignment;
import com.tradecloud.repository.SearchMetaParams;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
* Created by ds on 2015/11/23.
*/
@Repository(value = "exportConsignmentRepository")
@Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.DEFAULT)
public class ExportConsignmentRepositoryImpl extends BaseConsignmentRepositoryImpl<ExportConsignment> {
@Override
protected Class getConsignmentClass() {
return ExportConsignment.class;
}
@Override
protected String getDiscriminator() {
return ConsignmentType.EXPORT_CONSIGNMENT.name();
}
@Override
public List<TermsAndConditionsConsignment> findAllConsignmentTermsAndConditions(List<Long> termsToFind) {
if (!termsToFind.isEmpty()) {
Criteria criteria = getCurrentSession().createCriteria(TermsAndConditionsConsignment.class);
criteria.add(Restrictions.in("originalConfigId", termsToFind));
List<TermsAndConditionsConsignment> termsAndConditionsConsignmentList = criteria.list();
return termsAndConditionsConsignmentList;
}
return new ArrayList<>();
}
@Override
public List<TermsAndConditionsConfig> findAllConfigTermsAndConditions(List<Long> termsToFind) {
if (!termsToFind.isEmpty()) {
Criteria criteria = getCurrentSession().createCriteria(TermsAndConditionsConfig.class);
criteria.add(Restrictions.in("id", termsToFind));
List<TermsAndConditionsConfig> termsAndConditionsConfigList = criteria.list();
return termsAndConditionsConfigList;
}
return new ArrayList<>();
}
@Override
public List<TermsAndConditionsConsignment> findTermsAndConditions(ExportConsignment consignment, SearchMetaParams metaParams) {
if (consignment.getTermsAndConditionsList() != null && !consignment.getTermsAndConditionsList().isEmpty()) {
String queryString = "from TermsAndConditionsConsignment as tac " +
"WHERE tac in :termsAndConditionsList ORDER BY originalConfigId DESC";
Query query = getCurrentSession().createQuery(queryString);
query.setParameterList("termsAndConditionsList", consignment.getTermsAndConditionsList());
initQueryParams(query, metaParams);
return query.list();
}
return new ArrayList<>();
}
@Override
public long countTermsAndConditions(ExportConsignment consignment) {
if (consignment.getTermsAndConditionsList() != null && !consignment.getTermsAndConditionsList().isEmpty()) {
String queryString = "select count(*) from TermsAndConditionsConsignment as tac " +
"WHERE tac in :termsAndConditionsList ORDER BY originalConfigId DESC";
Query query = getCurrentSession().createQuery(queryString);
query.setParameterList("termsAndConditionsList", consignment.getTermsAndConditionsList());
return (Long) query.uniqueResult();
}
return 0;
}
}