/****************************************************************************** * Copyright (C) 2015 Shenzhen Penguin Network Technology Co., Ltd * All Rights Reserved. * 本软件为深圳市企鹅网络科技有限公司开发研制。未经本公司正式书面同意,其他任何个人、团体 * 不得使用、复制、修改或发布本软件. *****************************************************************************/ package com.qxueyou.scc.school.dao; import java.util.ArrayList; import java.util.List; import org.hibernate.Query; import org.hibernate.SQLQuery; import org.hibernate.Session; import org.springframework.orm.hibernate4.HibernateCallback; import org.springframework.stereotype.Repository; import com.qxueyou.scc.base.dao.BaseDAO; import com.qxueyou.scc.base.model.Pager; import com.qxueyou.scc.school.model.SchHandout; @Repository(value="handoutDAO") /** * 自动注入sessionFactory 互动 * * @author 邓志永 * @since JDK1.6 * @history 2015-01-07 邓志永 新建 */ public class HandoutDAO extends BaseDAO { /** * 查询互动练习结果,加下拉和分页 * @param hql * @param args * @return */ public List schHandoutList(int type,final String hql, final Pager page, final List args) { List handoutLst = new ArrayList(20); SchHandout handout = null; // 查询结果 List lst = this.findList(hql, page, args, Object[].class); for (Object[] obj : lst) { handout = new SchHandout(); handout = (SchHandout) obj[0]; if(type == 1){//讲义收藏 handout.setTotalCount(handout.getPageCount()); handout.setPageCount(Integer.parseInt(String.valueOf(obj[1]))); } handoutLst.add(handout); } return handoutLst; } /** * 后台列表查询讲义数据 * @param sql * @param args * @return */ @SuppressWarnings("unchecked") public List queryDataList(String sql,List args) { // 查询结果 Session session = this.getSessionFactory().getCurrentSession(); SQLQuery query = session.createSQLQuery(sql).addEntity(SchHandout.class); //query.setResultTransformer(Transformers.aliasToBean(SchHandout.class)); for(int i = 0;args !=null && i < args.size() ; i++ ){ query.setParameter(i, args.get(i)); } List lstHandouts = query.list(); return lstHandouts; } /** * 通过讲义观看记录查询讲义实际观看了的页码 * @param hql * @param args * @return */ @SuppressWarnings({ "unchecked"}) public List schHandoutPageNum(final String hql, final List args) { // 查询结果 List lst = this.getHibernateTemplate().execute(new HibernateCallback>() { public List doInHibernate(Session session) { Query query = session.createSQLQuery(hql); int i = 0; for (Object arg : args) { query.setParameter(i++, arg); } return query.list(); } }); List pageLst = new ArrayList(); for (Integer obj : lst) { if(null!=obj){ pageLst.add(String.valueOf(obj)); } } return pageLst; } }