package com.yeshi.buwan.dao;
|
|
import com.yeshi.buwan.dao.base.BaseDao;
|
import com.yeshi.buwan.domain.VideoInfo;
|
import com.yeshi.buwan.query.BaseQuery;
|
import org.hibernate.HibernateException;
|
import org.hibernate.Session;
|
import org.springframework.orm.hibernate4.HibernateCallback;
|
import org.springframework.stereotype.Repository;
|
import org.yeshi.utils.StringUtil;
|
|
import java.io.Serializable;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
@Repository
|
public class VideoInfoDao extends BaseDao<VideoInfo> {
|
|
|
/**
|
* 选择性更新
|
*
|
* @param bean
|
*/
|
public void updateSelective(VideoInfo bean) {
|
List<String> wheres = new ArrayList<>();
|
List<Serializable> params = new ArrayList<>();
|
|
if (bean.getTag() != null) {
|
wheres.add("vi.tag=?");
|
params.add(bean.getTag());
|
}
|
if (bean.getTotalNumber() != null) {
|
wheres.add("vi.totalNumber=?");
|
params.add(bean.getTotalNumber());
|
}
|
|
if (bean.getPicture() != null) {
|
wheres.add("vi.picture=?");
|
params.add(bean.getPicture());
|
}
|
if (bean.getName() != null) {
|
wheres.add("vi.name=?");
|
params.add(bean.getName());
|
}
|
if (bean.getIntroduction() != null) {
|
wheres.add("vi.introduction=?");
|
params.add(bean.getIntroduction());
|
}
|
if (bean.getDuration() != null) {
|
wheres.add("vi.duration=?");
|
params.add(bean.getDuration());
|
}
|
if (bean.getMainActor() != null) {
|
wheres.add("vi.mainActor=?");
|
params.add(bean.getMainActor());
|
}
|
if (bean.getYear() != null) {
|
wheres.add("vi.year=?");
|
params.add(bean.getYear());
|
}
|
if (bean.getBeizhu() != null) {
|
wheres.add("vi.beizhu=?");
|
params.add(bean.getBeizhu());
|
}
|
if (bean.getQulity() != null) {
|
wheres.add("vi.qulity=?");
|
params.add(bean.getQulity());
|
}
|
if (bean.getScore() != null) {
|
wheres.add("vi.score=?");
|
params.add(bean.getScore());
|
}
|
if (bean.getShare() != null) {
|
wheres.add("vi.share=?");
|
params.add(bean.getShare());
|
}
|
if (bean.getShow() != null) {
|
wheres.add("vi.show=?");
|
params.add(bean.getShow());
|
}
|
if (bean.getWatchCount() != null) {
|
wheres.add("vi.watchCount=?");
|
params.add(bean.getWatchCount());
|
}
|
if (bean.getOrderby() != null) {
|
wheres.add("vi.orderby=?");
|
params.add(bean.getOrderby());
|
}
|
if (bean.getNowNumber() != null) {
|
wheres.add("vi.nowNumber=?");
|
params.add(bean.getNowNumber());
|
}
|
if (bean.getFinish() != null) {
|
wheres.add("vi.finish=?");
|
params.add(bean.getFinish());
|
}
|
if (bean.getBaseurl() != null) {
|
wheres.add("vi.baseurl=?");
|
params.add(bean.getBaseurl());
|
}
|
if (bean.getMonth() != null) {
|
wheres.add("vi.month=?");
|
params.add(bean.getMonth());
|
}
|
if (bean.getDay() != null) {
|
wheres.add("vi.day=?");
|
params.add(bean.getDay());
|
}
|
if (bean.getArea() != null) {
|
wheres.add("vi.area=?");
|
params.add(bean.getArea());
|
}
|
if (bean.getFocus() != null) {
|
wheres.add("vi.focus=?");
|
params.add(bean.getFocus());
|
}
|
if (bean.getLeafctgs() != null) {
|
wheres.add("vi.leafctgs=?");
|
params.add(bean.getLeafctgs());
|
}
|
if (bean.getDirector() != null) {
|
wheres.add("vi.director=?");
|
params.add(bean.getDirector());
|
}
|
if (bean.getKeyword() != null) {
|
wheres.add("vi.keyword=?");
|
params.add(bean.getKeyword());
|
}
|
if (bean.getVpicture() != null) {
|
wheres.add("vi.vpicture=?");
|
params.add(bean.getVpicture());
|
}
|
if (bean.getHpicture() != null) {
|
wheres.add("vi.hpicture=?");
|
params.add(bean.getHpicture());
|
}
|
if (bean.getLatestVpicture() != null) {
|
wheres.add("vi.latestVpicture=?");
|
params.add(bean.getLatestVpicture());
|
}
|
if (bean.getLatestHpicture() != null) {
|
wheres.add("vi.latestHpicture=?");
|
params.add(bean.getLatestHpicture());
|
}
|
if (bean.getContentType() != null) {
|
wheres.add("vi.contentType=?");
|
params.add(bean.getContentType());
|
}
|
if (bean.getCanSave() != null) {
|
wheres.add("vi.canSave=?");
|
params.add(bean.getCanSave());
|
}
|
if (bean.getAdmin() != null) {
|
wheres.add("vi.admin=?");
|
params.add(bean.getAdmin());
|
}
|
if (bean.getVideoType() != null) {
|
wheres.add("vi.videoType=?");
|
params.add(bean.getVideoType());
|
}
|
if (bean.getCommentCount() != null) {
|
wheres.add("vi.commentCount=?");
|
params.add(bean.getCommentCount());
|
}
|
if (bean.getLatestWatchCount() != null) {
|
wheres.add("vi.latestWatchCount=?");
|
params.add(bean.getLatestWatchCount());
|
}
|
if (bean.getVideocount() != null) {
|
wheres.add("vi.videocount=?");
|
params.add(bean.getVideocount());
|
}
|
|
|
if (bean.getType() != null) {
|
wheres.add("vi.type=?");
|
params.add(bean.getType());
|
}
|
|
wheres.add("vi.updatetime=?");
|
params.add(System.currentTimeMillis() + "");
|
|
String hql = "update VideoInfo vi set " + StringUtil.concat(wheres, ",") + " where vi.id=" + bean.getId();
|
|
Serializable[] ps = new Serializable[params.size()];
|
params.toArray(ps);
|
update(hql, ps);
|
}
|
|
|
public List<VideoInfo> list(DaoQuery query) {
|
String hql = "from VideoInfo vi ";
|
List<Serializable> paramList = new ArrayList<>();
|
List<String> andList = new ArrayList<>();
|
if (query.show != null) {
|
andList.add("vi.show= ?");
|
paramList.add(query.show);
|
}
|
|
if (query.name != null) {
|
andList.add("vi.name= ?");
|
paramList.add(query.name);
|
}
|
|
|
if (query.minId != null) {
|
andList.add("vi.id>=" + query.minId);
|
}
|
|
if (andList.size() > 0) {
|
hql += "where " + StringUtil.concat(andList, " and ");
|
}
|
|
Serializable[] params = new Serializable[paramList.size()];
|
paramList.toArray(params);
|
return findList(hql, (int) query.start, query.count, params);
|
}
|
|
public long count(DaoQuery query) {
|
String hql = "from VideoInfo vi ";
|
List<Serializable> paramList = new ArrayList<>();
|
List<String> andList = new ArrayList<>();
|
if (query.show != null) {
|
andList.add("vi.show= ?");
|
paramList.add(query.show);
|
}
|
|
if (query.name != null) {
|
andList.add("vi.name= ?");
|
paramList.add(query.name);
|
}
|
|
|
if (query.minId != null) {
|
andList.add("vi.id>=" + query.minId);
|
}
|
|
if (andList.size() > 0) {
|
hql += "where " + StringUtil.concat(andList, " and ");
|
}
|
|
|
Serializable[] params = new Serializable[paramList.size()];
|
paramList.toArray(params);
|
return getCount(hql, params);
|
}
|
|
/**
|
* 根据名字查询
|
*
|
* @param name
|
* @param start
|
* @param count
|
* @return
|
*/
|
public List<VideoInfo> listByName(String name, int start, int count) {
|
DaoQuery query = new DaoQuery();
|
query.start = start;
|
query.count = count;
|
query.name = name;
|
return list(query);
|
}
|
|
|
/**
|
* 根据主键批量查询
|
*
|
* @param videoIds
|
* @return
|
*/
|
public List<VideoInfo> listByVideoIds(List<String> videoIds) {
|
String hql = "from VideoInfo vi where ";
|
List<String> ors = new ArrayList<>();
|
for (String vi : videoIds) {
|
ors.add(" vi.id=? ");
|
}
|
hql += StringUtil.concat(ors, "or");
|
String[] videos = new String[videoIds.size()];
|
videoIds.toArray(videos);
|
return list(hql, videos);
|
}
|
|
/**
|
* 统计视频附加信息(包含地区,分类,来源)
|
*
|
* @param videoId -视频ID
|
*/
|
public void statisticVideoExtraInfo(final String videoId) {
|
excute(new HibernateCallback() {
|
@Override
|
public Object doInHibernate(Session session) throws HibernateException {
|
session.getTransaction().begin();
|
session.createSQLQuery(String.format("call copyvideotemp(%s)", videoId)).executeUpdate();
|
session.getTransaction().commit();
|
return null;
|
}
|
});
|
}
|
|
public static class DaoQuery extends BaseQuery {
|
public String show;
|
public String name;
|
public Long minId;
|
}
|
|
}
|