123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- package com.nosum.deliver.author.service.impl;
- import cn.hutool.core.date.DateUtil;
- import com.nosum.common.base.domain.PageInfo;
- import com.nosum.deliver.author.domain.po.Author;
- import com.nosum.deliver.author.service.AuthorService;
- import org.apache.commons.lang3.LocaleUtils;
- import org.bson.types.ObjectId;
- import org.springframework.beans.factory.annotation.Autowired;
- 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.time.LocalDate;
- import java.time.LocalDateTime;
- import java.time.LocalTime;
- import java.util.Objects;
- /**
- * 作者信息服务层实现类.
- *
- * @author Young
- */
- @Service
- public class AuthorServiceImpl implements AuthorService {
- @Autowired
- private MongoTemplate mongoTemplate;
- @Override
- public void save(Author author) {
- Query query = Query.query(Criteria.where("finderUin").is(author.getFinderUin()));
- Author oldAuthor = mongoTemplate.findOne(query, Author.class);
- if (Objects.nonNull(oldAuthor)) {
- author.setId(oldAuthor.getId());
- } else {
- author.setId(ObjectId.get());
- author.setCreateTime(LocalDateTime.now());
- }
- mongoTemplate.save(author);
- }
- @Override
- public PageInfo<Author> getPage(PageInfo<Author> pageInfo, Author author) {
- Query query = new Query();
- query.skip((pageInfo.getPage() - 1) * pageInfo.getSize());
- query.limit((int) pageInfo.getSize());
- long total = mongoTemplate.count(query, Author.class);
- if (total == 0) {
- return pageInfo;
- }
- return pageInfo.setRecord(mongoTemplate.find(query, Author.class)).setTotal(total);
- }
- @Override
- public void remove(ObjectId id) {
- mongoTemplate.remove(Query.query(Criteria.where("id").is(id)), Author.class);
- }
- @Override
- public Long count() {
- return mongoTemplate.count(new Query(), Author.class);
- }
- @Override
- public Long countCreatedByToDay() {
- LocalDateTime startTime = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
- LocalDateTime endTime = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
- return mongoTemplate.count(Query.query(Criteria.where("createTime").gte(startTime).lte(endTime)), Author.class);
- }
- @Override
- public Author getById(ObjectId id) {
- return mongoTemplate.findById(id, Author.class);
- }
- }
|