package org.infosec.ismp.manager.winsensor.operation.dao.impl; import java.util.ArrayList; import java.util.List; import org.hibernate.Criteria; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; import org.infosec.ismp.manager.winsensor.operation.dao.DutyManagerSentHistoryDao; import org.infosec.ismp.manager.winsensor.operation.entity.DutyManagerSentHistoryBO; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; /** * @author Rocky * @version create time: Jan 6, 2011 6:52:11 PM * */ public class DutyManagerSentHistoryDaoImpl extends HibernateDaoSupport implements DutyManagerSentHistoryDao { @Override public void addSentHistory(DutyManagerSentHistoryBO sentHistory) { getHibernateTemplate().save(sentHistory); } @SuppressWarnings("unchecked") @Override public DutyManagerSentHistoryBO findSentHistory(String dutyManagerId, String agentId) { Criteria criteria = getSession().createCriteria(DutyManagerSentHistoryBO.class); criteria.add(Restrictions.eq("dutyManagerId", dutyManagerId)); criteria.add(Restrictions.eq("agentId", agentId)); criteria.addOrder(Order.desc("createTime")); List<DutyManagerSentHistoryBO> sentHistories = criteria.list(); if (sentHistories.size() > 0) { return sentHistories.get(0); } return null; } @SuppressWarnings("unchecked") @Override public List<DutyManagerSentHistoryBO> findSentHistory(String dutyManagerId) { Criteria criteria = getSession().createCriteria(DutyManagerSentHistoryBO.class); criteria.add(Restrictions.eq("dutyManagerId", dutyManagerId)); criteria.addOrder(Order.desc("createTime")); return criteria.list(); } @SuppressWarnings("unchecked") @Override public List<String> getAllUnSentDutyManagerAgentId() { Criteria criteria = getSession().createCriteria(DutyManagerSentHistoryBO.class); criteria.add(Restrictions.eq("isSent", false)); criteria.add(Restrictions.eq("expired", false)); criteria.add(Restrictions.eq("isRemoved", false)); criteria.addOrder(Order.desc("createTime")); List<DutyManagerSentHistoryBO> sentHistories = criteria.list(); List<String> agentIds = new ArrayList<String>(); for (DutyManagerSentHistoryBO sentHistory : sentHistories) { if (!agentIds.contains(sentHistory.getAgentId())) { agentIds.add(sentHistory.getAgentId()); } } return agentIds; } @SuppressWarnings("unchecked") @Override public List<String> getAllUnsentDutyManagerId(String agentId, boolean expired) { Criteria criteria = getSession().createCriteria(DutyManagerSentHistoryBO.class); criteria.add(Restrictions.eq("agentId", agentId)); criteria.add(Restrictions.eq("expired", expired)); criteria.add(Restrictions.eq("isSent", false)); criteria.add(Restrictions.eq("isRemoved", false)); List<DutyManagerSentHistoryBO> sentHistories = criteria.list(); List<String> dutyManagerIds = new ArrayList<String>(); for (DutyManagerSentHistoryBO sentHistory : sentHistories) { dutyManagerIds.add(sentHistory.getDutyManagerId()); } return dutyManagerIds; } @Override public void updateSentHistory(DutyManagerSentHistoryBO sentHistory) { getHibernateTemplate().update(sentHistory); } }