package com.yeshi.buwan.service.imp;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import javax.annotation.Resource;
|
|
import org.hibernate.HibernateException;
|
import org.hibernate.Session;
|
import org.springframework.orm.hibernate4.HibernateCallback;
|
import org.springframework.stereotype.Service;
|
|
import com.yeshi.buwan.dao.SuperUserBannerDao;
|
import com.yeshi.buwan.dao.UserBannerDao;
|
import com.yeshi.buwan.domain.DetailSystem;
|
import com.yeshi.buwan.domain.SuperUserBanner;
|
import com.yeshi.buwan.domain.SystemInfo;
|
import com.yeshi.buwan.domain.UserBanner;
|
import com.yeshi.buwan.domain.web.DetailSystemSelect;
|
import com.yeshi.buwan.domain.web.UserBannerAdmin;
|
import com.yeshi.buwan.util.Constant;
|
|
@Service
|
public class UserBannerService {
|
@Resource
|
private UserBannerDao userBannerDao;
|
@Resource
|
private SuperUserBannerDao superUserBannerDao;
|
|
|
public List<UserBanner> getUserBanner() {
|
List<UserBanner> list = userBannerDao.list("from UserBanner");
|
return list;
|
}
|
|
public List<UserBanner> getUserBanner(SystemInfo system) {
|
List<UserBanner> list = userBannerDao.list("from UserBanner u where u.system.id=" + system.getId());
|
return list;
|
}
|
|
public UserBanner getUserBannerById(String id) {
|
return userBannerDao.find(UserBanner.class, id);
|
}
|
|
public void updateUserBanner(UserBanner userBanner) {
|
userBannerDao.update(userBanner);
|
}
|
|
public long getUserBannerCount() {
|
|
return userBannerDao.getCount("select count(*) from UserBanner");
|
}
|
|
@SuppressWarnings("unchecked")
|
public void deleteUserBanner(final String id) {
|
userBannerDao.excute(new HibernateCallback() {
|
public Object doInHibernate(Session session) throws HibernateException {
|
try {
|
List<SuperUserBanner> list = session.createQuery("from SuperUserBanner sv where sv.userBanner.id=?")
|
.setParameter(0, id).list();
|
session.getTransaction().begin();
|
for (SuperUserBanner sv : list)
|
session.delete(sv);
|
session.delete(new UserBanner(id));
|
session.flush();
|
session.getTransaction().commit();
|
} catch (Exception e) {
|
e.printStackTrace();
|
session.getTransaction().rollback();
|
}
|
return null;
|
}
|
});
|
|
}
|
|
public void addUserBanner(UserBanner banner) {
|
userBannerDao.create(banner);
|
}
|
|
@SuppressWarnings("unchecked")
|
public List<UserBannerAdmin> getUserBannerAdmin(final int detailSystem, final int page) {
|
|
return (List<UserBannerAdmin>) userBannerDao.excute(new HibernateCallback<List<UserBannerAdmin>>() {
|
public List<UserBannerAdmin> doInHibernate(Session session) throws HibernateException {
|
List<UserBannerAdmin> zhiBoClassList = new ArrayList<UserBannerAdmin>();
|
try {
|
List<DetailSystem> detailSystemList = session.createQuery("from DetailSystem").list();
|
String sql = "";
|
if (detailSystem > 0)
|
sql = "select sh.userBanner from SuperUserBanner sh where sh.detailSystem.id=" + detailSystem
|
+ " order by sh.createtime desc";
|
else
|
sql = "from UserBanner sh order by sh.createtime desc";
|
|
List<UserBanner> list = session.createQuery(sql).setFirstResult((page - 1) * Constant.pageCount)
|
.setMaxResults(Constant.pageCount).list();
|
for (UserBanner vb : list) {
|
List<DetailSystem> detailSystemS = session
|
.createQuery("select vb.detailSystem from SuperUserBanner vb where vb.userBanner.id=?")
|
.setParameter(0, vb.getId()).list();
|
|
List<DetailSystemSelect> dssList = new ArrayList<DetailSystemSelect>();
|
|
for (DetailSystem ds : detailSystemList) {
|
DetailSystemSelect dss = new DetailSystemSelect();
|
dss.setDetailSystem(ds);
|
dss.setSelected(false);
|
dssList.add(dss);
|
}
|
|
// �����Ѿ����ڵ�
|
for (DetailSystem ds : detailSystemS) {
|
for (DetailSystemSelect dss : dssList) {
|
if (dss.getDetailSystem().getId().equalsIgnoreCase(ds.getId())) {
|
dss.setSelected(true);
|
break;
|
}
|
}
|
}
|
SuperUserBanner sz = new SuperUserBanner();
|
sz.setDetailSystem(null);
|
sz.setUserBanner(vb);
|
zhiBoClassList.add(new UserBannerAdmin(sz, dssList));
|
}
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return zhiBoClassList;
|
}
|
});
|
|
}
|
|
public long getUserBannerAdminCount(int detailSystem) {
|
String sql = "";
|
if (detailSystem > 0)
|
sql = "select count(*) from wk_video_super_userbanner zb where zb.detailsystem=" + detailSystem;
|
else
|
sql = "select count(*) from wk_video_user_banner";
|
|
return userBannerDao.getCountSQL(sql);
|
}
|
|
@SuppressWarnings({ "unchecked", "rawtypes" })
|
public void deleteUserBannerAdmin(final String userbannerid, final String detailSystemId) {
|
userBannerDao.excute(new HibernateCallback() {
|
public Object doInHibernate(Session session) throws HibernateException {
|
try {
|
List<SuperUserBanner> list = session
|
.createQuery("from SuperUserBanner vb where vb.userBanner.id=? and vb.detailSystem.id=?")
|
.setParameter(0, userbannerid).setParameter(1, detailSystemId).list();
|
session.getTransaction().begin();
|
if (list != null && list.size() > 0) {
|
for (SuperUserBanner vb : list)
|
session.delete(vb);
|
}
|
session.flush();
|
session.getTransaction().commit();
|
} catch (Exception e) {
|
e.printStackTrace();
|
session.getTransaction().rollback();
|
}
|
return null;
|
}
|
});
|
|
}
|
|
/**
|
* 用户banner
|
*/
|
public List<UserBanner> getUserBannerList(String detailSystem) {
|
return userBannerDao
|
.list("select hs.userBanner FROM SuperUserBanner hs where hs.detailSystem.id=" + detailSystem);
|
}
|
|
public void addSuperUserBanner(SuperUserBanner sv) {
|
|
List<SuperUserBanner> list = superUserBannerDao.list("from SuperUserBanner sv where sv.userBanner.id="
|
+ sv.getUserBanner().getId() + " and sv.detailSystem.id=" + sv.getDetailSystem().getId());
|
if (list != null && list.size() > 0)
|
return;
|
superUserBannerDao.create(sv);
|
}
|
|
public void updateSuperUserBanner(SuperUserBanner hotSearch) {
|
superUserBannerDao.update(hotSearch);
|
}
|
|
public void deleteSuperUserBanner(SuperUserBanner hotSearch) {
|
superUserBannerDao.delete(hotSearch);
|
}
|
|
@SuppressWarnings("unchecked")
|
public void updateSuperUserBannerList(final String detailSystemId, final List<SuperUserBanner> typeList) {
|
userBannerDao.excute(new HibernateCallback() {
|
public Object doInHibernate(Session session) throws HibernateException {
|
try {
|
List<SuperUserBanner> list = session
|
.createQuery("from SuperUserBanner sh where sh.detailSystem.id=" + detailSystemId).list();
|
session.getTransaction().begin();
|
for (SuperUserBanner ad : list) {
|
session.delete(ad);
|
}
|
|
for (SuperUserBanner videoType : typeList) {
|
session.persist(videoType);
|
}
|
session.flush();
|
session.getTransaction().commit();
|
} catch (Exception e) {
|
e.printStackTrace();
|
session.getTransaction().rollback();
|
}
|
return null;
|
}
|
});
|
|
}
|
}
|