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