/******************************************************************************
|
* 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<MediaVideoViewVO> queryMediaVideoList(String hql,List<Object> args){
|
List<MediaVideoViewVO> lstViewVOs = new ArrayList<MediaVideoViewVO>();
|
MediaVideoViewVO viewVO;
|
List<Object[]> lst = (List<Object[]>) 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<MediaVideoTrans> queryTransItem(String hql,
|
List<Object> args) {
|
List<MediaVideoTrans> lstitems = new ArrayList<MediaVideoTrans>();
|
MediaVideoTrans item;
|
List<Object[]> lst = (List<Object[]>) 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<MediaVideo> queryVideoItem(String hql,List<Object> args) {
|
List<MediaVideo> lstitems = new ArrayList<MediaVideo>();
|
MediaVideo item;
|
List<Object[]> lst = (List<Object[]>) 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<String,SchClassSchedule> queryInitMap(String hql,List<Object> args) {
|
|
Map<String,SchClassSchedule> result = new HashMap<String,SchClassSchedule>();
|
|
List<Object[]> lst = (List<Object[]>) 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<Object> args,Map<SchReLessonVideo,MediaVideo> reMap,Map<SchReLessonVideo,SchClassSchedule> scheMap ) {
|
|
List<Object[]> lst = (List<Object[]>) 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<Boolean>(){
|
|
@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;
|
}
|
|
});
|
}
|
|
}
|