All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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();
    }


}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy