admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
fanli/src/main/java/com/yeshi/fanli/service/impl/config/SuperHotSearchSerivceImpl.java
@@ -1,164 +1,67 @@
package com.yeshi.fanli.service.impl.config;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.orm.hibernate4.HibernateCallback;
import org.springframework.stereotype.Service;
import com.yeshi.fanli.dao.goods.SuperHotSearchDao;
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.SuperHotSearchService;
@Service
public class SuperHotSearchSerivceImpl implements SuperHotSearchService {
   @Resource
   private SuperHotSearchDao superHotSearchDao;
   @Resource
   private BusinessSystemService businessSystemService;
   public List<SuperHotSearch> getSuperHotSearchBySystemId(long id) {
      return superHotSearchDao.list("from SuperHotSearch shs where shs.system.id=? order by hotSearch.orderby desc",
            new Serializable[] { id });
   }
   public List<SuperHotSearch> getSuperHotSearchsByHotSearchs(List<Long> hsIdList) {
      if (hsIdList.size() == 0) {
         return new ArrayList<SuperHotSearch>();
      }
      StringBuffer sb = new StringBuffer(" from SuperHotSearch shs ");
      Serializable[] serArr = new Serializable[hsIdList.size()];
      for (int i = 0; i < hsIdList.size(); i++) {
         if (i == 0) {
            sb.append(" where shs.hotSearch.id=? ");
         } else {
            sb.append(" or shs.hotSearch.id=? ");
         }
         serArr[i] = hsIdList.get(i);
      }
      String hql = sb.toString();
      return superHotSearchDao.list(hql, serArr);
   }
   public List<SuperHotSearch> getSuperHotSearchBySystemId(long id, int strat, int count) {
      return superHotSearchDao.list("from SuperHotSearch shs where shs.system.id=?", strat, count,
            new Serializable[] { id });
   }
   public List<SuperHotSearch> getSuperHotSearchBySystemId(long id, int strat, int count, String key) {
      return superHotSearchDao.list("from SuperHotSearch srs where srs.system.id=? and srs.hotSearch.name like ?",
            strat, count, new Serializable[] { id, key });
   }
   @Override
   @SuppressWarnings({ "unchecked", "rawtypes" })
   public List<SuperHotSearch> listSuperHotSearch(List<Long> list) {
      List<SuperHotSearch> listObj = (List<SuperHotSearch>) superHotSearchDao.excute(new HibernateCallback<List<SuperHotSearch>>() {
         public List<SuperHotSearch> doInHibernate(Session session) throws HibernateException {
            Query query = session.createQuery("from SuperHotSearch srs where srs.hotSearch.id in (:array)");
             query.setParameterList("array",list);
                 return query.list();
         }
      });
      return listObj;
   }
   public Integer deleteSuperHotSearch(final long hsid, final String platform, final String packageName) {
      return (Integer) superHotSearchDao.excute(new HibernateCallback<Integer>() {
         public Integer doInHibernate(Session session) throws HibernateException {
            BusinessSystem system = businessSystemService.getBusinessSystem(platform, packageName);
            Transaction transaction = session.beginTransaction();
            Query query = session
                  .createQuery("delete SuperHotSearch shs " + " where shs.hotSearch.id=? and shs.system.id=?");
            query.setLong(0, hsid);
            query.setLong(1, system.getId());
            int i = query.executeUpdate();
            transaction.commit();
            return i;
         }
      });
   }
   public void addSuperHotSearch(long hsid, String platform, String packageName) {
      BusinessSystem system = businessSystemService.getBusinessSystem(platform, packageName);
      SuperHotSearch superHotSearch = new SuperHotSearch();
      HotSearch hotSearch = new HotSearch();
      hotSearch.setId(hsid);
      superHotSearch.setHotSearch(hotSearch);
      superHotSearch.setSystem(system);
      superHotSearchDao.create(superHotSearch);
   }
   @Cacheable(value = "crgCache", key = "'getSuperHotSearchBySystemIdCache'+#id")
   @Override
   public List<SuperHotSearch> getSuperHotSearchBySystemIdCache(long id) {
      return getSuperHotSearchBySystemId(id);
   }
   @SuppressWarnings({ "unchecked", "rawtypes" })
   @Override
   public List<SuperHotSearch> getHotSearchSystem(Long id, Long systemId) {
      List<SuperHotSearch> listObj = (List<SuperHotSearch>) superHotSearchDao.excute(new HibernateCallback<List<SuperHotSearch>>() {
         public List<SuperHotSearch> doInHibernate(Session session) throws HibernateException {
            Query query = session.createQuery("from SuperHotSearch shs " + " where shs.hotSearch.id=? and shs.system.id=?");
            query.setLong(0, id);
            query.setLong(1,systemId);
                return query.list();
         }
      });
      return listObj;
   }
   @Override
   public Integer deleteSuper(Long id, Long systemId) {
      return (Integer) superHotSearchDao.excute(new HibernateCallback<Integer>() {
         public Integer doInHibernate(Session session) throws HibernateException {
            Transaction transaction = session.beginTransaction();
            Query query = session
                  .createQuery("delete SuperHotSearch shs " + " where shs.hotSearch.id=? and shs.system.id=?");
            query.setLong(0, id);
            query.setLong(1, systemId);
            int i = query.executeUpdate();
            transaction.commit();
            return i;
         }
      });
   }
   @Override
   public void addSuper(Long id, BusinessSystem system) {
      SuperHotSearch superHotSearch = new SuperHotSearch();
      HotSearch hotSearch = new HotSearch();
      hotSearch.setId(id);
      superHotSearch.setHotSearch(hotSearch);
      superHotSearch.setSystem(system);
      superHotSearchDao.create(superHotSearch);
   }
}
package com.yeshi.fanli.service.impl.config;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
import com.yeshi.fanli.dao.mybatis.goods.SuperHotSearchMapper;
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.SuperHotSearchService;
@Service
public class SuperHotSearchSerivceImpl implements SuperHotSearchService {
   @Resource
   private SuperHotSearchMapper superHotSearchMapper;
   @Resource
   private BusinessSystemService businessSystemService;
   public List<SuperHotSearch> getSuperHotSearchBySystemId(long id, Integer useType) {
      return superHotSearchMapper.listBySystemId(id, useType);
   }
   @Override
   public List<SuperHotSearch> listSuperHotSearch(List<Long> list) {
      if (list == null || list.size() == 0) {
         return null;
      }
      return superHotSearchMapper.listByHotSearchListID(list);
   }
   @Override
   @Cacheable(value = "crgCache", key = "'getSuperHotSearchBySystemIdCache-'+#id+'-'+#useType")
   public List<SuperHotSearch> getSuperHotSearchBySystemIdCache(long id, Integer useType) {
      return getSuperHotSearchBySystemId(id, useType);
   }
   @Override
   public List<SuperHotSearch> getHotSearchSystem(Long id, Long systemId) {
      return superHotSearchMapper.listBySystemIdAndHotSearchId(id, systemId);
   }
   @Override
   public void deleteSuper(Long id, Long systemId) {
      superHotSearchMapper.deleteBySystemIdAndHotSearchId(id,systemId);
   }
   @Override
   public void addSuper(Long id, BusinessSystem system) {
      SuperHotSearch superHotSearch = new SuperHotSearch();
      HotSearch hotSearch = new HotSearch();
      hotSearch.setId(id);
      superHotSearch.setHotSearch(hotSearch);
      superHotSearch.setSystem(system);
      superHotSearchMapper.insert(superHotSearch);
   }
}