AuthorServiceImpl.java 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. package com.nosum.deliver.author.service.impl;
  2. import cn.hutool.core.date.DateUtil;
  3. import com.nosum.common.base.domain.PageInfo;
  4. import com.nosum.deliver.author.domain.po.Author;
  5. import com.nosum.deliver.author.service.AuthorService;
  6. import org.apache.commons.lang3.LocaleUtils;
  7. import org.bson.types.ObjectId;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.data.mongodb.core.MongoTemplate;
  10. import org.springframework.data.mongodb.core.query.Criteria;
  11. import org.springframework.data.mongodb.core.query.Query;
  12. import org.springframework.stereotype.Service;
  13. import java.time.LocalDate;
  14. import java.time.LocalDateTime;
  15. import java.time.LocalTime;
  16. import java.util.Objects;
  17. /**
  18. * 作者信息服务层实现类.
  19. *
  20. * @author Young
  21. */
  22. @Service
  23. public class AuthorServiceImpl implements AuthorService {
  24. @Autowired
  25. private MongoTemplate mongoTemplate;
  26. @Override
  27. public void save(Author author) {
  28. Query query = Query.query(Criteria.where("finderUin").is(author.getFinderUin()));
  29. Author oldAuthor = mongoTemplate.findOne(query, Author.class);
  30. if (Objects.nonNull(oldAuthor)) {
  31. author.setId(oldAuthor.getId());
  32. } else {
  33. author.setId(ObjectId.get());
  34. author.setCreateTime(LocalDateTime.now());
  35. }
  36. mongoTemplate.save(author);
  37. }
  38. @Override
  39. public PageInfo<Author> getPage(PageInfo<Author> pageInfo, Author author) {
  40. Query query = new Query();
  41. query.skip((pageInfo.getPage() - 1) * pageInfo.getSize());
  42. query.limit((int) pageInfo.getSize());
  43. long total = mongoTemplate.count(query, Author.class);
  44. if (total == 0) {
  45. return pageInfo;
  46. }
  47. return pageInfo.setRecord(mongoTemplate.find(query, Author.class)).setTotal(total);
  48. }
  49. @Override
  50. public void remove(ObjectId id) {
  51. mongoTemplate.remove(Query.query(Criteria.where("id").is(id)), Author.class);
  52. }
  53. @Override
  54. public Long count() {
  55. return mongoTemplate.count(new Query(), Author.class);
  56. }
  57. @Override
  58. public Long countCreatedByToDay() {
  59. LocalDateTime startTime = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
  60. LocalDateTime endTime = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
  61. return mongoTemplate.count(Query.query(Criteria.where("createTime").gte(startTime).lte(endTime)), Author.class);
  62. }
  63. @Override
  64. public Author getById(ObjectId id) {
  65. return mongoTemplate.findById(id, Author.class);
  66. }
  67. }