package com.jiashi.dao; import com.jiashi.service.CardInfo; import com.jiashi.service.Picture; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Repository; import javax.persistence.criteria.Predicate; import java.util.ArrayList; import java.util.List; import java.util.Optional; @Repository public class DataQuery { @Autowired private CardInfoRepository cardInfoRepository; @Autowired private PictureRepository pictureRepository; public List dateQuery(){ Specification specification = (root, query, cb) -> { List predicates = new ArrayList<>(); predicates.add(cb.equal(root.get("state"), 0)); return cb.and(predicates.toArray(new Predicate[predicates.size()])); }; Sort.Order sortCreateTime = Sort.Order.asc("outdate"); Sort sort = Sort.by(sortCreateTime); Pageable pageable = PageRequest.of(0, 1000, sort); Page all = cardInfoRepository.findAll(specification, pageable); return all.toList(); } public List dateQueryByInpNo(String inpNo){ Specification specification = (root, query, cb) -> { List predicates = new ArrayList<>(); predicates.add(cb.equal(root.get("patno"), inpNo)); return cb.and(predicates.toArray(new Predicate[predicates.size()])); }; Sort.Order sortCreateTime = Sort.Order.asc("outdate"); Sort sort = Sort.by(sortCreateTime); Pageable pageable = PageRequest.of(0, 1000, sort); Page all = cardInfoRepository.findAll(specification, pageable); return all.toList(); } public void updateBatch(List cardInfos){ for(CardInfo cardInfo:cardInfos){ cardInfo.setState(1); } cardInfoRepository.saveAll(cardInfos); } public void updateBatchState(List cardInfos,Integer state){ List ids = new ArrayList<>(); for(CardInfo cardInfo:cardInfos){ String id = cardInfo.getId(); ids.add(id); } cardInfoRepository.updateState(ids,state); } public void updateBatchState(CardInfo cardInfo,Integer state){ cardInfoRepository.updateState(cardInfo.getId(),state); } public List getPictures(String FileId){ Specification specification = (root, query, cb) -> { List predicates = new ArrayList<>(); predicates.add(cb.equal(root.get("fileid"), FileId)); return cb.and(predicates.toArray(new Predicate[predicates.size()])); }; List all = pictureRepository.findAll(specification); return all; } }