From 4011b8d0b377af33e2bc435f7726329630d706cb Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 02 三月 2021 18:28:52 +0800 Subject: [PATCH] 搜索引擎接口更新 --- src/main/java/com/yeshi/buwan/service/imp/HomeTypeService.java | 78 ++++++++++++++++++++++++-------------- 1 files changed, 49 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/yeshi/buwan/service/imp/HomeTypeService.java b/src/main/java/com/yeshi/buwan/service/imp/HomeTypeService.java index c6ecec0..3001d79 100644 --- a/src/main/java/com/yeshi/buwan/service/imp/HomeTypeService.java +++ b/src/main/java/com/yeshi/buwan/service/imp/HomeTypeService.java @@ -1,30 +1,19 @@ 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.domain.*; +import com.yeshi.buwan.service.inter.VideoResourceMapExtraInfoService; 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; @@ -43,17 +32,25 @@ @Resource private DetailSystemDao detailSystemDao; - public List<HomeType> getHomeType() { + @Resource + private VideoResourceMapExtraInfoService videoResourceMapExtraInfoService; + + 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>>() { @@ -72,7 +69,7 @@ + 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(); @@ -133,7 +130,7 @@ } } else { - List<HomeVideo> videolist = new ArrayList<HomeVideo>(); + List<HomeVideo> videolist = new ArrayList<>(); videolist.add(hv); ht.setHomeVideoList(videolist); homeTypeList.add(ht); @@ -158,6 +155,29 @@ } }); + List<String> videoIdList = new ArrayList<>(); + for (HomeType ht : homeTypeList) { + if (ht.getHomeVideoList() != null) + for (HomeVideo hv : ht.getHomeVideoList()) { + if (hv.getVideo() != null) + videoIdList.add(hv.getVideo().getId()); + } + } + + Map<String, VideoResourceMapExtraInfo> videoMap = videoResourceMapExtraInfoService.listMap(videoIdList, resourceIds); + for (HomeType ht : homeTypeList) { + if (ht.getHomeVideoList() != null) + for (HomeVideo hv : ht.getHomeVideoList()) { + if (hv.getVideo() != null) { + hv.getVideo().setVideoResourceMapExtraInfo(videoMap.get(hv.getVideo().getId())); + if (hv.getVideo().getVideoResourceMapExtraInfo() != null) + hv.getVideo().setFree(hv.getVideo().getVideoResourceMapExtraInfo().getFree()); + } + } + } + + + return homeTypeList; } private void orderByType(List<HomeType> homeTypeList) { @@ -216,7 +236,7 @@ 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) { @@ -240,7 +260,7 @@ } 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"); @@ -326,7 +346,7 @@ 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); @@ -422,19 +442,19 @@ */ @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(); @@ -443,7 +463,7 @@ .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(); @@ -476,14 +496,14 @@ } - 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); } -- Gitblit v1.8.0