package com.newvideo.service.imp.zhibo;
|
|
import java.util.ArrayList;
|
import java.util.HashSet;
|
import java.util.Iterator;
|
import java.util.List;
|
import java.util.Set;
|
|
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.zhibo.LJFLiveDataDao;
|
import com.newvideo.zhibo.entity.ZhiBoStatistics;
|
import com.newvideo.zhibo.ljf.LiuJianFangApi;
|
import com.newvideo.zhibo.ljf.entity.LJFLiveData;
|
|
//六间房直播
|
@Service
|
public class LJFLiveService {
|
@Resource
|
private LJFLiveDataDao ljfLiveDataDao;
|
|
public void addLJFLiveData(LJFLiveData data) {
|
ljfLiveDataDao.create(data);
|
}
|
|
// 删除数据 同时增加数据
|
|
@SuppressWarnings("rawtypes")
|
public void updateData(final List<LJFLiveData> list) {
|
ljfLiveDataDao.excute(new HibernateCallback() {
|
public Object doInHibernate(Session session) throws HibernateException {
|
session.getTransaction().begin();
|
session.createQuery("delete from LJFLiveData").executeUpdate();
|
Iterator<LJFLiveData> iterator = list.iterator();
|
Set<String> ridSet = new HashSet<String>();
|
while (iterator.hasNext()) {
|
LJFLiveData liveData = iterator.next();
|
String rid = liveData.getRid();
|
if(ridSet.contains(rid)){
|
iterator.remove();
|
}else{
|
ridSet.add(rid);
|
}
|
}
|
for (LJFLiveData data : list) {
|
session.persist(data);
|
Object count = session
|
.createQuery("select count(*) from ZhiBoStatistics s where s.rid=? and s.type=?")
|
.setParameter(0, data.getRid()).setParameter(1, 1).uniqueResult();
|
if (Integer.parseInt(count + "") <= 0)
|
session.persist(new ZhiBoStatistics(data.getRid(), 1, 0));
|
}
|
session.flush();
|
session.getTransaction().commit();
|
return null;
|
}
|
});
|
}
|
|
public void update() {
|
List<LJFLiveData> list = new ArrayList<LJFLiveData>();
|
for (int p = 1; p < 100; p++) {
|
List<LJFLiveData> li = (LiuJianFangApi.liveList("", p));
|
if (li != null && li.size() > 0)
|
list.addAll(li);
|
}
|
updateData(list);
|
}
|
|
}
|