admin
2021-08-27 8fee151ffae0c3818694b7318583814bf92663e2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
package com.yeshi.buwan.service.imp.juhe;
 
import com.yeshi.buwan.dao.juhe.youku.YouKuSearchVideoMapDao;
import com.yeshi.buwan.dao.juhe.youku.YouKuShowDetailDao;
import com.yeshi.buwan.dao.juhe.youku.YouKuVideoDao;
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.YouKuService;
import com.yeshi.buwan.util.factory.InternetSearchVideoFactory;
import com.yeshi.buwan.videos.youku.YouKuUtil;
import com.yeshi.buwan.videos.youku.entity.YouKuSearchVideoMap;
import com.yeshi.buwan.videos.youku.entity.YouKuShowDetail;
import com.yeshi.buwan.videos.youku.entity.YouKuVideo;
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.Date;
import java.util.List;
 
@Service
public class YouKuServiceImpl implements YouKuService {
 
    @Resource
    private YouKuSearchVideoMapDao youKuSearchVideoMapDao;
 
    @Resource
    private YouKuShowDetailDao youKuShowDetailDao;
    @Resource
    private YouKuVideoDao youKuVideoDao;
    @Resource
    private InternetSearchVideoService internetSearchVideoService;
 
    @Override
    public void save(YouKuShowDetail detail) throws Exception {
        if (detail.getUpdateTime() == null)
            detail.setUpdateTime(new Date());
        youKuShowDetailDao.save(detail);
        if (detail.getVideoList() != null)
            for (YouKuVideo video : detail.getVideoList()) {
                if (video.getUpdateTime() == null) {
                    video.setUpdateTime(new Date());
                }
                youKuVideoDao.save(video);
            }
    }
 
    @Override
    public YouKuShowDetail getShowDetail(String showId) {
        YouKuShowDetail detail = youKuShowDetailDao.get(showId);
        Query query = new Query();
        if (detail != null) {
            query.addCriteria(Criteria.where("showId").is(showId));
        }
        query.with(new Sort(new Sort.Order(Sort.Direction.ASC, "show_videoseq")));
        List<YouKuVideo> videoList = youKuVideoDao.findList(query);
        detail.setVideoList(videoList);
        return detail;
    }
 
    @Override
    public YouKuShowDetail getSimpleShowDetail(String showId) {
        YouKuShowDetail detail = youKuShowDetailDao.get(showId);
        return detail;
    }
 
    @Override
    public List<YouKuVideo> getVideoList(String showId, int page, int pageSize) {
        Query query = new Query();
        query.addCriteria(Criteria.where("showId").is(showId));
        query.with(new Sort(new Sort.Order(Sort.Direction.ASC, "show_videoseq")));
        query.skip((page - 1) * pageSize);
        query.limit(pageSize);
        List<YouKuVideo> videoList = youKuVideoDao.findList(query);
        return videoList;
    }
 
    @Override
    public YouKuVideo getVideoDetail(String id) {
        return youKuVideoDao.get(id);
    }
 
 
    @Override
    public long count(String category) {
        Query query = new Query();
        if (category != null)
            query.addCriteria(Criteria.where("category").is(category));
        return youKuShowDetailDao.count(query);
    }
 
    @Override
    public List<YouKuShowDetail> list(String category, int page, int pageSize) {
        Query query = new Query();
        if (category != null)
            query.addCriteria(Criteria.where("category").is(category));
        query.limit(pageSize);
        query.skip((page - 1) * pageSize);
        return youKuShowDetailDao.findList(query);
    }
 
    @Override
    public List<VideoDetailInfo> getVideoDetailList(String videoid, int page, int pageSize) {
        YouKuSearchVideoMap map = youKuSearchVideoMapDao.selectByVideoId(videoid);
        if (map == null)
            return null;
        return YouKuUtil.convertToDetail(getVideoList(map.getShowId(), page, pageSize));
    }
 
    @Override
    public YouKuSearchVideoMap selectByVideoId(String videoId) {
        YouKuSearchVideoMap map = youKuSearchVideoMapDao.selectByVideoId(videoId);
        return map;
    }
 
    @Override
    public void addToInternetSearch(YouKuShowDetail showDetail) throws Exception {
        save(showDetail);
        InternetSearchVideo video = InternetSearchVideoFactory.create(showDetail);
        if (internetSearchVideoService.save(video) == null) {
            return;
        }
        YouKuSearchVideoMap map = new YouKuSearchVideoMap();
        map.setShowId(showDetail.getId());
        map.setVideoId(video.getId());
        map.setCreateTime(new Date());
        youKuSearchVideoMapDao.save(map);
    }
}