com.zoi7.file.uploader.service.impl.ImageServiceImpl Maven / Gradle / Ivy
package com.zoi7.file.uploader.service.impl;
import com.zoi7.file.uploader.document.Image;
import com.zoi7.file.uploader.repository.ImageRepository;
import com.zoi7.file.uploader.service.ImageService;
import com.mongodb.client.result.DeleteResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.*;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;
/**
* Image 服务.
*
* @since 1.0.0 2017年7月30日
* @author Way Lau
*/
@Service
public class ImageServiceImpl implements ImageService {
@Autowired
private ImageRepository imageRepository;
@Autowired
private MongoTemplate mongoTemplate;
@Override
public Image save(Image image) {
return imageRepository.save(image);
}
@Override
public void removeById(String id) {
imageRepository.deleteById(id);
}
@Override
public long removeByName(String filename) {
DeleteResult result = mongoTemplate.remove(new Query(Criteria.where("filename").is(filename)), Image.class);
return result.getDeletedCount();
}
@Override
public Image getById(String id) {
Optional optionalFile = imageRepository.findById(id);
return optionalFile.orElse(null);
}
@Override
public Image getByName(String filename) {
Image image = new Image();
image.setFilename(filename);
Optional optionalImage = imageRepository.findOne(Example.of(image, ExampleMatcher.matching()));
return optionalImage.orElse(null);
}
@Override
public List getByOriginName(String originName) {
Image image = new Image();
image.setOriginName(originName);
return imageRepository.findAll(Example.of(image, ExampleMatcher.matching()));
}
@Override
public List getList() {
return imageRepository.findAll();
}
@Override
public List getList(Sort sort) {
return imageRepository.findAll(sort);
}
@Override
public List getList(Example example) {
return imageRepository.findAll(example);
}
@Override
public List getList(Example example, Sort sort) {
return imageRepository.findAll(example, sort);
}
@Override
public List getPage(int pageNo, int pageSize) {
Sort sort = new Sort(Sort.Direction.DESC,"uploadDate");
Pageable pageable = PageRequest.of(Math.max(0, pageNo), pageSize, sort);
Page page = imageRepository.findAll(pageable);
return page.getContent();
}
@Override
public List getPage(int pageNo, int pageSize, Sort sort) {
Pageable pageable = PageRequest.of(Math.max(0, pageNo), pageSize, sort);
Page page = imageRepository.findAll(pageable);
return page.getContent();
}
@Override
public List getPage(Example example, int pageNo, int pageSize) {
Pageable pageable = PageRequest.of(Math.max(0, pageNo), pageSize);
Page page = imageRepository.findAll(example, pageable);
return page.getContent();
}
@Override
public List getPage(Example example, int pageNo, int pageSize, Sort sort) {
Pageable pageable = PageRequest.of(Math.max(0, pageNo), pageSize, sort);
Page page = imageRepository.findAll(example, pageable);
return page.getContent();
}
}