TopicService.java 3.2 KB
package com.tanpu.community.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.tanpu.community.api.enums.DeleteTagEnum;
import com.tanpu.community.api.enums.TopicStatusEnum;
import com.tanpu.community.dao.entity.community.TopicEntity;
import com.tanpu.community.dao.mapper.community.TopicMapper;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;


@Service
@EnableCaching
public class TopicService {

    @Resource
    private TopicMapper topicMapper;


    public List<TopicEntity> queryAll() {
        return topicMapper.selectList(new LambdaQueryWrapper<TopicEntity>()
                .eq(TopicEntity::getDeleteTag, DeleteTagEnum.NOT_DELETED.getCode()));
    }


    public void addTopic(String topicTitle, String userId) {
        TopicEntity entity = TopicEntity.builder()
                .topicTitle(topicTitle)
                .createBy(userId)
                .updateBy(userId)
                .isTop(TopicStatusEnum.FALSE.getCode())
                .isConceal(TopicStatusEnum.FALSE.getCode())
                .build();

        topicMapper.insert(entity);
    }


    public void updateTopicToTop(String topicId) {
        TopicEntity topicEntity = new TopicEntity();
        topicEntity.setIsTop(TopicStatusEnum.TRUE.getCode());
        topicMapper.update(topicEntity, new LambdaUpdateWrapper<TopicEntity>()
                .eq(TopicEntity::getId, topicId));
    }

    public void updateTopicNotTop(String topicId) {
        TopicEntity topicEntity = new TopicEntity();
        topicEntity.setIsTop(TopicStatusEnum.FALSE.getCode());
        topicMapper.update(topicEntity, new LambdaUpdateWrapper<TopicEntity>()
                .eq(TopicEntity::getId, topicId));
    }

    public void updateTopicToConceal(String topicId) {
        TopicEntity topicEntity = new TopicEntity();
        topicEntity.setIsConceal(TopicStatusEnum.TRUE.getCode());
        topicMapper.update(topicEntity, new LambdaUpdateWrapper<TopicEntity>()
                .eq(TopicEntity::getId, topicId));
    }

    public void updateTopicNotConceal(String topicId) {
        TopicEntity topicEntity = new TopicEntity();
        topicEntity.setIsConceal(TopicStatusEnum.FALSE.getCode());
        topicMapper.update(topicEntity, new LambdaUpdateWrapper<TopicEntity>()
                .eq(TopicEntity::getId, topicId));
    }

    public TopicEntity queryById(String topicId) {
        return topicMapper.selectById(topicId);
    }

    public void modifyViewAmount(String topicId, long amount) {
        TopicEntity topicEntity = topicMapper.selectById(topicId);
        Long oldAmount = topicEntity.getViewAmountModify();
        topicEntity.setViewAmountModify(topicEntity.getViewAmountModify() + amount);
        topicMapper.update(topicEntity, new LambdaUpdateWrapper<TopicEntity>()
                .eq(TopicEntity::getViewAmountModify, oldAmount));
        return;
    }

    public TopicEntity queryByTitile(String topicTitle) {
        return topicMapper.selectOne(new LambdaQueryWrapper<TopicEntity>().eq(TopicEntity::getTopicTitle, topicTitle));
    }
}