| | |
| | | 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; |
| | | |
| | | |
| | | |
| | | } |