/** * Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved. * EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * http://www.ewcms.com */ package com.ewcms.plugin.vote.manager.dao; import java.util.Calendar; import java.util.List; import javax.persistence.NoResultException; import javax.persistence.TypedQuery; import org.springframework.stereotype.Repository; import com.ewcms.common.dao.JpaDAO; import com.ewcms.plugin.vote.model.Person; import com.ewcms.plugin.vote.model.Record; /** * 投票人员信息DAO * * @author 吴智俊 */ @Repository public class PersonDAO extends JpaDAO<Long, Person> { public Boolean findPersonIsEntity(final Long questionnaireId, final String ip) { String hql = "From Person p Where p.questionnaireId=:questionnaireId And p.ip=:ip"; TypedQuery<Person> query = this.getEntityManager().createQuery(hql, Person.class); query.setParameter("questionnaireId", questionnaireId); query.setParameter("ip", ip); List<Person> list = query.getResultList(); return list.isEmpty() ? false : true; } public Boolean findPersonIsEntityToDay(final Long questionnaireId, final String ip) { //TODO日期比较问题 Calendar currentDate = Calendar.getInstance(); try { String hql = "From Person p Where p.questionnaireId=:questionnaireId And p.ip=:ip And YEAR(recordTime)=:year And MONTH(recordTime)=:month And DAY(recordTime)=:day"; TypedQuery<Person> query = this.getEntityManager().createQuery(hql, Person.class); query.setParameter("questionnaireId", questionnaireId); query.setParameter("ip", ip); query.setParameter("year", currentDate.get(Calendar.YEAR)); query.setParameter("month", currentDate.get(Calendar.MONTH)); query.setParameter("day", currentDate.get(Calendar.DATE)); List<Person> list = query.getResultList(); return list.isEmpty() ? false : true; } catch (Exception e) { return true; } } public List<Record> findRecordBySubjectTitle(final Long personId, final String subjectName) { String hql = "Select r From Person As p Right Join p.records As r Where p.id=:personId And r.subjectName=:subjectName"; TypedQuery<Record> query = this.getEntityManager().createQuery(hql, Record.class); query.setParameter("personId", personId); query.setParameter("subjectName", subjectName); return query.getResultList(); } public Record findRecordBySubjectItemTitle(final Long personId, final String subjectItemName) { String hql = "Select r From Person As p Right Join p.records As r Where p.id=:personId And r.subjectName=:subjectItemName"; TypedQuery<Record> query = this.getEntityManager().createQuery(hql, Record.class); query.setParameter("personId", personId); query.setParameter("subjectItemName", subjectItemName); Record record = null; try { record = (Record) query.getSingleResult(); } catch (NoResultException e) { } return record; } }