| | |
| | | package com.yeshi.buwan.service.imp; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.util.Comparator; |
| | | import java.util.Iterator; |
| | | import java.util.List; |
| | | import java.util.*; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | import com.yeshi.buwan.dao.*; |
| | | import com.yeshi.buwan.dao.system.DetailSystemDao; |
| | | import com.yeshi.buwan.domain.*; |
| | | import com.yeshi.buwan.domain.system.DetailSystem; |
| | | import com.yeshi.buwan.service.inter.video.VideoInfoExtraService; |
| | | import org.hibernate.HibernateException; |
| | | import org.hibernate.Session; |
| | | import org.springframework.cache.annotation.Cacheable; |
| | | import org.springframework.orm.hibernate4.HibernateCallback; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import com.yeshi.buwan.dao.DetailSystemDao; |
| | | import com.yeshi.buwan.dao.HomeTypeDao; |
| | | import com.yeshi.buwan.dao.HomeVideoDao; |
| | | import com.yeshi.buwan.dao.SuperHomeTypeDao; |
| | | import com.yeshi.buwan.dao.VideoInfoDao; |
| | | import com.yeshi.buwan.domain.DetailSystem; |
| | | import com.yeshi.buwan.domain.HomeType; |
| | | import com.yeshi.buwan.domain.HomeVideo; |
| | | import com.yeshi.buwan.domain.SuperHomeType; |
| | | import com.yeshi.buwan.domain.VideoInfo; |
| | | import com.yeshi.buwan.domain.web.DetailSystemSelect; |
| | | import com.yeshi.buwan.domain.web.HomeTypeAdmin; |
| | | import com.yeshi.buwan.util.Constant; |
| | |
| | | @Resource |
| | | private DetailSystemDao detailSystemDao; |
| | | |
| | | public List<HomeType> getHomeType() { |
| | | @Resource |
| | | private VideoInfoExtraService videoInfoExtraService; |
| | | |
| | | public List<HomeType> getHomeTypeDetailList() { |
| | | List<HomeType> list = homeTypeDao.list("from HomeType h order by h.orderby desc"); |
| | | |
| | | return getHomeType(list); |
| | | } |
| | | |
| | | public List<HomeType> getHomeTypeList(String systemId) { |
| | | List<HomeType> list = homeTypeDao.list("from HomeType h where h.system.id=? order by h.orderby desc", systemId); |
| | | return list; |
| | | } |
| | | |
| | | @SuppressWarnings("unchecked") |
| | | @Cacheable(value = "homeCache", key = "'getHomeType'+'-'+#detailSystem+'-'+#cacheMd5+'-'+#maxNumber+'-'+#vtid") |
| | | public List<HomeType> getHomeType(final String detailSystem, final List<Long> resourceIds, String cacheMd5, |
| | | final int maxNumber, final long vtid) { |
| | | return (List<HomeType>) homeTypeDao.excute(new HibernateCallback<List<HomeType>>() { |
| | | List<HomeType> homeTypeList = (List<HomeType>) homeTypeDao.excute(new HibernateCallback<List<HomeType>>() { |
| | | public List<HomeType> doInHibernate(Session session) throws HibernateException { |
| | | |
| | | return (List<HomeType>) homeTypeDao.excute(new HibernateCallback<List<HomeType>>() { |
| | |
| | | + vtid + "' AND (" + resourceWhere |
| | | + " ) AND bv.`videoid` IS NULL ) GROUP BY (hv.`id`) ORDER BY hv.`orderby` desc,v.createtime DESC ) hvideo LEFT JOIN `wk_video_super_hometype` sht ON sht.`hometypeid`=hvideo.hometype LEFT JOIN `wk_video_hometype` ht ON sht.`hometypeid` =ht.`id` LEFT JOIN wk_video_video v ON v.`id`=hvideo.videoid WHERE sht.`detailsystemid` =" + detailSystem + " ORDER BY hvideo.`orderby` DESC,v.orderby desc,v.updatetime desc") |
| | | .list(); |
| | | List<HomeType> homeTypeList = new ArrayList<HomeType>(); |
| | | List<HomeType> homeTypeList = new ArrayList<>(); |
| | | for (int i = 0; i < resultList.size(); i++) { |
| | | Object[] obj = (Object[]) resultList.get(i); |
| | | HomeType ht = new HomeType(); |
| | |
| | | video.setHpicture(obj[16] + ""); |
| | | video.setLatestHpicture(obj[17] + ""); |
| | | video.setWatchCount(obj[18] + ""); |
| | | video.setCommentCount(Integer.parseInt(obj[19] + "")); |
| | | video.setCommentCount(obj[19] != null ? Integer.parseInt(obj[19] + "") : 0); |
| | | |
| | | ht.setIcon(obj[20] + ""); |
| | | hv.setVideo(video); |
| | |
| | | // hv.getVideo().getName()); |
| | | |
| | | // 更改图片显示 |
| | | if (!StringUtil.isNullOrEmpty(hv.getVideo().getLatestHpicture())) |
| | | hv.getVideo().setPicture(hv.getVideo().getLatestHpicture()); |
| | | else |
| | | hv.getVideo().setPicture(hv.getVideo().getHpicture()); |
| | | //如果为竖版 |
| | | if (ht.getColumns() == 2) { |
| | | if (!StringUtil.isNullOrEmpty(hv.getVideo().getLatestHpicture())) |
| | | hv.getVideo().setPicture(hv.getVideo().getLatestHpicture()); |
| | | else |
| | | hv.getVideo().setPicture(hv.getVideo().getHpicture()); |
| | | } else { |
| | | // hv.getVideo().setPicture(hv.getVideo().getVpicture()); |
| | | } |
| | | |
| | | if (StringUtil.isNullOrEmpty(hv.getPicture())) |
| | | hv.setPicture(hv.getVideo().getPicture()); |
| | |
| | | } |
| | | |
| | | } else { |
| | | List<HomeVideo> videolist = new ArrayList<HomeVideo>(); |
| | | List<HomeVideo> videolist = new ArrayList<>(); |
| | | videolist.add(hv); |
| | | ht.setHomeVideoList(videolist); |
| | | homeTypeList.add(ht); |
| | |
| | | |
| | | } |
| | | }); |
| | | List<VideoInfo> videoInfoList = new ArrayList<>(); |
| | | for (HomeType ht : homeTypeList) { |
| | | if (ht.getHomeVideoList() != null) |
| | | for (HomeVideo hv : ht.getHomeVideoList()) { |
| | | if (hv.getVideo() != null) |
| | | videoInfoList.add(hv.getVideo()); |
| | | } |
| | | } |
| | | |
| | | videoInfoExtraService.batchExtra(videoInfoList, resourceIds); |
| | | return homeTypeList; |
| | | } |
| | | |
| | | private void orderByType(List<HomeType> homeTypeList) { |
| | |
| | | for (HomeVideo sp : homeVideoList) |
| | | session.delete(sp); |
| | | |
| | | session.delete(new HomeType(id)); |
| | | session.delete(session.get(HomeType.class, id)); |
| | | session.flush(); |
| | | session.getTransaction().commit(); |
| | | } catch (Exception e) { |
| | |
| | | } |
| | | |
| | | public List<DetailSystemSelect> getDetailSystemSelectByType(String homeType) { |
| | | List<DetailSystemSelect> li = new ArrayList<DetailSystemSelect>(); |
| | | List<DetailSystemSelect> li = new ArrayList<>(); |
| | | List<DetailSystem> list = detailSystemDao |
| | | .list("select sht.detailSystem from SuperHomeType sht where sht.homeType.id=" + homeType); |
| | | List<DetailSystem> sdList = detailSystemDao.list("from DetailSystem"); |
| | |
| | | for (int i = 0; i < list.size(); i++) { |
| | | List<HomeVideo> videoList = session |
| | | .createQuery( |
| | | "select h from HomeVideo h LEFT JOIN h.juhe as v where v.id=h.video.id and h.video.show='1' and hometype=:hometype order by v.orderby desc,v.watchCount desc,h.createtime desc") |
| | | "select h from HomeVideo h where h.video.show='1' and hometype=:hometype order by h.video.orderby desc,h.video.watchCount desc,h.video.createtime desc") |
| | | .setParameter("hometype", ((HomeType) list.get(i)).getId()).setFirstResult(0) |
| | | .setMaxResults(list.get(i).getNumber()).list(); |
| | | ((HomeType) list.get(i)).setHomeVideoList(videoList); |
| | |
| | | */ |
| | | |
| | | @SuppressWarnings("unchecked") |
| | | public List<HomeTypeAdmin> getHomeTypeAdmin(final String key, final int detailSystem, final int page) { |
| | | public List<HomeTypeAdmin> getHomeTypeAdmin(final String key, final String systemId, final int detailSystem, final int page) { |
| | | |
| | | return (List<HomeTypeAdmin>) homeTypeDao.excute(new HibernateCallback<List<HomeTypeAdmin>>() { |
| | | public List<HomeTypeAdmin> doInHibernate(Session session) throws HibernateException { |
| | | List<HomeTypeAdmin> zhiBoClassList = new ArrayList<HomeTypeAdmin>(); |
| | | List<HomeTypeAdmin> zhiBoClassList = new ArrayList<>(); |
| | | try { |
| | | List<DetailSystem> detailSystemList = session.createQuery("from DetailSystem").list(); |
| | | List<DetailSystem> detailSystemList = session.createQuery("from DetailSystem ds where ds.system.id=" + systemId).list(); |
| | | String sql = ""; |
| | | if (detailSystem > 0) |
| | | sql = "select sh.homeType from SuperHomeType sh where sh.homeType.name like ? and sh.detailSystem.id=" |
| | | + detailSystem + " order by sh.homeType.orderby desc"; |
| | | else |
| | | sql = "from HomeType zb where zb.name like ? order by zb.orderby desc"; |
| | | sql = "from HomeType zb where zb.name like ? and zb.system.id=" + systemId + " order by zb.orderby desc"; |
| | | |
| | | List<HomeType> list = session.createQuery(sql).setParameter(0, "%" + key + "%") |
| | | .setFirstResult((page - 1) * Constant.pageCount).setMaxResults(Constant.pageCount).list(); |
| | |
| | | .createQuery("select vb.detailSystem from SuperHomeType vb where vb.homeType.id=?") |
| | | .setParameter(0, vb.getId()).list(); |
| | | |
| | | List<DetailSystemSelect> dssList = new ArrayList<DetailSystemSelect>(); |
| | | List<DetailSystemSelect> dssList = new ArrayList<>(); |
| | | |
| | | for (DetailSystem ds : detailSystemList) { |
| | | DetailSystemSelect dss = new DetailSystemSelect(); |
| | |
| | | |
| | | } |
| | | |
| | | public long getHomeTypeAdminCount(String key, int detailSystem) { |
| | | public long getHomeTypeAdminCount(String key, String systemId, int detailSystem) { |
| | | String sql = ""; |
| | | if (detailSystem > 0) |
| | | sql = "select count(*) from (select count(*) from wk_video_super_hometype zb left join wk_video_hometype c on c.id=zb.hometypeid where zb.detailsystemid=" |
| | | + detailSystem + " and c.name like '%" + key + "%' group by zb.hometypeid) s"; |
| | | else |
| | | sql = "select count(*) from (select count(*) from wk_video_super_hometype zb left join wk_video_hometype c on c.id=zb.hometypeid where c.name like '%" |
| | | + key + "%' group by zb.hometypeid) s"; |
| | | + key + "%' and c.system=" + systemId + " group by zb.hometypeid) s"; |
| | | |
| | | return homeTypeDao.getCountSQL(sql); |
| | | } |