TopicService.java 3.31 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.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
刘基明's avatar
刘基明 committed
5
import com.tanpu.common.uuid.UuidGenHelper;
刘基明's avatar
刘基明 committed
6
import com.tanpu.community.api.enums.StatusEnum;
刘基明's avatar
刘基明 committed
7 8
import com.tanpu.community.dao.entity.community.TopicEntity;
import com.tanpu.community.dao.mapper.community.TopicMapper;
刘基明's avatar
刘基明 committed
9
import org.apache.commons.collections4.CollectionUtils;
刘基明's avatar
刘基明 committed
10
import org.springframework.beans.factory.annotation.Autowired;
刘基明's avatar
刘基明 committed
11 12 13 14
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.stereotype.Service;

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


@Service
@EnableCaching
public class TopicService {

    @Resource
    private TopicMapper topicMapper;

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

刘基明's avatar
刘基明 committed
30
    public List<TopicEntity> queryAll() {
张辰's avatar
张辰 committed
31 32 33 34 35 36 37 38 39 40 41 42
        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
43 44
    }

刘基明's avatar
刘基明 committed
45

刘基明's avatar
刘基明 committed
46

刘基明's avatar
刘基明 committed
47 48


刘基明's avatar
刘基明 committed
49
    public void updateTopicToTop(String topicId) {
刘基明's avatar
刘基明 committed
50
        TopicEntity topicEntity = new TopicEntity();
刘基明's avatar
刘基明 committed
51
        topicEntity.setIsTop(StatusEnum.TRUE.getCode());
刘基明's avatar
刘基明 committed
52 53
        topicMapper.update(topicEntity, new LambdaUpdateWrapper<TopicEntity>()
                .eq(TopicEntity::getId, topicId));
刘基明's avatar
刘基明 committed
54 55
    }

刘基明's avatar
刘基明 committed
56
    public void updateTopicNotTop(String topicId) {
刘基明's avatar
刘基明 committed
57
        TopicEntity topicEntity = new TopicEntity();
刘基明's avatar
刘基明 committed
58
        topicEntity.setIsTop(StatusEnum.FALSE.getCode());
刘基明's avatar
刘基明 committed
59 60
        topicMapper.update(topicEntity, new LambdaUpdateWrapper<TopicEntity>()
                .eq(TopicEntity::getId, topicId));
刘基明's avatar
刘基明 committed
61 62
    }

刘基明's avatar
刘基明 committed
63
    public void updateTopicToConceal(String topicId) {
刘基明's avatar
刘基明 committed
64
        TopicEntity topicEntity = new TopicEntity();
刘基明's avatar
刘基明 committed
65
        topicEntity.setIsConceal(StatusEnum.TRUE.getCode());
刘基明's avatar
刘基明 committed
66 67
        topicMapper.update(topicEntity, new LambdaUpdateWrapper<TopicEntity>()
                .eq(TopicEntity::getId, topicId));
刘基明's avatar
刘基明 committed
68 69
    }

刘基明's avatar
刘基明 committed
70
    public void updateTopicNotConceal(String topicId) {
刘基明's avatar
刘基明 committed
71
        TopicEntity topicEntity = new TopicEntity();
刘基明's avatar
刘基明 committed
72
        topicEntity.setIsConceal(StatusEnum.FALSE.getCode());
刘基明's avatar
刘基明 committed
73 74
        topicMapper.update(topicEntity, new LambdaUpdateWrapper<TopicEntity>()
                .eq(TopicEntity::getId, topicId));
刘基明's avatar
刘基明 committed
75 76 77
    }

    public TopicEntity queryById(String topicId) {
78 79 80 81
        return topicMapper.selectOne(new LambdaQueryWrapper<TopicEntity>()
                .eq(TopicEntity::getTopicId, topicId)
                .eq(TopicEntity::getIsConceal, StatusEnum.FALSE)
                .eq(TopicEntity::getDeleteTag, StatusEnum.FALSE));
刘基明's avatar
刘基明 committed
82
    }
刘基明's avatar
刘基明 committed
83

84
    public List<TopicEntity> queryByIds(List<String> topicIds) {
刘基明's avatar
刘基明 committed
85
        if (CollectionUtils.isEmpty(topicIds)) {
刘基明's avatar
刘基明 committed
86 87
            return Collections.emptyList();
        }
刘基明's avatar
刘基明 committed
88
        return topicMapper.selectList(new LambdaQueryWrapper<TopicEntity>().in(TopicEntity::getTopicId, topicIds));
89 90
    }

刘基明's avatar
刘基明 committed
91 92 93
    public TopicEntity queryByTitile(String topicTitle) {
        return topicMapper.selectOne(new LambdaQueryWrapper<TopicEntity>().eq(TopicEntity::getTopicTitle, topicTitle));
    }
刘基明's avatar
刘基明 committed
94
}