package com.yeshi.buwan.service.imp.juhe;
|
|
import com.yeshi.buwan.dao.juhe.bilibili.BilibiliEpInfoDao;
|
import com.yeshi.buwan.dao.juhe.bilibili.BilibiliMediaInfoDao;
|
import com.yeshi.buwan.dao.juhe.bilibili.BilibiliSearchVideoMapDao;
|
import com.yeshi.buwan.dao.juhe.bilibili.BilibiliVideoDao;
|
import com.yeshi.buwan.domain.VideoDetailInfo;
|
import com.yeshi.buwan.domain.video.InternetSearchVideo;
|
import com.yeshi.buwan.service.inter.juhe.BilibiliVideoService;
|
import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
|
import com.yeshi.buwan.util.factory.InternetSearchVideoFactory;
|
import com.yeshi.buwan.videos.bilibili.BilibiliUtil;
|
import com.yeshi.buwan.videos.bilibili.entity.BilibiliEpInfo;
|
import com.yeshi.buwan.videos.bilibili.entity.BilibiliMediaInfo;
|
import com.yeshi.buwan.videos.bilibili.entity.BilibiliSearchVideoMap;
|
import com.yeshi.buwan.videos.bilibili.entity.BilibiliVideo;
|
import org.springframework.data.mongodb.core.query.Criteria;
|
import org.springframework.data.mongodb.core.query.Query;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
@Service
|
public class BilibiliVideoServiceImpl implements BilibiliVideoService {
|
@Resource
|
private BilibiliMediaInfoDao bilibiliMediaInfoDao;
|
@Resource
|
private BilibiliEpInfoDao bilibiliEpInfoDao;
|
@Resource
|
private BilibiliVideoDao bilibiliVideoDao;
|
@Resource
|
private BilibiliSearchVideoMapDao bilibiliSearchVideoMapDao;
|
@Resource
|
private InternetSearchVideoService internetSearchVideoService;
|
|
|
@Override
|
public void save(BilibiliMediaInfo mediaInfo) throws Exception {
|
|
if (mediaInfo.getCreateTime() == null)
|
mediaInfo.setCreateTime(new Date());
|
bilibiliMediaInfoDao.save(mediaInfo);
|
|
if (mediaInfo.getEpList() != null) {
|
int orderBy = 0;
|
for (BilibiliEpInfo ep : mediaInfo.getEpList()) {
|
ep.setMediaId(mediaInfo.getMedia_id());
|
ep.setOrderBy(++orderBy);
|
if (ep.getCreateTime() == null)
|
ep.setCreateTime(new Date());
|
bilibiliEpInfoDao.save(ep);
|
}
|
}
|
|
}
|
|
@Override
|
public void save(BilibiliVideo bilibiliVideo) throws Exception {
|
if (bilibiliVideo.getCreateTime() == null)
|
bilibiliVideo.setCreateTime(new Date());
|
bilibiliVideoDao.save(bilibiliVideo);
|
}
|
|
@Override
|
public BilibiliMediaInfo getMediaDetail(Long mediaId) {
|
BilibiliMediaInfo mediaInfo = bilibiliMediaInfoDao.get(mediaId);
|
if (mediaInfo != null) {
|
List<BilibiliEpInfo> epInfoList = bilibiliEpInfoDao.listByMediaId(mediaId, 0, 100);
|
mediaInfo.setEpList(epInfoList);
|
}
|
return mediaInfo;
|
}
|
|
@Override
|
public BilibiliMediaInfo getSimpleMediaDetail(Long mediaId) {
|
Query query = new Query();
|
query.addCriteria(Criteria.where("_id").is(mediaId));
|
return bilibiliMediaInfoDao.findOne(query);
|
}
|
|
@Override
|
public List<BilibiliEpInfo> getEPVideoList(Long mediaId, int page, int pageSize) {
|
List<BilibiliEpInfo> epInfoList = bilibiliEpInfoDao.listByMediaId(mediaId, (page - 1) * pageSize, pageSize);
|
return epInfoList;
|
}
|
|
@Override
|
public BilibiliEpInfo selectEPInfoByPrimaryKey(Long id) {
|
return bilibiliEpInfoDao.get(id);
|
}
|
|
@Override
|
public BilibiliVideo selectVideoByPrimaryKey(Long id) {
|
return bilibiliVideoDao.get(id);
|
}
|
|
|
@Override
|
public long count(String category) {
|
return 0;
|
}
|
|
@Override
|
public List<BilibiliMediaInfo> list(String category, int page, int pageSize) {
|
return null;
|
}
|
|
@Override
|
public List<VideoDetailInfo> getVideoDetailList(String videoid, int page, int pageSize) {
|
BilibiliSearchVideoMap map = selectMapByVideoId(videoid);
|
if (map == null)
|
return null;
|
|
if (map.getMediaId() != null) {
|
BilibiliMediaInfo bilibiliMediaInfo = bilibiliMediaInfoDao.get(map.getMediaId());
|
List<BilibiliEpInfo> bilibiliEpInfos = bilibiliEpInfoDao.listByMediaId(map.getMediaId(), (page - 1) * pageSize, pageSize);
|
List<VideoDetailInfo> list = BilibiliUtil.convertToDetail(bilibiliEpInfos, bilibiliMediaInfo);
|
return list;
|
} else if (map.getVid() != null) {
|
BilibiliVideo video = bilibiliVideoDao.get(map.getVid());
|
VideoDetailInfo detailInfo = BilibiliUtil.convertToDetail(video);
|
if (detailInfo == null)
|
return null;
|
List<VideoDetailInfo> detailInfoList = new ArrayList<>();
|
detailInfoList.add(detailInfo);
|
return detailInfoList;
|
}
|
|
|
return null;
|
}
|
|
@Override
|
public BilibiliSearchVideoMap selectMapByVideoId(String videoId) {
|
return bilibiliSearchVideoMapDao.selectByVideoId(videoId);
|
}
|
|
@Override
|
public void addToInternetSearch(BilibiliMediaInfo mediaInfo) throws Exception {
|
if (mediaInfo == null)
|
return;
|
save(mediaInfo);
|
InternetSearchVideo video = InternetSearchVideoFactory.create(mediaInfo);
|
if (internetSearchVideoService.save(video) == null) {
|
return;
|
}
|
BilibiliSearchVideoMap map = new BilibiliSearchVideoMap();
|
map.setMediaId(mediaInfo.getMedia_id());
|
map.setVideoId(video.getId());
|
map.setCreateTime(new Date());
|
bilibiliSearchVideoMapDao.save(map);
|
}
|
|
@Override
|
public void addToInternetSearch(BilibiliVideo video, Integer videoType) throws Exception {
|
save(video);
|
InternetSearchVideo internetSearchVideo = InternetSearchVideoFactory.create(video, videoType);
|
if (internetSearchVideoService.save(internetSearchVideo) == null) {
|
return;
|
}
|
BilibiliSearchVideoMap map = new BilibiliSearchVideoMap();
|
map.setVid(video.getAid() + "");
|
map.setVideoId(internetSearchVideo.getId());
|
map.setCreateTime(new Date());
|
bilibiliSearchVideoMapDao.save(map);
|
}
|
}
|