/****************************************************************************** * Copyright (C) 2015 Shenzhen Penguin Network Technology Co., Ltd * All Rights Reserved. * 本软件为深圳市企鹅网络科技有限公司开发研制。未经本公司正式书面同意,其他任何个人、团体 * 不得使用、复制、修改或发布本软件. *****************************************************************************/ package com.qxueyou.scc.media.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.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.hibernate.HibernateException; import org.hibernate.Query; 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.media.model.MediaVideo; import com.qxueyou.scc.media.model.MediaVideoTrans; import com.qxueyou.scc.media.model.MediaVideoViewVO; import com.qxueyou.scc.school.model.SchClassSchedule; import com.qxueyou.scc.school.model.SchReLessonVideo; /** * * @author ody.yuan * */ @Repository(value="mediaVideoDAO") public class MediaVideoDAO extends BaseDAO { private Logger log = LogManager.getLogger(MediaVideoDAO.class); /** *查询错题 收藏对应的练习记录 * @return * @throws ParseException */ @SuppressWarnings({ "unchecked"}) public List queryMediaVideoList(String hql,List args){ List lstViewVOs = new ArrayList(); MediaVideoViewVO viewVO; List lst = (List) this.getHibernateTemplate().find(hql, args.toArray()); try { for (Object[] obj : lst) { viewVO = new MediaVideoViewVO(); viewVO.setVideoId(String.valueOf(obj[0])); String tempName = String.valueOf(obj[1]); if(StringUtils.isNotBlank(tempName) && tempName.indexOf(".") != -1){ viewVO.setName(tempName.substring(0, tempName.lastIndexOf("."))); }else{ viewVO.setName(""); } viewVO.setUrl(String.valueOf(obj[2])); viewVO.setOrigUrl(String.valueOf(obj[3])); viewVO.setSize( null != obj[4] ? Integer.parseInt(String.valueOf(obj[4])) : 0 ); viewVO.setPlayTime( null != obj[5] ? Integer.parseInt(String.valueOf(obj[5])) : 0 ); viewVO.setCoverPageUrl(String.valueOf(obj[6])); viewVO.setPlayTimes( null != obj[7] ? Integer.parseInt(String.valueOf(obj[7])) : 0 ); viewVO.setRemark(String.valueOf(obj[8])); viewVO.setFormat(String.valueOf(obj[9])); viewVO.setTeacherId(String.valueOf(obj[10])); viewVO.setTeacherName(String.valueOf(obj[11])); viewVO.setCacheFlag(false); viewVO.setDownloadFlag(false); lstViewVOs.add(viewVO); } } catch (Exception e) { log.error("APP视频列表出错:", e); } return lstViewVOs; } /** * 组装查询转码记录 * @return */ @SuppressWarnings("unchecked") public List queryTransItem(String hql, List args) { List lstitems = new ArrayList(); MediaVideoTrans item; List lst = (List) this.getHibernateTemplate().find(hql, args.toArray()); for (Object[] obj : lst) { item = (MediaVideoTrans) obj[0]; item.setOrgName(String.valueOf(obj[1])); lstitems.add(item); } return lstitems; } /** * 组装查询转码记录 * @return */ @SuppressWarnings("unchecked") public List queryVideoItem(String hql,List args) { List lstitems = new ArrayList(); MediaVideo item; List lst = (List) this.getHibernateTemplate().find(hql, args.toArray()); for (Object[] obj : lst) { item = (MediaVideo) obj[0]; item.setClassScheduleName(String.valueOf(obj[1])); item.setClassScheduleId(String.valueOf(obj[2])); lstitems.add(item); } return lstitems; } /** * 组装查询转码记录 * @return */ @SuppressWarnings("unchecked") public Map queryInitMap(String hql,List args) { Map result = new HashMap(); List lst = (List) this.getHibernateTemplate().find(hql, args.toArray()); for (Object[] obj : lst) { result.put(String.valueOf(obj[0]), (SchClassSchedule) obj[2]); } return result; } /** * 组装查询转码记录 * @return */ @SuppressWarnings("unchecked") public boolean queryInitDoubleMap(String hql,List args,Map reMap,Map scheMap ) { List lst = (List) this.getHibernateTemplate().find(hql, args.toArray()); for (Object[] obj : lst) { reMap.put((SchReLessonVideo) obj[1], (MediaVideo) obj[0]); scheMap.put((SchReLessonVideo) obj[1], (SchClassSchedule) obj[2]); } return true; } /** * 新增视频观看次数 * @param videoId * @return true 新增成功 false 新增失败 */ public boolean addPlayTimes(final String videoId){ return getHibernateTemplate().execute(new HibernateCallback(){ @Override public Boolean doInHibernate(Session session) throws HibernateException { String hql = "update MediaVideo set playTimes = playTimes+1 where videoId=:videoId and deleteFlag is false"; Query qry = session.createQuery(hql); qry.setParameter("videoId", videoId); int count = qry.executeUpdate(); return count>0; } }); } }