| | |
| | | package com.yeshi.buwan.service.imp.juhe; |
| | | |
| | | import com.yeshi.buwan.dao.juhe.tencent.TencentCoverInfoDao; |
| | | import com.yeshi.buwan.dao.juhe.tencent.TencentCoverVideoDao; |
| | | import com.yeshi.buwan.dao.juhe.tencent.TencentSearchVideoMapDao; |
| | | import com.yeshi.buwan.domain.VideoDetailInfo; |
| | | import com.yeshi.buwan.domain.video.InternetSearchVideo; |
| | | import com.yeshi.buwan.service.inter.juhe.InternetSearchVideoService; |
| | | import com.yeshi.buwan.service.inter.juhe.TencentVideoService; |
| | | import com.yeshi.buwan.tencent.entity.TencentCoverInfo; |
| | | import com.yeshi.buwan.youku.entity.YouKuShowDetail; |
| | | import com.yeshi.buwan.youku.entity.YouKuVideo; |
| | | import com.yeshi.buwan.videos.tencent.TencentVideoUtil; |
| | | import com.yeshi.buwan.videos.tencent.entity.TencentCoverInfo; |
| | | import com.yeshi.buwan.videos.tencent.entity.TencentCoverVideo; |
| | | import com.yeshi.buwan.videos.tencent.entity.TencentSearchVideoMap; |
| | | import com.yeshi.buwan.util.factory.InternetSearchVideoFactory; |
| | | import org.springframework.data.domain.Sort; |
| | | 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; |
| | | |
| | |
| | | public class TencentVideoServiceImpl implements TencentVideoService { |
| | | |
| | | @Resource |
| | | private TencentSearchVideoMapDao tencentSearchVideoMapDao; |
| | | |
| | | @Resource |
| | | private TencentCoverInfoDao tencentCoverInfoDao; |
| | | @Resource |
| | | private TencentCoverVideoDao tencentCoverVideoDao; |
| | | @Resource |
| | | private InternetSearchVideoService internetSearchVideoService; |
| | | |
| | | @Override |
| | | public void save(TencentCoverInfo detail) { |
| | | public void save(TencentCoverInfo detail) throws Exception { |
| | | List<TencentCoverVideo> videoList = new ArrayList<>(); |
| | | for (TencentCoverInfo.VipIdsBean idsBean : detail.getVip_ids()) { |
| | | TencentCoverVideo video = new TencentCoverVideo(); |
| | | video.setCoverId(detail.getCover_id()); |
| | | video.setPosition(idsBean.getP()); |
| | | video.setStage(idsBean.getP() + 1); |
| | | video.setVideoId(idsBean.getV()); |
| | | video.setLink(String.format("https://v.qq.com/x/cover/%s/%s.html", detail.getCover_id(), idsBean.getV())); |
| | | if (idsBean.getF() == 2 || idsBean.getF() == 7) |
| | | videoList.add(video); |
| | | } |
| | | detail.setVideoList(videoList); |
| | | |
| | | |
| | | if (detail.getUpdateTime() == null) |
| | | detail.setUpdateTime(new Date()); |
| | | tencentCoverInfoDao.save(detail); |
| | | if (detail.getVideoList() != null) |
| | | for (TencentCoverVideo video : detail.getVideoList()) { |
| | | if (video.getUpdateTime() == null) { |
| | | video.setUpdateTime(new Date()); |
| | | } |
| | | |
| | | tencentCoverVideoDao.save(video); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public TencentCoverInfo getConverDetail(String id) { |
| | | TencentCoverInfo detail = tencentCoverInfoDao.get(id); |
| | | public TencentCoverInfo getCoverDetail(String coverId) { |
| | | TencentCoverInfo detail = tencentCoverInfoDao.get(coverId); |
| | | Query query = new Query(); |
| | | if (detail != null) { |
| | | query.addCriteria(Criteria.where("coverId").is(coverId)); |
| | | } |
| | | query.with(new Sort(new Sort.Order(Sort.Direction.ASC, "show_videoseq"))); |
| | | List<TencentCoverVideo> videoList = tencentCoverVideoDao.findList(query); |
| | | detail.setVideoList(videoList); |
| | | return detail; |
| | | } |
| | | |
| | | @Override |
| | | public long count(String type) { |
| | | public TencentCoverInfo getSimpleCoverDetail(String coverId) { |
| | | TencentCoverInfo detail = tencentCoverInfoDao.get(coverId); |
| | | return detail; |
| | | } |
| | | |
| | | @Override |
| | | public List<TencentCoverVideo> getVideoList(String coverId, int page, int pageSize) { |
| | | Query query = new Query(); |
| | | if (type != null) |
| | | query.addCriteria(Criteria.where("type").is(type)); |
| | | query.addCriteria(Criteria.where("coverId").is(coverId)); |
| | | query.with(new Sort(new Sort.Order(Sort.Direction.ASC, "position"))); |
| | | query.skip((page - 1) * pageSize); |
| | | query.limit(pageSize); |
| | | List<TencentCoverVideo> videoList = tencentCoverVideoDao.findList(query); |
| | | return videoList; |
| | | } |
| | | |
| | | @Override |
| | | public TencentCoverVideo getVideoDetail(String id) { |
| | | return tencentCoverVideoDao.get(id); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public long count(String category) { |
| | | Query query = new Query(); |
| | | if (category != null) |
| | | query.addCriteria(Criteria.where("type_name").is(category)); |
| | | return tencentCoverInfoDao.count(query); |
| | | } |
| | | |
| | | @Override |
| | | public List<TencentCoverInfo> list(String type, int page, int pageSize) { |
| | | public List<TencentCoverInfo> list(String category, int page, int pageSize) { |
| | | Query query = new Query(); |
| | | if (type != null) |
| | | query.addCriteria(Criteria.where("type").is(type)); |
| | | if (category != null) |
| | | query.addCriteria(Criteria.where("type_name").is(category)); |
| | | query.limit(pageSize); |
| | | query.skip((page - 1) * pageSize); |
| | | return tencentCoverInfoDao.findList(query); |
| | | } |
| | | |
| | | @Override |
| | | public List<VideoDetailInfo> getVideoDetailList(String videoid, int page, int pageSize) { |
| | | TencentSearchVideoMap map = tencentSearchVideoMapDao.selectByVideoId(videoid); |
| | | if (map == null) |
| | | return null; |
| | | TencentCoverInfo coverInfo = tencentCoverInfoDao.get(map.getCoverId()); |
| | | |
| | | return TencentVideoUtil.convertToDetail(getVideoList(map.getCoverId(), page, pageSize), coverInfo); |
| | | } |
| | | |
| | | @Override |
| | | public TencentSearchVideoMap selectMapByVideoId(String videoId) { |
| | | TencentSearchVideoMap map = tencentSearchVideoMapDao.selectByVideoId(videoId); |
| | | return map; |
| | | } |
| | | |
| | | @Override |
| | | public void addToInternetSearch(TencentCoverInfo showDetail) throws Exception { |
| | | save(showDetail); |
| | | InternetSearchVideo video = InternetSearchVideoFactory.create(showDetail); |
| | | if (internetSearchVideoService.save(video) == null) { |
| | | return; |
| | | } |
| | | TencentSearchVideoMap map = new TencentSearchVideoMap(); |
| | | map.setCoverId(showDetail.getId()); |
| | | map.setVideoId(video.getId()); |
| | | map.setCreateTime(new Date()); |
| | | tencentSearchVideoMapDao.save(map); |
| | | } |
| | | |
| | | } |