package com.yeshi.buwan.service.imp.juhe;
|
|
import com.yeshi.buwan.dao.juhe.hanmi.HanmiShowDao;
|
import com.yeshi.buwan.dao.juhe.hanmi.HanmiShowEpisodeDao;
|
import com.yeshi.buwan.dao.juhe.hanmi.VideoHanmiMapDao;
|
import com.yeshi.buwan.domain.VideoDetailInfo;
|
import com.yeshi.buwan.domain.VideoResource;
|
import com.yeshi.buwan.domain.entity.PlayUrl;
|
import com.yeshi.buwan.domain.video.InternetSearchVideo;
|
import com.yeshi.buwan.service.imp.VideoResourceService;
|
import com.yeshi.buwan.service.inter.juhe.HanmiService;
|
import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService;
|
import com.yeshi.buwan.util.StringUtil;
|
import com.yeshi.buwan.util.factory.InternetSearchVideoFactory;
|
import com.yeshi.buwan.videos.hanmi.HanmiUtil;
|
import com.yeshi.buwan.videos.hanmi.entity.HanmiShow;
|
import com.yeshi.buwan.videos.hanmi.entity.HanmiShowEpisode;
|
import com.yeshi.buwan.videos.hanmi.entity.VideoHanmiMap;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
@Service
|
public class HanmiServiceImpl implements HanmiService {
|
@Resource
|
private HanmiShowDao hanmiShowDao;
|
|
@Resource
|
private HanmiShowEpisodeDao hanmiShowEpisodeDao;
|
|
@Resource
|
private VideoHanmiMapDao videoHanmiMapDao;
|
|
@Resource
|
private InternetSearchVideoService internetSearchVideoService;
|
|
@Resource
|
private VideoResourceService videoResourceService;
|
|
|
public List<VideoDetailInfo> getVideoDetailList(String videoId, int page, int pageSize) {
|
//查询专辑
|
VideoHanmiMap videoHanmiMap = videoHanmiMapDao.selectByVideoId(videoId);
|
if (videoHanmiMap == null)
|
return null;
|
List<HanmiShowEpisode> list = hanmiShowEpisodeDao.listByShowId(videoHanmiMap.getShowId(), (page - 1) * pageSize, pageSize);
|
List<VideoDetailInfo> detailInfoList = new ArrayList<>();
|
if (list != null)
|
for (HanmiShowEpisode a : list)
|
detailInfoList.add(HanmiUtil.convertEpisodeToVideoDetail(a));
|
return detailInfoList;
|
}
|
|
// 获取最新一集的详情
|
public VideoDetailInfo getLatestVideoDetail(String videoId) {
|
VideoHanmiMap videoHanmiMap = videoHanmiMapDao.selectByVideoId(videoId);
|
if (videoHanmiMap == null)
|
return null;
|
HanmiShowEpisode episode = hanmiShowEpisodeDao.getLatestEpisode(videoHanmiMap.getShowId());
|
if (episode != null)
|
return HanmiUtil.convertEpisodeToVideoDetail(episode);
|
return null;
|
}
|
|
@Override
|
public void saveShow(HanmiShow show) {
|
if (show.getCreateTime() == null) {
|
show.setCreateTime(new Date());
|
}
|
show.setUpdateTime(new Date());
|
hanmiShowDao.save(show);
|
if (show.getEpisodeList() != null) {
|
for (HanmiShowEpisode episode : show.getEpisodeList()) {
|
if (episode.getShowId() == null) {
|
episode.setShowId(show.getId());
|
}
|
if (episode.getCreateTime() == null) {
|
episode.setCreateTime(new Date());
|
}
|
if (episode.getId() == null) {
|
episode.setId(HanmiShowEpisode.createId(show.getId(), episode.getTag()));
|
}
|
// if (hanmiShowEpisodeDao.get(episode.getId()) != null)
|
// continue;
|
hanmiShowEpisodeDao.save(episode);
|
}
|
}
|
}
|
|
@Override
|
public void addToInternetSearch(HanmiShow show) throws Exception {
|
if (StringUtil.isNullOrEmpty(show.getTitle())) {
|
return;
|
}
|
InternetSearchVideo video = InternetSearchVideoFactory.create(show);
|
if (internetSearchVideoService.save(video) == null) {
|
return;
|
}
|
VideoHanmiMap map = new VideoHanmiMap();
|
map.setShowId(show.getId());
|
map.setVideoId(video.getId());
|
map.setCreateTime(new Date());
|
videoHanmiMapDao.save(map);
|
}
|
|
@Override
|
public PlayUrl getPlayUrl(String detailSystemId, int resourceId, String id, String videoId) {
|
HanmiShowEpisode album = hanmiShowEpisodeDao.get(id);
|
VideoResource vr = videoResourceService.getResource(resourceId + "");
|
int t = HanmiUtil.getPlayType(album);
|
PlayUrl pu = new PlayUrl();
|
pu.setParams("");
|
pu.setPlayType(t);
|
pu.setResource(vr);
|
if (t == HanmiUtil.PLAY_NONE) {
|
pu.setUrl("");
|
} else if (t == HanmiUtil.PLAY_HTML || t == HanmiUtil.PLAY_SDK) {
|
pu.setUrl(album.getPlayUrl());
|
}
|
return pu;
|
}
|
|
@Override
|
public int getShowType(String videoid) {
|
VideoHanmiMap map = videoHanmiMapDao.selectByVideoId(videoid);
|
if (map != null) {
|
HanmiShow show = hanmiShowDao.get(map.getShowId());
|
if (show != null) {
|
if ("电视剧".equalsIgnoreCase(show.getType())) {
|
return 2;
|
}
|
}
|
}
|
return 1;
|
}
|
|
@Override
|
public HanmiShow selectShowById(String id) {
|
return hanmiShowDao.get(id);
|
}
|
|
@Override
|
public long countById(String id) {
|
return hanmiShowEpisodeDao.countByShowId(id);
|
}
|
|
@Override
|
public void deleteByShowId(String id) {
|
hanmiShowDao.delete(id);
|
long count = hanmiShowEpisodeDao.countByShowId(id);
|
int page = (int) count / 100 + 1;
|
for (int i = 0; i < page; i++) {
|
List<HanmiShowEpisode> episodes = hanmiShowEpisodeDao.listByShowId(id, i * 100, 100);
|
for (HanmiShowEpisode episode : episodes) {
|
hanmiShowEpisodeDao.delete(episode.getId());
|
}
|
}
|
VideoHanmiMap bean = videoHanmiMapDao.selectByShowId(id);
|
if (bean != null) {
|
videoHanmiMapDao.delete(bean.getVideoId());
|
//删除资源
|
internetSearchVideoService.removeResourceId(bean.getVideoId(), HanmiUtil.RESOURCE_ID);
|
}
|
}
|
|
@Override
|
public List<HanmiShow> listByIds(List<String> idsList) {
|
return hanmiShowDao.listByIds(idsList);
|
}
|
|
@Override
|
public HanmiShow getShowDetail(String id) {
|
HanmiShow show = hanmiShowDao.get(id);
|
if (show != null) {
|
show.setEpisodeList(hanmiShowEpisodeDao.listByShowId(id, 0, 1000));
|
}
|
return show;
|
}
|
|
@Override
|
public List<HanmiShow> listAll(int page, int pageSize) {
|
return hanmiShowDao.listAll((page-1)*pageSize, pageSize);
|
|
}
|
|
@Override
|
public long countAll() {
|
return hanmiShowDao.countAll();
|
}
|
}
|