From f4a0f2acc63d7785eab108419a4e16f5f688cb95 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期六, 18 一月 2020 12:06:27 +0800 Subject: [PATCH] 用户注册信息 --- fanli/src/main/java/com/yeshi/fanli/service/impl/config/HotSearchServiceImpl.java | 260 +++++++++++++++++++-------------------------------- 1 files changed, 96 insertions(+), 164 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..4c965d0 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,205 +1,137 @@ 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.hibernate.HibernateException; -import org.hibernate.Query; -import org.hibernate.Session; -import org.springframework.orm.hibernate4.HibernateCallback; +import org.apache.commons.beanutils.PropertyUtils; +import org.springframework.cache.annotation.Cacheable; 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.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.Utils; @Service public class HotSearchServiceImpl implements HotSearchService { @Resource - private HotSearchDao hotSearchDao; + private HotSearchMapper hotSearchMapper; @Resource - private SystemService systemService; + private BusinessSystemService businessSystemService; @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); - com.yeshi.fanli.entity.system.System system = systemService.getSystem(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<System>> superMap = new HashMap<Long, List<System>>(); - Long rsId=null; - List<System> systemList=null; - for (SuperHotSearch srs : superHotSearchList) { - rsId = srs.getHotSearch().getId(); - systemList = superMap.get(rsId); - if(systemList==null){ - systemList=new ArrayList<System>(); - } - 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<System> 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); + updateSearch.setUseType(hotSearch.getUseType()); + hotSearchMapper.updateByPrimaryKeySelective(updateSearch); } - public int getCount(String platform, String packages, final String key) { - platform = Utils.getMap().get(platform); - final System system = systemService.getSystem(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 + public List<HotSearch> listQuery(int start, int count, String key, Long systemId, Integer useType) throws Exception { + + List<HotSearch> listObj = hotSearchMapper.listQuery(start, count, key, systemId, useType); + + 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, Integer useType) { + return hotSearchMapper.countQuery(key, systemId, useType); } + + @Override + @Cacheable(value = "crgCache", key = "'getHotSearchCache-' + #useType") + public List<HotSearch> getHotSearchCache(Integer useType) { + return hotSearchMapper.getHotSearchList(useType); + } + + + } -- Gitblit v1.8.0