package com.yeshi.buwan.service.imp.video;
|
|
import com.google.common.base.Function;
|
import com.google.common.collect.Maps;
|
import com.yeshi.buwan.dao.video.VideoInfoExtraDao;
|
import com.yeshi.buwan.domain.VideoInfo;
|
import com.yeshi.buwan.domain.video.VideoInfoExtra;
|
import com.yeshi.buwan.service.inter.VideoResourceMapExtraInfoService;
|
import com.yeshi.buwan.service.inter.video.VideoInfoExtraService;
|
import com.yeshi.buwan.util.StringUtil;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
@Service
|
public class VideoInfoExtraServiceImpl implements VideoInfoExtraService {
|
|
@Resource
|
private VideoInfoExtraDao videoInfoExtraDao;
|
|
@Resource
|
private VideoResourceMapExtraInfoService videoResourceMapExtraInfoService;
|
|
@Override
|
public VideoInfoExtra getById(String id) {
|
return videoInfoExtraDao.get(id);
|
}
|
|
@Override
|
public List<VideoInfoExtra> listByIds(List<String> ids) {
|
List<VideoInfoExtra> list = videoInfoExtraDao.listByIds(ids);
|
return list;
|
}
|
|
@Override
|
public void save(VideoInfoExtra extra) {
|
//是否存在
|
VideoInfoExtra old = videoInfoExtraDao.get(extra.getId());
|
if (old == null) {
|
extra.setCreateTime(new Date());
|
videoInfoExtraDao.save(extra);
|
return;
|
}
|
videoInfoExtraDao.updateSelective(extra);
|
}
|
|
@Override
|
public void batchExtra(List<VideoInfo> videoInfoList) {
|
List<String> ids = new ArrayList<>();
|
for (VideoInfo videoInfo : videoInfoList) {
|
ids.add(videoInfo.getId());
|
}
|
List<VideoInfoExtra> list = videoInfoExtraDao.listByIds(ids);
|
Map<String, VideoInfoExtra> maps = Maps.uniqueIndex(list.iterator(), new Function<VideoInfoExtra, String>() {
|
@Override
|
public String apply(VideoInfoExtra extra) {
|
return extra.getId();
|
}
|
});
|
|
for (VideoInfo vi : videoInfoList) {
|
VideoInfoExtra extra = maps.get(vi.getId());
|
if (extra != null) {
|
if (!StringUtil.isNullOrEmpty(extra.getvPosterPicture())) {
|
vi.setVpicture(extra.getvPosterPicture());
|
}
|
|
if (!StringUtil.isNullOrEmpty(extra.gethPosterPicture())) {
|
vi.setHpicture(extra.gethPosterPicture());
|
}
|
|
}
|
}
|
|
|
}
|
|
@Override
|
public List<VideoInfo> batchExtra(List<VideoInfo> videoInfoList, List<Long> resourceIds) {
|
batchExtra(videoInfoList);
|
videoResourceMapExtraInfoService.batchExtraInfo(videoInfoList, resourceIds);
|
return videoInfoList;
|
}
|
|
|
}
|