MetaEmailService.java 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package com.izouma.nineth.service;
  2. import com.izouma.nineth.domain.MetaEmail;
  3. import com.izouma.nineth.dto.MetaRestResult;
  4. import com.izouma.nineth.dto.PageQuery;
  5. import com.izouma.nineth.repo.MetaEmailRecordRepo;
  6. import com.izouma.nineth.repo.MetaEmailRepo;
  7. import com.izouma.nineth.utils.JpaUtils;
  8. import com.izouma.nineth.utils.SecurityUtils;
  9. import lombok.AllArgsConstructor;
  10. import org.apache.commons.collections.CollectionUtils;
  11. import org.springframework.data.domain.Page;
  12. import org.springframework.stereotype.Service;
  13. import java.util.List;
  14. @Service
  15. @AllArgsConstructor
  16. public class MetaEmailService {
  17. private MetaEmailRepo metaEmailRepo;
  18. private MetaEmailRecordRepo metaEmailRecordRepo;
  19. public Page<MetaEmail> all(PageQuery pageQuery) {
  20. return metaEmailRepo.findAll(JpaUtils.toSpecification(pageQuery, MetaEmail.class), JpaUtils.toPageRequest(pageQuery));
  21. }
  22. public MetaRestResult<List<MetaEmail>> metaQuery() {
  23. Long userId = SecurityUtils.getAuthenticatedUser().getId();
  24. List<Long> delIds = metaEmailRecordRepo.findEmailIdByDel(userId, true);
  25. List<MetaEmail> metaEmails;
  26. metaEmails = CollectionUtils.isEmpty(delIds) ? metaEmailRepo.findAllByDel(false) : metaEmailRepo.findAllByDelAndIdNotIn(false, delIds);
  27. if (CollectionUtils.isEmpty(metaEmails)) {
  28. return MetaRestResult.returnSuccess(metaEmails);
  29. }
  30. List<Long> readIds = metaEmailRecordRepo.findEmailIdRead(userId, true);
  31. if (CollectionUtils.isEmpty(readIds)) {
  32. return MetaRestResult.returnSuccess(metaEmails);
  33. }
  34. metaEmails.forEach(metaEmail -> {
  35. if (readIds.contains(metaEmail.getId())) {
  36. metaEmail.setRead(true);
  37. }
  38. });
  39. return MetaRestResult.returnSuccess(metaEmails);
  40. }
  41. }