From a3700c64080ede3fb9782e20130a3211364f3df2 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期五, 22 三月 2019 14:24:50 +0800
Subject: [PATCH] 热门搜索 Dao改造

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/config/HotSearchServiceImpl.java |  235 +++-------------------------------------------------------
 1 files changed, 14 insertions(+), 221 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 c74ce18..03a06bf 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
@@ -1,37 +1,26 @@
 package com.yeshi.fanli.service.impl.config;
 
 import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 
 import javax.annotation.Resource;
 
 import org.apache.commons.beanutils.PropertyUtils;
-import org.hibernate.HibernateException;
-import org.hibernate.Query;
-import org.hibernate.Session;
-import org.springframework.orm.hibernate4.HibernateCallback;
 import org.springframework.stereotype.Service;
 
-import com.yeshi.fanli.dao.goods.HotSearchDao;
-import com.yeshi.fanli.entity.admin.HotSearchAdmin;
+import com.yeshi.fanli.dao.mybatis.goods.HotSearchMapper;
 import com.yeshi.fanli.entity.bus.search.HotSearch;
 import com.yeshi.fanli.entity.bus.su.search.SuperHotSearch;
 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.util.Constant;
-import com.yeshi.fanli.util.StringUtil;
-import com.yeshi.fanli.util.Utils;
 
 @Service
 public class HotSearchServiceImpl implements HotSearchService {
 	
 	@Resource
-	private HotSearchDao hotSearchDao;
+	private HotSearchMapper hotSearchMapper;
 	
 	@Resource
 	private BusinessSystemService businessSystemService;
@@ -39,219 +28,39 @@
 	@Resource
 	private SuperHotSearchService superHotSearchService;
 	
-	@SuppressWarnings("unchecked")
-	public List<HotSearchAdmin> getHotSearchs(int index, String platform,
-			String packages, String key) {
-		final int strat = index * Constant.PAGE_SIZE;
-		platform = Utils.getMap().get(platform);
-		BusinessSystem system = businessSystemService.getBusinessSystem(platform, packages);
-		List<HotSearch> hotSearchList=null;
-		List<SuperHotSearch> superHotSearchList=null;
-		Map<Long,HotSearchAdmin> hotSearchAdminMap=new HashMap<Long, HotSearchAdmin>();
-		List<HotSearchAdmin> hotSearchAdmin=new ArrayList<HotSearchAdmin>();
-		if(system == null){
-			if("".equals(key.trim())){
-				hotSearchList = (List<HotSearch>) hotSearchDao.excute(new HibernateCallback<List<HotSearch>>(){
-						public List<HotSearch> doInHibernate(Session session)
-								throws HibernateException {
-							Query query = session.createQuery(" from HotSearch hs");
-							query.setFirstResult(strat);
-							query.setMaxResults(Constant.PAGE_SIZE);
-							return query.list();
-						}
-				});
-			}else{
-				final String likekey = "%"+key+"%";
-				hotSearchList= (List<HotSearch>) hotSearchDao.excute(new HibernateCallback<List<HotSearch>>(){
-							public List<HotSearch> doInHibernate(Session session)
-									throws HibernateException {
-								Query query = session.createQuery(" from HotSearch hs where hs.name like ? ");
-								query.setFirstResult(strat);
-								query.setMaxResults(Constant.PAGE_SIZE);
-								query.setParameter(0, likekey);
-								return query.list();
-							}
-				});
-			}
-			List<Long> hsIdList = new ArrayList<Long>();
-			for (HotSearch rs : hotSearchList) {
-				hsIdList.add(rs.getId());
-			}
-			superHotSearchList = superHotSearchService.getSuperHotSearchsByHotSearchs(hsIdList);
-			Map<Long,List<BusinessSystem>> superMap = new HashMap<Long, List<BusinessSystem>>();
-			Long rsId=null;
-			List<BusinessSystem> systemList=null;
-			for (SuperHotSearch srs : superHotSearchList) {
-				rsId = srs.getHotSearch().getId();
-				systemList = superMap.get(rsId);
-				if(systemList==null){
-					systemList=new ArrayList<BusinessSystem>();
-				}
-				systemList.add(srs.getSystem());
-				superMap.put(rsId,systemList);
-			}
-			HotSearchAdmin rsa=null;
-			for (HotSearch HotSearch : hotSearchList) {
-				long id = HotSearch.getId();
-				rsa = hotSearchAdminMap.get(id);
-				if(rsa==null){
-					rsa=new HotSearchAdmin();
-				}
-				List<BusinessSystem> list = superMap.get(id);
-				if(list != null){
-					rsa.getSystemList().addAll(superMap.get(id));
-				}
-				rsa.setHotSearch(HotSearch);
-				hotSearchAdminMap.put(id, rsa);
-			}	
-		}else if(system != null){
-			if("".equals(key.trim())){
-				superHotSearchList = superHotSearchService.getSuperHotSearchBySystemId(system.getId(),strat, Constant.PAGE_SIZE);
-			}else{
-				String likekey = "%"+key+"%";
-				superHotSearchList = superHotSearchService.getSuperHotSearchBySystemId(system.getId(),strat, Constant.PAGE_SIZE,likekey);
-			}
-			List<Long> hsIdList =new ArrayList<Long>();
-			for (SuperHotSearch superHotSearch : superHotSearchList) {
-				HotSearch HotSearch = superHotSearch.getHotSearch();
-				hsIdList.add(HotSearch.getId());
-			}
-			superHotSearchList = superHotSearchService.getSuperHotSearchsByHotSearchs(hsIdList);
-			HotSearchAdmin rsa=null;
-			for (SuperHotSearch superHotSearch : superHotSearchList) {
-				HotSearch HotSearch = superHotSearch.getHotSearch();
-				rsa = hotSearchAdminMap.get(HotSearch.getId());
-				if(rsa==null){
-					rsa=new HotSearchAdmin(HotSearch);
-				}
-				rsa.getSystemList().add(superHotSearch.getSystem());
-				hotSearchAdminMap.put(HotSearch.getId(), rsa);
-			}
-		}
-		Map map = Utils.orderBy(hotSearchAdminMap);
-		Collection<HotSearchAdmin> values = map.values();
-		hotSearchAdmin.addAll(values);
-		return hotSearchAdmin;
-		
-	}
-
-	public HotSearch getHotSearch(long id) {
-		return hotSearchDao.find(HotSearch.class, id);
-	}
 
 	public void addHotSearch(HotSearch hotSearch) {
 		hotSearch.setCreatetime(java.lang.System.currentTimeMillis());
-		hotSearchDao.create(hotSearch);
+		hotSearchMapper.insert(hotSearch);
 	}
 
-	public Integer deleteHotSearch(final long[] hsids) {
-		return (Integer) hotSearchDao.excute(new HibernateCallback() {
-
-			public Object doInHibernate(Session session)
-					throws HibernateException {
-				session.getTransaction().begin();
-				try {
-					for (long hsid : hsids) {
-						session.delete(new HotSearch(hsid));
-						Query query = session.createQuery("delete from SuperHotSearch shs where shs.hotSearch.id = ?");
-						query.setParameter(0, hsid);
-						query.executeUpdate();
-					}
-					session.flush();
-					session.getTransaction().commit();
-				} catch (Exception e) {
-					e.printStackTrace();
-					session.getTransaction().rollback();
-					return 1;
-				}
-				return null;
-			}
-		});
-		
-		
+	public void deleteHotSearch(long[] hsids) {
+		for (long hsid : hsids) {
+			
+			// superHotSearchService.deleteSuper(id, systemId) 
+			
+			hotSearchMapper.deleteByPrimaryKey(hsid);
+		}
 	}
 
 	public void updateHotSearch(HotSearch hotSearch) {
 		HotSearch updateSearch = new HotSearch(hotSearch.getId());
 		updateSearch.setName(hotSearch.getName());
 		updateSearch.setOrderby(hotSearch.getOrderby());
-		hotSearchDao.update(hotSearch);
+		hotSearchMapper.updateByPrimaryKeySelective(updateSearch);
 	}
 
-	public int getCount(String platform, String packages, final String key) {
-		platform = Utils.getMap().get(platform);
-		final BusinessSystem system = businessSystemService.getBusinessSystem(platform, packages);
-		return (Integer) hotSearchDao.excute(new HibernateCallback<Integer>() {
-			
-			public Integer doInHibernate(Session session)
-					throws HibernateException {
-				String k = "%"+key+"%";
-				Query query;
-				if(system==null){
-//					Query query = session.createSQLQuery("select count(a.name) from (select name from yeshi_ec_hot_search where `name` like ?) a");
-					query = session.createQuery("select count(hs.id) from HotSearch hs where hs.name like ?");
-					query.setParameter(0, k);
-				}else{
-//					Query query =session.createSQLQuery("select count(a.name) from (select hs.name from yeshi_ec_super_hot_search shs left  join yeshi_ec_hot_search hs on shs.hotSearch_id=hs.id where shs.system_id=? and hs.name like ?) a");
-					query = session.createQuery("select count(shs.id) from SuperHotSearch shs where shs.system.id=? and shs.hotSearch.name like ?");
-					query.setParameter(0, system.getId());
-					query.setParameter(1, k);
-				}
-					Long result = (Long) query.uniqueResult();
-					int intValue = result.intValue();
-					return intValue;
-			}
-		});
-	}
 
 	
 	@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);
-				}
-			}
-		}
-
+		List<HotSearch> listObj = hotSearchMapper.listQuery(start, count, key, systemId);
 
 		if (listObj == null || listObj.size() == 0) {
 			return null;
 		}
+		
 		List<Long> listId = new ArrayList<>();
 		for (HotSearch hotSearch : listObj) {
 			listId.add(hotSearch.getId());
@@ -305,29 +114,13 @@
 				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();
-			}
-		});
+		return hotSearchMapper.countQuery(key, systemId);
 	}
 
 }

--
Gitblit v1.8.0