TopicService.java 2.2 KB
Newer Older
刘基明's avatar
刘基明 committed
1 2
package com.tanpu.community.service;

刘基明's avatar
刘基明 committed
3
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
刘基明's avatar
刘基明 committed
4
import com.tanpu.common.uuid.UuidGenHelper;
刘基明's avatar
刘基明 committed
5
import com.tanpu.community.api.enums.StatusEnum;
刘基明's avatar
刘基明 committed
6 7
import com.tanpu.community.dao.entity.community.TopicEntity;
import com.tanpu.community.dao.mapper.community.TopicMapper;
刘基明's avatar
刘基明 committed
8
import org.apache.commons.collections4.CollectionUtils;
刘基明's avatar
刘基明 committed
9
import org.springframework.beans.factory.annotation.Autowired;
刘基明's avatar
刘基明 committed
10 11 12 13
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
张辰's avatar
张辰 committed
14
import java.util.ArrayList;
刘基明's avatar
刘基明 committed
15
import java.util.Collections;
刘基明's avatar
刘基明 committed
16 17 18 19 20 21 22 23 24 25
import java.util.List;


@Service
@EnableCaching
public class TopicService {

    @Resource
    private TopicMapper topicMapper;

刘基明's avatar
刘基明 committed
26 27
    @Autowired
    private UuidGenHelper uuidGenHelper;
刘基明's avatar
刘基明 committed
28

刘基明's avatar
刘基明 committed
29
    public List<TopicEntity> queryAll() {
张辰's avatar
张辰 committed
30 31 32 33 34 35 36 37 38 39 40 41
        List<TopicEntity> retList = new ArrayList<>();

        Long lastId = 0L;
        while (true) {
            List<TopicEntity> tmpList = topicMapper.selectGtIdPageable(lastId, 100);
            if (tmpList.isEmpty()) {
                break;
            }
            retList.addAll(tmpList);
            lastId = tmpList.stream().map(TopicEntity::getId).max(Long::compareTo).get();
        }
        return retList;
刘基明's avatar
刘基明 committed
42 43
    }

刘基明's avatar
刘基明 committed
44

刘基明's avatar
刘基明 committed
45

刘基明's avatar
刘基明 committed
46
    public TopicEntity queryById(String topicId) {
47 48 49 50
        return topicMapper.selectOne(new LambdaQueryWrapper<TopicEntity>()
                .eq(TopicEntity::getTopicId, topicId)
                .eq(TopicEntity::getIsConceal, StatusEnum.FALSE)
                .eq(TopicEntity::getDeleteTag, StatusEnum.FALSE));
刘基明's avatar
刘基明 committed
51
    }
刘基明's avatar
刘基明 committed
52

53
    // 根据话题id查询title,(包括已删除)
54
    public String queryTitleById(String topicId) {
55
        TopicEntity topicEntity = topicMapper.selectOne(new LambdaQueryWrapper<TopicEntity>()
56
                .eq(TopicEntity::getTopicId, topicId));
57
        return topicEntity!=null?topicEntity.getTopicTitle():null;
58 59
    }

60
    public List<TopicEntity> queryByIds(List<String> topicIds) {
刘基明's avatar
刘基明 committed
61
        if (CollectionUtils.isEmpty(topicIds)) {
刘基明's avatar
刘基明 committed
62 63
            return Collections.emptyList();
        }
刘基明's avatar
刘基明 committed
64
        return topicMapper.selectList(new LambdaQueryWrapper<TopicEntity>().in(TopicEntity::getTopicId, topicIds));
65 66
    }

刘基明's avatar
刘基明 committed
67
}