yujian
2019-03-27 cdcbed9af813b2a02cdc01eefa24db8bec6b51a9
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/SuperGoodsClassServiceImpl.java
@@ -1,20 +1,14 @@
package com.yeshi.fanli.service.impl.goods;
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.SuperGoodsClassDao;
import com.yeshi.fanli.dao.mybatis.SuperGoodsClassMapper;
import com.yeshi.fanli.entity.bus.clazz.GoodsClass;
import com.yeshi.fanli.entity.bus.su.clazz.SuperGoodsClass;
import com.yeshi.fanli.entity.system.BusinessSystem;
@@ -25,95 +19,64 @@
public class SuperGoodsClassServiceImpl implements SuperGoodsClassService {
   @Resource
   private SuperGoodsClassDao superGoodsClassDao;
   private SuperGoodsClassMapper superGoodsClassMapper;
   
   @Resource
   private BusinessSystemService businessSystemService;
   
   
   @Override
   @Cacheable(value="classCache", key="'getSuperGoodsClassBySystemId-'+#id")
   public List<SuperGoodsClass> getSuperGoodsClassBySystemId(long id) {
      return superGoodsClassDao.list("from SuperGoodsClass sgc where sgc.system.id=? order by sgc.goodsClass.orderby ", new Serializable[]{id});
      return superGoodsClassMapper.listBySystemId(id);
   }
   @Override
   public List<SuperGoodsClass> getSuperGoodsClasss(List<Long> gcIdList) {
      if (gcIdList.size() == 0) {
      if (gcIdList == null || gcIdList.size() == 0) {
         return new ArrayList<SuperGoodsClass>();
      }
      StringBuffer sb = new StringBuffer(" from SuperGoodsClass sgc ");
      Serializable[] serArr = new Serializable[gcIdList.size()];
      for (int i = 0; i < gcIdList.size(); i++) {
         if (i == 0) {
            sb.append(" where sgc.goodsClass.id=? ");
         } else {
            sb.append(" or sgc.goodsClass.id=? ");
         }
         serArr[i] = gcIdList.get(i);
      }
      //sb.append(" order by sgc.goodsClass.orderby  ");
      String hql = sb.toString();
      return superGoodsClassDao.list(hql, serArr);
      return superGoodsClassMapper.listByGoodsclassIds(gcIdList);
   }
   public List<SuperGoodsClass> getSuperGoodsClassList(long id, int start,
         int count, String key) {
      return superGoodsClassDao.list("from SuperGoodsClass srs where srs.system.id=? and srs.goodsClass.name like ? order by sgc.goodsClass.orderby ",start,count,new Serializable[]{id, "%"+key+"%"});
   @Override
   public List<SuperGoodsClass> getSuperGoodsClassList(long id, int start,   int count, String key) {
      return superGoodsClassMapper.listBySystemIdAmdClassName(start, count, key, id);
      
   }
   
   @Override
   public List<SuperGoodsClass> getSuperGoodsClassAll(long id) {
      return superGoodsClassDao.list("from SuperGoodsClass srs where srs.system.id=?  order by sgc.goodsClass.orderby ",new Serializable[]{id});
   public Integer deleteSuperGoodsClass(final long gcid, final String platform, final String packageName) {
      
      BusinessSystem system = businessSystemService.getBusinessSystem(platform, packageName);
      if (system == null) {
         return 0;
      }
      return superGoodsClassMapper.deleteBySystemIdAndClassId(gcid, system.getId());
   }
   public Integer deleteSuperGoodsClass(final long gcid, final String platform,
         final String packageName) {
      return  (Integer) superGoodsClassDao.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 SuperGoodsClass shs "
                     + " where shs.goodsClass.id=? and shs.system.id=?");
            query.setLong(0, gcid);
            query.setLong(1, system.getId());
            int i = query.executeUpdate();
            transaction.commit();
            return i ;
         }
      });
   }
   public void addSuperGoodsClass(long gcid, String platform,
         String packageName) {
   @Override
   public void addSuperGoodsClass(long gcid, String platform, String packageName) {
      BusinessSystem system = businessSystemService.getBusinessSystem(platform,packageName);
      SuperGoodsClass superGoodsClass = new SuperGoodsClass();
      GoodsClass goodsClass = new GoodsClass();
      goodsClass.setId(gcid);
      SuperGoodsClass superGoodsClass = new SuperGoodsClass();
      superGoodsClass.setGoodsClass(goodsClass);;
      superGoodsClass.setSystem(system);
      superGoodsClassDao.create(superGoodsClass);
      superGoodsClassMapper.insert(superGoodsClass);
   }
   
   @Override
   public void deleteSuperGoodsClass(long gcid) {
      superGoodsClassMapper.deleteByClassId(gcid);
   }
   public void deleteSuperGoodsClass(final long gcid) {
      superGoodsClassDao.excute(new HibernateCallback() {
         public Object doInHibernate(Session session)
               throws HibernateException {
            Query query = session.createQuery("delete from SuperGoodsClass sgc where sgc.goodsClass.id=?");
            query.setParameter(0, gcid);
            query.executeUpdate();
            return null;
         }
      });
   @Override
   public void insertSelective(SuperGoodsClass record){
      superGoodsClassMapper.insertSelective(record);
   }
}