package com.norteksoft.acs.service.sale; import java.util.Date; import java.util.List; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.norteksoft.acs.base.orm.hibernate.SimpleHibernateTemplate; import com.norteksoft.acs.entity.sale.Subsciber; import com.norteksoft.product.orm.Page; /** * 定单管理 * */ @Service @Transactional public class SubsciberManager{ private static String QUERY_BY_TENANT_HQL = "select ss from Subsciber ss where ss.tenantId=? and deleted=?"; private SimpleHibernateTemplate<Subsciber, Long> subsciberDao; @Autowired public void setSessionFactory(SessionFactory sessionFactory) { subsciberDao = new SimpleHibernateTemplate<Subsciber, Long>(sessionFactory, Subsciber.class); } public void saveSubsciber(Subsciber subsciber){ subsciberDao.save(subsciber); } public void deleteSubsciber(Long id){ Subsciber subsciber = subsciberDao.get(id); subsciber.setDeleted(true); subsciberDao.save(subsciber); } public Subsciber getSubsciber(Long id){ return subsciberDao.get(id); } public List<Subsciber> getAllSubsciber(){ return subsciberDao.findAll(); } public Page<Subsciber> getAllSubsciber(Page<Subsciber> page){ return subsciberDao.findAll(page); } public Page<Subsciber> getSubsciberByTenant(Page<Subsciber> page, Long tenantId){ return subsciberDao.find(page, QUERY_BY_TENANT_HQL, tenantId, false); } @SuppressWarnings("unchecked") public Integer getAllowedNumbByCompany(Long companyId){ List<Subsciber> subscibers = subsciberDao.find(QUERY_BY_TENANT_HQL, companyId, false); Integer num = 0; for(Subsciber sb : subscibers){ Date now = new Date(); if(now.after(sb.getBeginDate()) && now.before(sb.getValidDate())){ if(num < sb.getUseNumber()){ num = sb.getUseNumber(); } } } return num; } }