package com.yeshi.buwan.service.imp.video;
|
|
import java.lang.Exception;
|
import javax.annotation.Resource;
|
|
import com.yeshi.buwan.domain.VideoResource;
|
import org.springframework.stereotype.Service;
|
|
import java.util.*;
|
|
import org.yeshi.utils.StringUtil;
|
import org.yeshi.utils.bean.BeanUtil;
|
|
import com.yeshi.buwan.dao.video.VideoResourceInfoMapDao;
|
import com.yeshi.buwan.domain.video.VideoResourceInfoMap;
|
import com.yeshi.buwan.service.inter.video.VideoResourceInfoMapService;
|
import com.yeshi.buwan.vo.CommonQuery;
|
import com.yeshi.buwan.dao.video.VideoResourceInfoMapDao.DaoQuery;
|
|
import org.springframework.data.mongodb.core.query.Criteria;
|
import org.springframework.data.mongodb.core.query.Query;
|
|
@Service
|
public class VideoResourceInfoMapServiceImpl implements VideoResourceInfoMapService {
|
|
@Resource
|
private VideoResourceInfoMapDao videoResourceInfoMapDao;
|
|
@Override
|
public List<VideoResourceInfoMap> listByDetailSystemId(String detailSystemId, int page, int pageSize) {
|
DaoQuery daoQuery = new DaoQuery();
|
|
daoQuery.detailSystemId = detailSystemId;
|
|
daoQuery.start = (page - 1) * pageSize;
|
daoQuery.count = pageSize;
|
return videoResourceInfoMapDao.list(daoQuery);
|
}
|
|
@Override
|
public long countByDetailSystemId(String detailSystemId) {
|
DaoQuery daoQuery = new DaoQuery();
|
daoQuery.detailSystemId = detailSystemId;
|
return videoResourceInfoMapDao.count(daoQuery);
|
}
|
|
@Override
|
public List<VideoResource> filter(String detailSystemId, List<VideoResource> resourceList) {
|
if (resourceList == null || resourceList.size() == 0) {
|
return resourceList;
|
}
|
|
List<Long> ridList = new ArrayList<>();
|
for (VideoResource rv : resourceList) {
|
ridList.add(Long.parseLong(rv.getId()));
|
}
|
|
List<VideoResourceInfoMap> list = videoResourceInfoMapDao.list(detailSystemId, ridList);
|
Map<Long, VideoResourceInfoMap> map = new HashMap<>();
|
for (VideoResourceInfoMap vr : list) {
|
map.put(vr.getResourceId(), vr);
|
}
|
for (VideoResource vr : resourceList) {
|
if (map.get(Long.parseLong(vr.getId())) == null) {
|
continue;
|
}
|
String name = map.get(Long.parseLong(vr.getId())).getName();
|
String icon = map.get(Long.parseLong(vr.getId())).getIcon();
|
if (!StringUtil.isNullOrEmpty(name)) {
|
vr.setName(name);
|
}
|
if (!StringUtil.isNullOrEmpty(icon)) {
|
vr.setPicture(icon);
|
}
|
}
|
return resourceList;
|
}
|
|
@Override
|
public VideoResourceInfoMap get(String id) {
|
Query query = new Query();
|
query.addCriteria(Criteria.where("_id").is(id));
|
return videoResourceInfoMapDao.findOne(query);
|
}
|
|
@Override
|
public void add(VideoResourceInfoMap videoResourceInfoMap) throws Exception {
|
|
if (videoResourceInfoMap.getDetailSystemId() == null || videoResourceInfoMap.getResourceId() == null) {
|
throw new Exception("参数不完整");
|
}
|
|
if (videoResourceInfoMap.getId() == null) {
|
videoResourceInfoMap.setId(VideoResourceInfoMap.createId(videoResourceInfoMap.getResourceId(), videoResourceInfoMap.getDetailSystemId()));
|
}
|
|
|
//查询主键ID是否存在
|
if (videoResourceInfoMapDao.get(videoResourceInfoMap.getId()) != null) {
|
throw new Exception("已存在");
|
}
|
|
if (videoResourceInfoMap.getCreateTime() == null) {
|
videoResourceInfoMap.setCreateTime(new Date());
|
}
|
//保存
|
videoResourceInfoMapDao.save(videoResourceInfoMap);
|
}
|
|
@Override
|
public void update(VideoResourceInfoMap videoResourceInfoMap) {
|
if (videoResourceInfoMap.getUpdateTime() == null) {
|
videoResourceInfoMap.setUpdateTime(new Date());
|
}
|
//更新
|
videoResourceInfoMapDao.updateSelective(videoResourceInfoMap);
|
}
|
|
@Override
|
public void delete(List<String> idList) {
|
for (String id : idList) {
|
videoResourceInfoMapDao.delete(id);
|
}
|
}
|
|
|
}
|