package com.ai.da.service.impl;

import com.ai.da.mapper.primary.TagsMapper;
import com.ai.da.mapper.primary.entity.Tags;
import com.ai.da.service.TagsService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import io.netty.util.internal.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;

@Slf4j
@Service
public class TagsServiceImpl extends ServiceImpl<TagsMapper, Tags> implements TagsService {

    public List<Tags> getTags(String tagPrefix){
        // 1、根据tag前缀,查询
        QueryWrapper<Tags> queryWrapper = new QueryWrapper<>();
        if (!StringUtil.isNullOrEmpty(tagPrefix)) {
            queryWrapper.like("tag_name", tagPrefix);
        }
        queryWrapper.orderByDesc("id").last("limit 10");

        // 需返回标签内容和id
        return baseMapper.selectList(queryWrapper);
    }


    public Tags addTag(String tagName) {
        // 1、判断有无该tag
        QueryWrapper<Tags> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("tag_name", tagName);
        Tags tags = baseMapper.selectOne(queryWrapper);
        // 2、没有该数据时，插入新标签并返回标签id等
        if (Objects.isNull(tags)){
            tags = new Tags();
            tags.setTagName(tagName);
            tags.setCreateTime(LocalDateTime.now());

            baseMapper.insert(tags);
        }
        return tags;
    }

}
