package com.newvideo.service.imp.news;
|
|
import java.io.Serializable;
|
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.newvideo.dao.news.NewsDao;
|
import com.newvideo.domain.DetailSystem;
|
import com.newvideo.domain.news.FoundNews;
|
import com.newvideo.domain.news.News;
|
import com.newvideo.domain.news.NewsImage;
|
import com.newvideo.domain.news.NewsTypeContent;
|
import com.newvideo.domain.news.SuperFoundNews;
|
|
@Service
|
public class SouGouService {
|
@Resource
|
private NewsDao newsDao;
|
|
@Resource
|
private NewsService newsService;
|
|
public NewsDao getNewsDao() {
|
return newsDao;
|
}
|
|
public void setNewsDao(NewsDao newsDao) {
|
this.newsDao = newsDao;
|
}
|
|
@SuppressWarnings("unchecked")
|
public String addWeiXinArticle(final News wx, final List<NewsImage> imgList) {
|
return newsDao.excute(new HibernateCallback<String>() {
|
public String doInHibernate(Session session) throws HibernateException {
|
wx.setImgList(null);
|
String id = "";
|
try {
|
List<News> list = session.createQuery("from News wx where wx.url=?").setParameter(0, wx.getUrl())
|
.list();
|
if (list == null || list.size() == 0) {
|
session.getTransaction().begin();
|
id = session.save(wx) + "";
|
for (NewsImage ni : imgList) {
|
ni.setNews(new News(id));
|
session.persist(ni);
|
}
|
session.flush();
|
session.getTransaction().commit();
|
}
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
session.getTransaction().rollback();
|
}
|
return id;
|
|
}
|
}) + "";
|
|
}
|
|
@SuppressWarnings("unchecked")
|
public void addWeiXinArticleTypeContent(final NewsTypeContent wx) {
|
newsDao.excute(new HibernateCallback() {
|
public Object doInHibernate(Session session) throws HibernateException {
|
|
try {
|
List<News> list = session
|
.createQuery("from NewsTypeContent wx where wx.content.id=? and wx.type.id=?")
|
.setParameter(0, wx.getContent().getId()).setParameter(1, wx.getType().getId()).list();
|
if (list == null || list.size() == 0) {
|
session.getTransaction().begin();
|
session.save(wx);
|
session.flush();
|
session.getTransaction().commit();
|
}
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
session.getTransaction().rollback();
|
}
|
return null;
|
}
|
});
|
|
}
|
|
// 更新发现里面的消息
|
public void updateFoundNews() {
|
newsDao.excute(new HibernateCallback() {
|
public Object doInHibernate(Session session) throws HibernateException {
|
try {
|
session.getTransaction().begin();
|
session.createQuery("delete from FoundNews").executeUpdate();
|
session.flush();
|
session.getTransaction().commit();
|
} catch (Exception e) {
|
e.printStackTrace();
|
session.getTransaction().rollback();
|
}
|
return null;
|
}
|
});
|
|
List<News> list = newsService.getNewsList(2, 1).subList(0, 3);
|
for (News news : list) {
|
FoundNews fn = new FoundNews();
|
fn.setCreatetime(System.currentTimeMillis() + "");
|
fn.setNews(news);
|
fn.setOrderby(0);
|
fn.setPicture("");
|
Serializable id = newsService.addFoundNews(fn);
|
fn.setId(id + "");
|
|
SuperFoundNews sf = new SuperFoundNews();
|
sf.setDetailSystem(new DetailSystem(42 + ""));
|
sf.setFoundNews(fn);
|
newsService.addSuperFoundNews(sf);
|
|
sf = new SuperFoundNews();
|
sf.setDetailSystem(new DetailSystem(43 + ""));
|
sf.setFoundNews(fn);
|
newsService.addSuperFoundNews(sf);
|
|
sf = new SuperFoundNews();
|
sf.setDetailSystem(new DetailSystem(44 + ""));
|
sf.setFoundNews(fn);
|
newsService.addSuperFoundNews(sf);
|
|
}
|
|
}
|
|
@SuppressWarnings({ "unchecked", "rawtypes" })
|
public void deleteBeforeTime(final long time) {
|
newsDao.excute(new HibernateCallback() {
|
public Object doInHibernate(Session session) throws HibernateException {
|
try {
|
|
List list = session.createSQLQuery("SELECT id FROM wk_news_news n where n.createtime<" + time)
|
.list();
|
|
for (int i = 0; i < list.size(); i++) {
|
session.getTransaction().begin();
|
session.createQuery("delete from NewsTypeContent nt where nt.content.id=" + list.get(i))
|
.executeUpdate();
|
session.createQuery("delete from NewsImage nt where nt.news.id=" + list.get(i)).executeUpdate();
|
List<SuperFoundNews> superList = session
|
.createQuery("FROM SuperFoundNews sf where sf.foundNews.news.id=" + list.get(i)).list();
|
for (SuperFoundNews sf : superList)
|
session.delete(sf);
|
|
session.createQuery("delete from FoundNews nt where nt.news.id=" + list.get(i)).executeUpdate();
|
session.createQuery("delete from News nt where nt.id=" + list.get(i)).executeUpdate();
|
session.flush();
|
session.getTransaction().commit();
|
}
|
|
} catch (Exception e) {
|
e.printStackTrace();
|
session.getTransaction().rollback();
|
}
|
return null;
|
}
|
});
|
|
}
|
|
}
|