From a8e45a802600ca1cde28fe8522a26635328bbd99 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 15 三月 2019 17:45:07 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- fanli/src/main/java/com/yeshi/fanli/service/impl/config/HotSearchServiceImpl.java | 146 +++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 137 insertions(+), 9 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/config/HotSearchServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/config/HotSearchServiceImpl.java index ecd44c8..c74ce18 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/config/HotSearchServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/config/HotSearchServiceImpl.java @@ -8,6 +8,7 @@ import javax.annotation.Resource; +import org.apache.commons.beanutils.PropertyUtils; import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.Session; @@ -18,11 +19,12 @@ import com.yeshi.fanli.entity.admin.HotSearchAdmin; import com.yeshi.fanli.entity.bus.search.HotSearch; import com.yeshi.fanli.entity.bus.su.search.SuperHotSearch; -import com.yeshi.fanli.entity.system.System; +import com.yeshi.fanli.entity.system.BusinessSystem; +import com.yeshi.fanli.service.inter.config.BusinessSystemService; import com.yeshi.fanli.service.inter.config.HotSearchService; import com.yeshi.fanli.service.inter.config.SuperHotSearchService; -import com.yeshi.fanli.service.inter.config.SystemService; import com.yeshi.fanli.util.Constant; +import com.yeshi.fanli.util.StringUtil; import com.yeshi.fanli.util.Utils; @Service @@ -32,7 +34,7 @@ private HotSearchDao hotSearchDao; @Resource - private SystemService systemService; + private BusinessSystemService businessSystemService; @Resource private SuperHotSearchService superHotSearchService; @@ -42,7 +44,7 @@ String packages, String key) { final int strat = index * Constant.PAGE_SIZE; platform = Utils.getMap().get(platform); - com.yeshi.fanli.entity.system.System system = systemService.getSystem(platform, packages); + BusinessSystem system = businessSystemService.getBusinessSystem(platform, packages); List<HotSearch> hotSearchList=null; List<SuperHotSearch> superHotSearchList=null; Map<Long,HotSearchAdmin> hotSearchAdminMap=new HashMap<Long, HotSearchAdmin>(); @@ -76,14 +78,14 @@ hsIdList.add(rs.getId()); } superHotSearchList = superHotSearchService.getSuperHotSearchsByHotSearchs(hsIdList); - Map<Long,List<System>> superMap = new HashMap<Long, List<System>>(); + Map<Long,List<BusinessSystem>> superMap = new HashMap<Long, List<BusinessSystem>>(); Long rsId=null; - List<System> systemList=null; + List<BusinessSystem> systemList=null; for (SuperHotSearch srs : superHotSearchList) { rsId = srs.getHotSearch().getId(); systemList = superMap.get(rsId); if(systemList==null){ - systemList=new ArrayList<System>(); + systemList=new ArrayList<BusinessSystem>(); } systemList.add(srs.getSystem()); superMap.put(rsId,systemList); @@ -95,7 +97,7 @@ if(rsa==null){ rsa=new HotSearchAdmin(); } - List<System> list = superMap.get(id); + List<BusinessSystem> list = superMap.get(id); if(list != null){ rsa.getSystemList().addAll(superMap.get(id)); } @@ -178,7 +180,7 @@ public int getCount(String platform, String packages, final String key) { platform = Utils.getMap().get(platform); - final System system = systemService.getSystem(platform, packages); + final BusinessSystem system = businessSystemService.getBusinessSystem(platform, packages); return (Integer) hotSearchDao.excute(new HibernateCallback<Integer>() { public Integer doInHibernate(Session session) @@ -202,4 +204,130 @@ }); } + + @Override + @SuppressWarnings("unchecked") + public List<HotSearch> listQuery(int start, int count, String key, Long systemId) throws Exception { + + List<HotSearch> listObj = null; + if (systemId == null) { + + String hql = "from HotSearch hs where 1=1 "; + if (!StringUtil.isNullOrEmpty(key)) { + hql += " hs.name like ?"; + } + final String queryHQL = hql; + + listObj = (List<HotSearch>) hotSearchDao.excute(new HibernateCallback<List<HotSearch>>() { + public List<HotSearch> doInHibernate(Session session) throws HibernateException { + Query query = session.createQuery(queryHQL); + query.setFirstResult(start); + query.setMaxResults(count); + if (!StringUtil.isNullOrEmpty(key)) { + query.setParameter(0, "%" + key + "%"); + } + return query.list(); + } + }); + + } else { + List<SuperHotSearch> superHotSearchList = null; + if(StringUtil.isNullOrEmpty(key)){ + superHotSearchList = superHotSearchService.getSuperHotSearchBySystemId(systemId,start, count); + }else{ + String likekey = "%"+key+"%"; + superHotSearchList = superHotSearchService.getSuperHotSearchBySystemId(systemId, start, count, likekey); + } + + if (superHotSearchList != null && superHotSearchList.size() > 0) { + listObj = new ArrayList<HotSearch>(); + for (SuperHotSearch superHotSearch: superHotSearchList) { + HotSearch hotSearch = superHotSearch.getHotSearch(); + listObj.add(hotSearch); + } + } + } + + + if (listObj == null || listObj.size() == 0) { + return null; + } + List<Long> listId = new ArrayList<>(); + for (HotSearch hotSearch : listObj) { + listId.add(hotSearch.getId()); + } + + + List<BusinessSystem> systemList = businessSystemService.getBusinessSystems(); + + List<SuperHotSearch> listSuper = superHotSearchService.listSuperHotSearch(listId); + + if (listSuper == null || listSuper.size() == 0) { + for (HotSearch hotSearch : listObj) { + hotSearch.setSystemList(systemList); + } + } else { + for (HotSearch hotSearch : listObj) { + Long id = hotSearch.getId(); + List<BusinessSystem> newList = new ArrayList<BusinessSystem>(); + + // 鏄惁鏈夊叧鑱旂郴缁熼�夐」 + for (BusinessSystem dsystem : systemList) { + BusinessSystem newsystem = new BusinessSystem(); + + try { + PropertyUtils.copyProperties(newsystem, dsystem); + } catch (Exception e) { + e.printStackTrace(); + } + + if (listSuper != null && listSuper.size() > 0) { + + Long superSystemId = newsystem.getId(); + + for (SuperHotSearch superHotSearch : listSuper) { + HotSearch search = superHotSearch.getHotSearch(); + BusinessSystem system = superHotSearch.getSystem(); + + // 褰撳墠涓撻 銆佸綋鍓嶇郴缁� + if (search != null && system != null && id == search.getId() && superSystemId == system.getId()) { + newsystem.setCheck(1); + break; + } + } + } + + if (newsystem.getCheck() != 1) { + newsystem.setCheck(0); + } + newList.add(newsystem); + } + hotSearch.setSystemList(newList); + } + } + + + + return listObj; + } + + @Override + public int countList(String key, Long systemId) { + return (Integer) hotSearchDao.excute(new HibernateCallback<Integer>() { + + public Integer doInHibernate(Session session) + throws HibernateException { + Query query = null; + if (StringUtil.isNullOrEmpty(key)) { + query = session.createQuery("select count(hs.id) from HotSearch hs"); + } else { + query = session.createQuery("select count(hs.id) from HotSearch hs where hs.name like ?"); + query.setParameter(0, "%"+key+"%"); + } + Long result = (Long) query.uniqueResult(); + return result.intValue(); + } + }); + } + } -- Gitblit v1.8.0