TopicService.java 3.78 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.DeleteTagEnum;
刘基明's avatar
刘基明 committed
7
import com.tanpu.community.api.enums.StatusEnum;
刘基明's avatar
刘基明 committed
8 9
import com.tanpu.community.dao.entity.community.TopicEntity;
import com.tanpu.community.dao.mapper.community.TopicMapper;
刘基明's avatar
刘基明 committed
10
import org.apache.commons.collections4.CollectionUtils;
刘基明's avatar
刘基明 committed
11
import org.springframework.beans.factory.annotation.Autowired;
刘基明's avatar
刘基明 committed
12 13
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.stereotype.Service;
刘基明's avatar
刘基明 committed
14
import org.springframework.transaction.annotation.Transactional;
刘基明's avatar
刘基明 committed
15 16

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


@Service
@EnableCaching
public class TopicService {

    @Resource
    private TopicMapper topicMapper;

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

刘基明's avatar
刘基明 committed
31
    public List<TopicEntity> queryAll() {
刘基明's avatar
刘基明 committed
32
        return topicMapper.selectList(new LambdaQueryWrapper<TopicEntity>()
刘基明's avatar
刘基明 committed
33 34
                .eq(TopicEntity::getDeleteTag, DeleteTagEnum.NOT_DELETED.getCode())
                .orderByDesc(TopicEntity::getCreateTime));
刘基明's avatar
刘基明 committed
35 36
    }

刘基明's avatar
刘基明 committed
37 38
    public List<TopicEntity> queryByKeyword(String keyword) {
        return topicMapper.selectList(new LambdaQueryWrapper<TopicEntity>()
刘基明's avatar
刘基明 committed
39 40 41
                .like(TopicEntity::getTopicTitle, keyword)
                .eq(TopicEntity::getDeleteTag, DeleteTagEnum.NOT_DELETED.getCode())
                .orderByDesc(TopicEntity::getCreateTime));
刘基明's avatar
刘基明 committed
42 43
    }

刘基明's avatar
刘基明 committed
44
    @Transactional
刘基明's avatar
刘基明 committed
45
    public void addTopic(String topicTitle, String userId) {
刘基明's avatar
刘基明 committed
46
        TopicEntity entity = TopicEntity.builder()
刘基明's avatar
刘基明 committed
47
                .topicId(uuidGenHelper.getUuidStr())
刘基明's avatar
刘基明 committed
48
                .topicTitle(topicTitle)
刘基明's avatar
刘基明 committed
49 50
                .isTop(StatusEnum.FALSE.getCode())
                .isConceal(StatusEnum.FALSE.getCode())
刘基明's avatar
刘基明 committed
51 52 53
                .build();

        topicMapper.insert(entity);
刘基明's avatar
刘基明 committed
54 55 56
    }


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

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

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

刘基明's avatar
刘基明 committed
78
    public void updateTopicNotConceal(String topicId) {
刘基明's avatar
刘基明 committed
79
        TopicEntity topicEntity = new TopicEntity();
刘基明's avatar
刘基明 committed
80
        topicEntity.setIsConceal(StatusEnum.FALSE.getCode());
刘基明's avatar
刘基明 committed
81 82
        topicMapper.update(topicEntity, new LambdaUpdateWrapper<TopicEntity>()
                .eq(TopicEntity::getId, topicId));
刘基明's avatar
刘基明 committed
83 84 85
    }

    public TopicEntity queryById(String topicId) {
刘基明's avatar
刘基明 committed
86
        return topicMapper.selectOne(new LambdaQueryWrapper<TopicEntity>().eq(TopicEntity::getTopicId, topicId));
刘基明's avatar
刘基明 committed
87
    }
刘基明's avatar
刘基明 committed
88

89
    public List<TopicEntity> queryByIds(List<String> topicIds) {
刘基明's avatar
刘基明 committed
90
        if (CollectionUtils.isEmpty(topicIds)) {
刘基明's avatar
刘基明 committed
91 92
            return Collections.emptyList();
        }
刘基明's avatar
刘基明 committed
93
        return topicMapper.selectList(new LambdaQueryWrapper<TopicEntity>().in(TopicEntity::getTopicId, topicIds));
94 95
    }

刘基明's avatar
刘基明 committed
96 97 98
    public TopicEntity queryByTitile(String topicTitle) {
        return topicMapper.selectOne(new LambdaQueryWrapper<TopicEntity>().eq(TopicEntity::getTopicTitle, topicTitle));
    }
刘基明's avatar
刘基明 committed
99
}