admin
2025-02-25 30d8e227e8d823b6c38c3b9c90ac2df03b63befe
fanli/src/main/java/com/yeshi/fanli/service/impl/goods/RecommendBannerV2ServiceImpl.java
@@ -1,238 +1,26 @@
package com.yeshi.fanli.service.impl.goods;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.transaction.Transactional;
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.RecommendBannerV2Dao;
import com.yeshi.fanli.entity.admin.RecommendBannerV2Admin;
import com.yeshi.fanli.entity.bus.recommend.RecommendBannerV2;
import com.yeshi.fanli.entity.bus.su.recommend.SuperRecommendBannerV2;
import com.yeshi.fanli.entity.system.System;
import com.yeshi.fanli.service.inter.common.JumpDetailV2Service;
import com.yeshi.fanli.service.inter.config.SystemService;
import com.yeshi.fanli.service.inter.goods.RecommendBannerV2Service;
import com.yeshi.fanli.service.inter.goods.SuperRecommendBannerV2Service;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.Utils;
@Service
public class RecommendBannerV2ServiceImpl implements RecommendBannerV2Service {
   @Resource
   private RecommendBannerV2Dao recommendBannerV2Dao;
   @Resource
   private SuperRecommendBannerV2Service superRecommendBannerV2Service;
   @Resource
   private SystemService systemService;
   public List<RecommendBannerV2> getRecommendBanners() {
      return recommendBannerV2Dao.list("from RecommendBannerV2 rb order by rb.orderby");
   }
   public void addRecommendBanner(RecommendBannerV2 banner) {
      banner.setCreatetime(java.lang.System.currentTimeMillis());
      recommendBannerV2Dao.create(banner);
   }
   @SuppressWarnings("unchecked")
   public List<RecommendBannerV2Admin> getRecommendBanners(int pageIndex, String platform, String packages, String key) {
      final int strat = pageIndex * Constant.PAGE_SIZE;
      platform = Utils.getMap().get(platform);
      com.yeshi.fanli.entity.system.System system = systemService.getSystem(platform, packages);
      List<RecommendBannerV2> recommendBannerList = null;
      List<SuperRecommendBannerV2> superRecommendBannerList = null;
      Map<Long, RecommendBannerV2Admin> recommendBannerAdminMap = new HashMap<Long, RecommendBannerV2Admin>();
      List<RecommendBannerV2Admin> recommendBannerAdmin = new ArrayList<RecommendBannerV2Admin>();
      if (system == null) {
         if ("".equals(key.trim())) {
            recommendBannerList = (List<RecommendBannerV2>) recommendBannerV2Dao.excute(new HibernateCallback<List<RecommendBannerV2>>() {
               public List<RecommendBannerV2> doInHibernate(Session session) throws HibernateException {
                  Query query = session.createQuery(" from RecommendBannerV2 rb order by rb.orderby ");
                  query.setFirstResult(strat);
                  query.setMaxResults(Constant.PAGE_SIZE);
                  return query.list();
               }
            });
         } else {
            final String likekey = "%" + key + "%";
            recommendBannerList = (List<RecommendBannerV2>) recommendBannerV2Dao.excute(new HibernateCallback<List<RecommendBannerV2>>() {
               public List<RecommendBannerV2> doInHibernate(Session session) throws HibernateException {
                  Query query = session.createQuery(" from RecommendBannerV2 rs where rs.name like ? order by rs.orderby ");
                  query.setFirstResult(strat);
                  query.setMaxResults(Constant.PAGE_SIZE);
                  query.setParameter(0, likekey);
                  return query.list();
               }
            });
         }
         List<Long> rsIdList = new ArrayList<Long>();
         for (RecommendBannerV2 rs : recommendBannerList) {
            rsIdList.add(rs.getId());
         }
         superRecommendBannerList = superRecommendBannerV2Service.getSuperRecommendBannersByBanners(rsIdList);
         Map<Long, List<System>> superMap = new HashMap<Long, List<System>>();
         Long rsId = null;
         List<System> systemList = null;
         for (SuperRecommendBannerV2 srs : superRecommendBannerList) {
            rsId = srs.getRecommendBanner().getId();
            systemList = superMap.get(rsId);
            if (systemList == null) {
               systemList = new ArrayList<System>();
            }
            systemList.add(srs.getSystem());
            superMap.put(rsId, systemList);
         }
         RecommendBannerV2Admin rsa = null;
         for (RecommendBannerV2 recommendBanner : recommendBannerList) {
            long id = recommendBanner.getId();
            rsa = recommendBannerAdminMap.get(id);
            if (rsa == null) {
               rsa = new RecommendBannerV2Admin();
            }
            List<System> list = superMap.get(id);
            if (list != null) {
               rsa.getSystemList().addAll(superMap.get(id));
            }
            rsa.setRecommendBanner(recommendBanner);
            recommendBannerAdminMap.put(id, rsa);
         }
      } else if (system != null) {
         if ("".equals(key.trim())) {
            superRecommendBannerList = superRecommendBannerV2Service.getSuperRecommendBannerBySystemId(system.getId(), strat, Constant.PAGE_SIZE);
         } else {
            String likekey = "%" + key + "%";
            superRecommendBannerList = superRecommendBannerV2Service.getSuperRecommendBannerBySystemId(system.getId(), strat, Constant.PAGE_SIZE,
                  likekey);
         }
         List<Long> rsIdList = new ArrayList<Long>();
         for (SuperRecommendBannerV2 superRecommendBanner : superRecommendBannerList) {
            RecommendBannerV2 recommendBanner = superRecommendBanner.getRecommendBanner();
            rsIdList.add(recommendBanner.getId());
         }
         superRecommendBannerList = superRecommendBannerV2Service.getSuperRecommendBannersByBanners(rsIdList);
         RecommendBannerV2Admin rsa = null;
         for (SuperRecommendBannerV2 superRecommendBanner : superRecommendBannerList) {
            RecommendBannerV2 recommendBanner = superRecommendBanner.getRecommendBanner();
            rsa = recommendBannerAdminMap.get(recommendBanner.getId());
            if (rsa == null) {
               rsa = new RecommendBannerV2Admin(recommendBanner);
            }
            rsa.getSystemList().add(superRecommendBanner.getSystem());
            recommendBannerAdminMap.put(recommendBanner.getId(), rsa);
         }
      }
      Map<Long, RecommendBannerV2Admin> obMap = (LinkedHashMap<Long, RecommendBannerV2Admin>) Utils.orderBy(recommendBannerAdminMap);
      Collection<RecommendBannerV2Admin> values = obMap.values();
      recommendBannerAdmin.addAll(values);
      return recommendBannerAdmin;
   }
   public long getCount() {
      return recommendBannerV2Dao.getCount("select count(*) from RecommendBannerV2");
   }
   @Transactional
   public void deleteBanners(final long[] rbids) {
      superRecommendBannerV2Service.deleteSuperRecommendBanners(rbids);
      recommendBannerV2Dao.excute(new HibernateCallback() {
         public Object doInHibernate(Session session) throws HibernateException {
            StringBuffer sb = new StringBuffer("delete b from yeshi_ec_recommend_banner_v2 b ");
            for (int i = 0; i < rbids.length; i++) {
               if (i == 0) {
                  sb.append(" where b.id=? ");
               } else {
                  sb.append(" or b.id=?");
               }
            }
            Query query = session.createSQLQuery(sb.toString());
            for (int i = 0; i < rbids.length; i++) {
               query.setLong(i, rbids[i]);
            }
            query.executeUpdate();
            return null;
         }
      });
   }
   public RecommendBannerV2 getRecommendBanner(long id) {
      RecommendBannerV2 banner = recommendBannerV2Dao.find(RecommendBannerV2.class, id);
      return banner;
   }
   public void updateBanner(RecommendBannerV2 banner) {
      recommendBannerV2Dao.update(banner);
   }
   public int getCount(String platform, String packages, final String key) {
      platform = Utils.getMap().get(platform);
      final System system = systemService.getSystem(platform, packages);
      return (Integer) recommendBannerV2Dao.excute(new HibernateCallback<Integer>() {
         public Integer doInHibernate(Session session) throws HibernateException {
            String k = "%" + key + "%";
            Query query;
            if (system == null) {
               query = session.createQuery("select count(rb.id) from RecommendBannerV2 rb where rb.name like ? ");
               query.setParameter(0, k);
            } else {
               query = session
                     .createQuery("select count(srb.id) from SuperRecommendBannerV2 srb where srb.system.id = ? and srb.recommendBanner.name like ?");
               query.setParameter(0, system.getId());
               query.setParameter(1, k);
            }
            Long result = (Long) query.uniqueResult();
            int intValue = result.intValue();
            return intValue;
         }
      });
   }
   public void updateBannerJumpDetail(final long id) {
      recommendBannerV2Dao.excute(new HibernateCallback() {
         public Object doInHibernate(Session session) throws HibernateException {
            Query query = session.createQuery("update RecommendBannerV2 rb set rb.jumpDetail.id = NULL where  rb.jumpDetail.id = ?");
            query.setParameter(0, id);
            return query.executeUpdate();
         }
      });
   }
}
package com.yeshi.fanli.service.impl.goods;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.yeshi.fanli.dao.mybatis.RecommendBannerV2Mapper;
import com.yeshi.fanli.service.inter.config.BusinessSystemService;
import com.yeshi.fanli.service.inter.goods.RecommendBannerV2Service;
import com.yeshi.fanli.service.inter.goods.SuperRecommendBannerV2Service;
@Service
public class RecommendBannerV2ServiceImpl implements RecommendBannerV2Service {
   @Resource
   private RecommendBannerV2Mapper recommendBannerV2Mapper;
   @Resource
   private SuperRecommendBannerV2Service superRecommendBannerV2Service;
   @Resource
   private BusinessSystemService businessSystemService;
}