/****************************************************************************** * Copyright (C) 2015 Shenzhen Penguin Network Technology Co., Ltd * All Rights Reserved. * 本软件为深圳市企鹅网络科技有限公司开发研制。未经本公司正式书面同意,其他任何个人、团体 * 不得使用、复制、修改或发布本软件. *****************************************************************************/ package com.qxueyou.scc.school.dao; import java.text.ParseException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.lang3.StringUtils; import org.hibernate.SQLQuery; import org.hibernate.Session; import org.hibernate.transform.Transformers; import org.springframework.stereotype.Repository; import com.qxueyou.scc.base.dao.BaseDAO; import com.qxueyou.scc.base.model.FilePathConstants; import com.qxueyou.scc.base.model.Pager; import com.qxueyou.scc.school.model.SchSignItem; import com.qxueyou.scc.school.model.SchSignStatistics; @Repository(value="signDAO") /** * 自动注入sessionFactory 签到明细 * * @author ody.yuan * @since JDK1.6 * @history 2015-04-23 */ public class SignDAO extends BaseDAO { /** * 查询签到明细 * @param sql * @param args * @return * @throws ParseException */ @SuppressWarnings("unchecked") public List querySignItemList(String sql,List args) { // 查询结果 Session session = this.getSessionFactory().getCurrentSession(); SQLQuery query = session.createSQLQuery(sql); query.setResultTransformer(Transformers.aliasToBean(SchSignItem.class)); for(int i = 0;args !=null && i < args.size() ; i++ ){ query.setParameter(i, args.get(i)); } List lstItems = query.list(); return lstItems; } /** * 查询签到明细(优化版本) * @param sql * @param args * @return * @throws ParseException */ @SuppressWarnings({ "unchecked" }) public List querySignItemListNew(final String sql,final List args) { // 查询得到结果 List resultLst = this.findBySql(sql, args); List lst = new ArrayList(); SchSignStatistics objSta = null; for (Object[] obj : resultLst) { objSta = new SchSignStatistics(); objSta.setUserId(String.valueOf(obj[0])); objSta.setUserName(String.valueOf(obj[1])); objSta.setMobilePhone(obj[2] == null?null:String.valueOf(obj[2])); objSta.setRegisteFlag(true); if(Integer.parseInt(String.valueOf(obj[3]))==1){ objSta.setInstallFlag(true); }else{ objSta.setInstallFlag(false); } objSta.setCompanyName(String.valueOf(obj[4])); objSta.setStatisticsFlag(3); lst.add(objSta); } return lst; } /** * 组装查询练习题目 顺序、随机练习 * @return */ @SuppressWarnings("unchecked") public List querySignItemListStat(String hql, List args) { List lstitems = new ArrayList(); SchSignStatistics item; List lst = (List) this.getHibernateTemplate().find(hql, args.toArray()); for (Object[] obj : lst) { item = (SchSignStatistics) obj[0]; item.setUserImgPath(null != obj[1] && StringUtils.isNotBlank(String.valueOf(obj[1])) ? String.valueOf(obj[1]) : FilePathConstants.USER_DEFAULT_IMG ); lstitems.add(item); } return lstitems; } /** * 组装查询签到历史 * @param hql * @param page * @param args * @return */ public List> querySignHistoryList(final String hql, final Pager page, final List args) { List> lstMap = new ArrayList>(); Map map = null; List lst = this.findList(hql, page, args, Object[].class); for (Object[] obj : lst) { map = new HashMap(8); map.put("firstSignTime", obj[0]); map.put("firstSignStatus", obj[1]); map.put("lastSignTime", obj[2]); map.put("lastSignStatus", obj[3]); map.put("signAddress", obj[4]); map.put("signName", obj[5]); map.put("signType", obj[6]); map.put("signStatisticsId", obj[7]); lstMap.add(map); } return lstMap; } /** * 组装查询签到、公司名称 * @return */ @SuppressWarnings("unchecked") public List querySignItemListCom(String hql,List args) { List lstitems = new ArrayList(); SchSignStatistics item; List lst = (List) this.getHibernateTemplate().find(hql, args.toArray()); for (Object[] obj : lst) { item = (SchSignStatistics) obj[0]; if(null != obj[1]){ item.setAttribute1(String.valueOf(obj[1])); }else{ item.setAttribute1(""); } lstitems.add(item); } return lstitems; } /** * 组装签到记录 * @return */ @SuppressWarnings("unchecked") public List querySchSignStatisticses(String hql,List args ) { List result = new ArrayList(); SchSignStatistics statistics ; List lst = (List) this.getHibernateTemplate().find(hql, args.toArray()); for (Object[] obj : lst) { statistics = new SchSignStatistics(); statistics = (SchSignStatistics)obj[0] ; statistics.setCompanyName(null != obj[1] ? String.valueOf(obj[1]) : "" ); result.add(statistics); } return result; } public List querySignItemListCom(final String hql, final Pager page, final List args) { List lst = this.findList(hql, page, args, Object[].class); List lstitems = new ArrayList(); SchSignStatistics item; for (Object[] obj : lst) { item = new SchSignStatistics(); item = (SchSignStatistics) obj[0]; item.setAttribute1(null != obj[1] ? String.valueOf(obj[1]) : "") ; lstitems.add(item); } return lstitems; } }