package com.yeshi.fanli.goods.service.impl.recommend;
|
|
import java.io.Serializable;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import org.fanli.facade.goods.entity.recommend.RecommendBanner;
|
import org.fanli.facade.goods.entity.recommend.SuperRecommendBanner;
|
import org.fanli.facade.goods.service.recommend.SuperRecommendBannerService;
|
import org.fanli.facade.system.entity.common.SystemManage;
|
import org.fanli.facade.system.service.common.SystemManageService;
|
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 com.alibaba.dubbo.config.annotation.Service;
|
|
import com.yeshi.fanli.base.Constant;
|
import com.yeshi.fanli.goods.dao.recommend.SuperRecommendBannerDao;
|
|
@Service(version = "1.0.0")
|
public class SuperRecommendBannerServiceImpl implements SuperRecommendBannerService {
|
|
@Resource
|
private SuperRecommendBannerDao superRecommendBannerDao;
|
|
@Resource
|
private SystemManageService systemService;
|
|
@Cacheable(value = { "bannerCache" }, key = "#root.methodName+#system.id")
|
public List<SuperRecommendBanner> getSuperRecommendBannersBySystem(final SystemManage system) {
|
List<SuperRecommendBanner> list = superRecommendBannerDao.list(
|
"from SuperRecommendBanner srb where srb.system.id=? order by srb.recommendBanner.orderby",
|
new Serializable[] { system.getId() });
|
return list;
|
}
|
|
public List<SuperRecommendBanner> getSuperRecommendBanners(int pageIndex) {
|
|
int start = pageIndex * Constant.PAGE_SIZE;
|
|
List<SuperRecommendBanner> list = superRecommendBannerDao.list(
|
"from SuperRecommendBanner srb order by srb.recommendBanner.orderby", start, Constant.PAGE_SIZE,
|
new Serializable[] {});
|
|
return list;
|
}
|
|
public List<SuperRecommendBanner> getSuperRecommendBannersByBanners(List<Long> rbIdList) {
|
if (rbIdList.size() == 0) {
|
return new ArrayList<SuperRecommendBanner>();
|
}
|
StringBuffer sb = new StringBuffer(" from SuperRecommendBanner srb ");
|
Serializable[] serArr = new Serializable[rbIdList.size()];
|
for (int i = 0; i < rbIdList.size(); i++) {
|
if (i == 0) {
|
sb.append(" where srb.recommendBanner.id=? ");
|
} else {
|
sb.append(" or srb.recommendBanner.id=? ");
|
}
|
serArr[i] = rbIdList.get(i);
|
}
|
sb.append(" order by srb.recommendBanner.orderby ");
|
String hql = sb.toString();
|
|
return superRecommendBannerDao.list(hql, serArr);
|
|
}
|
|
public Integer deleteSuperRecommendBanner(final long rbid, final String platform, final String packageName) {
|
return (Integer) superRecommendBannerDao.excute(new HibernateCallback<Integer>() {
|
|
public Integer doInHibernate(Session session) throws HibernateException {
|
SystemManage system = systemService.getSystem(platform, packageName);
|
Transaction transaction = session.beginTransaction();
|
Query query = session.createQuery(
|
"delete SuperRecommendBanner srb " + " where srb.recommendBanner.id=? and srb.system.id=?");
|
query.setLong(0, rbid);
|
query.setLong(1, system.getId());
|
int i = query.executeUpdate();
|
transaction.commit();
|
return i;
|
}
|
});
|
}
|
|
public void addSuperRecommendBanner(long rbid, String platform, String packageName) {
|
SystemManage system = systemService.getSystem(platform, packageName);
|
SuperRecommendBanner superRecommendBanner = new SuperRecommendBanner();
|
RecommendBanner recommendBanner = new RecommendBanner();
|
recommendBanner.setId(rbid);
|
superRecommendBanner.setRecommendBanner(recommendBanner);
|
superRecommendBanner.setSystem(system);
|
superRecommendBannerDao.create(superRecommendBanner);
|
}
|
|
public void deleteSuperRecommendBanners(final long[] rbids) {
|
superRecommendBannerDao.excute(new HibernateCallback() {
|
|
public Object doInHibernate(Session session) throws HibernateException {
|
|
StringBuffer sb = new StringBuffer("delete from SuperRecommendBanner s ");
|
for (int i = 0; i < rbids.length; i++) {
|
if (i == 0) {
|
sb.append(" where s.recommendBanner.id=? ");
|
} else {
|
sb.append(" or s.recommendBanner.id=?");
|
}
|
}
|
Query query = session.createQuery(sb.toString());
|
for (int i = 0; i < rbids.length; i++) {
|
query.setLong(i, rbids[i]);
|
}
|
query.executeUpdate();
|
return null;
|
}
|
});
|
}
|
|
public List<SuperRecommendBanner> getSuperRecommendBannerBySystemId(long id, int strat, int count) {
|
return superRecommendBannerDao.list(
|
"from SuperRecommendBanner srs where srs.system.id=? order by srs.recommendBanner.orderby ", strat,
|
count, new Serializable[] { id });
|
|
}
|
|
public List<SuperRecommendBanner> getSuperRecommendBannerBySystemId(long id, int strat, int count, String key) {
|
return superRecommendBannerDao.list(
|
"from SuperRecommendBanner srs where srs.system.id=? and srs.recommendBanner.name like ?", strat, count,
|
new Serializable[] { id, key });
|
|
}
|
|
}
|